Nevím, ako tuto položku vidí GM, ja osobně jsem skripty postovat nechci ani bych je tu nerad viděl, ale:
Funkce:
Mám funkci piti(), chci ji spusti v rámci jiné(třeba tréning).
zde jsem na internetu viděl hodně špatných popisů
A) UO.Exec() - Funkci spustí, nikoliv v rámci sama sebe, ale jako další(Není to zastaralé ani špatné)
B) Piti() - Zde funkci spustí a čeká na příkaz return, nebo konec funkce
Výhoda A) je že funkci nadále nekontrolujete a beží vám dvě funkce naráz, můžete ji vypnout pomocí ,terminate piti
Výhoda b) je čekání an konec funkce, nemusíte se bát pauz a hlavně možnost získaní hodnoty funkcí vrácenou(pomocí funkce return Hodnota)
použití funkce Uo.Exec() pro waitmenu je obdobné, dnes už asi přežité
Edit: až zas narazím na nějaké tyto vtipné popisy, tak to sem napíšu.
Pár věcí do pořádku
Pár věcí do pořádku
No a posthunt je něco jako chození v RARE na trh, je to pro lidi co hledají kompenzaci pro absenci rozdílu ve velikosti postav ve hre.
Správná pauza ma:
A) Dynamickou cast, reagujici na spravné podmínky
B) Statickou část bránicí chybě při selhání dynamické části
c) Pojistky na případy nouze(Třeba tady je to ruční pojistka)
Nebo:
A) Dynamickou cast, reagujici na spravné podmínky
B) Statickou část bránicí chybě při selhání dynamické části
c) Pojistky na případy nouze(Třeba tady je to ruční pojistka)
Kód: Vybrat vše
wait(2000)(minimum pro činnost - 300ms)
repeat
wait(300)
until UO.Injournal("Přesná hláška fizzu|Přesná hláška uspěchu|Pauziruj")
if UO.Injournal("Pauziruj")
repeat
wait(300)
until UO.Injournal("Resume")
end if
Kód: Vybrat vše
sub Cekej(Time, Text)
UO.DeleteJournal()
wait(Time)
repeat
wait(300)
until UO.Injournal(Text) or UO.Injournal("Pauziruj")
if UO.Injournal("Pauziruj")
repeat
wait(300)
until UO.Injournal("Resume")
end if
return 0
end sub
No a posthunt je něco jako chození v RARE na trh, je to pro lidi co hledají kompenzaci pro absenci rozdílu ve velikosti postav ve hre.
Tak to pauziruj jsem teda absolutne vubec nepochopil. Jakej to ma mit vyznam????Smrt Bob píše:Správná pauza ma:Kód: Vybrat vše
sub Cekej(Time, Text) UO.DeleteJournal() wait(Time) repeat wait(300) until UO.Injournal(Text) or UO.Injournal("Pauziruj") if UO.Injournal("Pauziruj") repeat wait(300) until UO.Injournal("Resume") end if return 0 end sub
napises (reknes do hry, treba pomoci makra) Pauziruj a vono to zacne delat pauzu doud nenapises Resume. Predpokladam ze tak to autor myslel.
Na druhou stranu - pokud je dobre napsana dynamicka pauza, i pri worldsave/resyncu se nic nestane - klient posle serveru pozadavek na akci a protoze se mu nevrati odpoved vyjadrujici provedeni akce bude cekat a dalsi pozadavek na akci uz neposle.
Je to vsechno o kontrole logu, bohuzel u nekterych skillu se musi psat pauza trochu oklikou - protoze akce oznami ze zacne, ale uz nenahlasi skonceni, nebo ho nenahlasi vzdy (mam dojem treba meditka - uz sem asi rok na inject nesahnul, takze si to presne nepamatuju).
Tam se pak pise dynamicka pauza trochu jinak - ohlidame si ze se vratilo zapoceni akce, pockame pevne stanovenej casovej usek a pak akci zacneme znovu.
Pokud je resync, worldsave ci neco podobneho, prvni akce nemusi skoncit regulerne (server ji nezpracuje) a my uz posleme pozadavek na novou akci - ale protoze u ni se uz nenahlasi to, ze zacala, script se opet zastavi - na serveru v tu chvili nevisi jeden ale dva pozadavky, nicmene dalsi se uz neposlou a to je celej vtip tyhle ochrany - neposilat serveru pozadavky na akce, kdyz je nezpracovava a uklada si je jenom do fronty.
Samozrejme - pokud si udelate ochrany i na hlasky worldsave/resync je to jenom dobre, kazdy ulehceni prace serveru se hodi.
V kazdym pripade doporucuju udelat si "nouzovou brzdu" - klavesovou zkratku s funkci terminate all - kdyz se vam v injectu neco pokaka, muzete ho snadno zastavit
Na druhou stranu - pokud je dobre napsana dynamicka pauza, i pri worldsave/resyncu se nic nestane - klient posle serveru pozadavek na akci a protoze se mu nevrati odpoved vyjadrujici provedeni akce bude cekat a dalsi pozadavek na akci uz neposle.
Je to vsechno o kontrole logu, bohuzel u nekterych skillu se musi psat pauza trochu oklikou - protoze akce oznami ze zacne, ale uz nenahlasi skonceni, nebo ho nenahlasi vzdy (mam dojem treba meditka - uz sem asi rok na inject nesahnul, takze si to presne nepamatuju).
Tam se pak pise dynamicka pauza trochu jinak - ohlidame si ze se vratilo zapoceni akce, pockame pevne stanovenej casovej usek a pak akci zacneme znovu.
Pokud je resync, worldsave ci neco podobneho, prvni akce nemusi skoncit regulerne (server ji nezpracuje) a my uz posleme pozadavek na novou akci - ale protoze u ni se uz nenahlasi to, ze zacala, script se opet zastavi - na serveru v tu chvili nevisi jeden ale dva pozadavky, nicmene dalsi se uz neposlou a to je celej vtip tyhle ochrany - neposilat serveru pozadavky na akce, kdyz je nezpracovava a uklada si je jenom do fronty.
Samozrejme - pokud si udelate ochrany i na hlasky worldsave/resync je to jenom dobre, kazdy ulehceni prace serveru se hodi.
V kazdym pripade doporucuju udelat si "nouzovou brzdu" - klavesovou zkratku s funkci terminate all - kdyz se vam v injectu neco pokaka, muzete ho snadno zastavit