Návod pro obsluhu loot scriptu
Z Moriawiki
(Rozdíly mezi verzemi)
Verze z 11:28, 23. 5. 2009 GM Yavanna (Diskuse | příspěvky) (rozpracovaná forma popisu programu) ← Předchozí porovnání |
Verze z 11:51, 23. 5. 2009 GM Yavanna (Diskuse | příspěvky) (dokončení editace - pořád nedostatek ve formátu číslování 2. sekce ... někdo help ! :)) Následující porovnání → |
||
Řádka 1: | Řádka 1: | ||
== Loot script ze země == | == Loot script ze země == | ||
sub zvedni() | sub zvedni() | ||
- | UO.FindType ("0x0EED", -1, 1) | + | UO.FindType ("0x0EED", -1, 1) |
if UO.FindCount() > 0 then | if UO.FindCount() > 0 then | ||
UO.grab("500",'finditem') | UO.grab("500",'finditem') | ||
Řádka 18: | Řádka 18: | ||
#** ' ''ground'' ' (odpovídá číslu 1 - viz uvedený kód. Hodnotu je možné namísto '1' vypsat i slovně) | #** ' ''ground'' ' (odpovídá číslu 1 - viz uvedený kód. Hodnotu je možné namísto '1' vypsat i slovně) | ||
#* Vyhovující objekt je takový objekt, který má shodný typ a barvu s hodnotami uvedenými ve scriptu. | #* Vyhovující objekt je takový objekt, který má shodný typ a barvu s hodnotami uvedenými ve scriptu. | ||
- | #* Zjištění typu objektu a jeho barvy je uvedeno níž. | + | #* Záporným číslem '-1' na místě barvy je řečeno, že vyhovuje libovolná barva předmětu. |
+ | #* Zjištění typu objektu a jeho barvy je uvedeno níže. | ||
#* Při běhu scriptu se po vyhodnocení tohoto příkazu uloží nalezený objekt do proměnné 'finditem' se kterou můžete dále pracovat. | #* Při běhu scriptu se po vyhodnocení tohoto příkazu uloží nalezený objekt do proměnné 'finditem' se kterou můžete dále pracovat. | ||
# '''if UO.FindCount() > 0 then''' | # '''if UO.FindCount() > 0 then''' | ||
Řádka 29: | Řádka 30: | ||
#* Význam podmínek je takový, že když (if) je splněná podmínka <výraz>, potom (then) se provedou příkazy <příkazy>, jinak (else) se provedou jiné příkazy <jiné příkazy> a podmínka se ukončí (end if). Část (else) se může vypustit, pokud není potřebná (náš případ). <end if> se vypustit nesmí - označuje konec těla podmínky. | #* Význam podmínek je takový, že když (if) je splněná podmínka <výraz>, potom (then) se provedou příkazy <příkazy>, jinak (else) se provedou jiné příkazy <jiné příkazy> a podmínka se ukončí (end if). Část (else) se může vypustit, pokud není potřebná (náš případ). <end if> se vypustit nesmí - označuje konec těla podmínky. | ||
#* UO.FindCount() je příkaz, který vrátí počet nalezených předmětů nejposlednějším příkazem UO.FindType. V tomto případě se tedy testuje, zda je počet nalezených předmětů větší nule - tedy zda Injection vůbec nějaký předmět našel. | #* UO.FindCount() je příkaz, který vrátí počet nalezených předmětů nejposlednějším příkazem UO.FindType. V tomto případě se tedy testuje, zda je počet nalezených předmětů větší nule - tedy zda Injection vůbec nějaký předmět našel. | ||
- | # '''UO.grab("500",'finditem')''' | + | # '''UO.grab( <Počet>,<Objekt>)''' |
+ | #* Vezme <Počet> <Objekt>ů a vloží je k sobě do batohu. V našem konkrétním případě vezme až 500 předmětů nalezených příkazem ' ''UO.FindType'' '. Hodnota <Počet> se vztahuje vždy jen k jednomu konkrétnímu nalezenému objektu, tedy vezme více věcí pouze v případě, že jde o tzv. stackovatelné předměty, kde leží více předmětů na jednom místě (regy, peníze). | ||
+ | #* počet lze také udat jako číslo "-1". V takovém případě je sebráno maximální nalezené množství. | ||
+ | |||
+ | == Jak změnit typ sbíraného předmětu == | ||
+ | Jediným důležitým bodem scriptu je řádek '''UO.FindType ("0x0EED", -1, 1)'', kde číslo "0x0EED" označuje předmět, který chcete sbírat. Požadovaný typ získáte následujícím způsobem: | ||
+ | |||
+ | # Připravte si vzorek předmětu, jehož typ chcete získat a položte si ho na místo, kde se vám jej podaří v dalším kroku snadno zacílit targetem UO clienta. | ||
+ | # Ve hře napište příkaz ,info a poté zacilte zvolený předmět. Ukáže se vám nové Text okno, ve kterém budou vypsány informace o zacíleném objektu. | ||
+ | # Mezi vypsanými hodnotami je i položka Type ve tvaru "0x1234" (samozřejmě s jinými konkrétními hodnotami v rozmezí 0-F)-> toto je vámi hledaný vzorek, který vložte na stávající místo v příkazu - tedy ' ''UO.FindType ('''"0x0EED"''', -1, 1)'' ' | ||
+ | # v tuto chvíli už stačí script pouze spustit a bude hledat vámi nově zadaný typ předmětu na zemi. | ||
+ | |||
+ | '''POZOR: Pokud se některý předmět házením na zem otáčí a mění tak svou grafiku, pak každé toto otočení má svůj vlastní type! Pokud vám tedy zapadne nějaký podobný předmět a script vám jej nenašel, pak nezapomeňte vyzkoušet všechny jeho varianty!''' |
Verze z 11:51, 23. 5. 2009
Loot script ze země
sub zvedni() UO.FindType ("0x0EED", -1, 1) if UO.FindCount() > 0 then UO.grab("500",'finditem') end if end sub
Spustíte jej příkazem ,exec zvedni.
Vysvětlení jednotlivých příkazů
- sub zvedni()
- příkaz sub označuje začátek těla funkce. Pojí se s řádkem end sub, který tělo funkce ukončuje. Za příkazem ' end sub ' pak může následovat funkce další.
- výraz zvedni() za klíčovým slovem ' sub ' udává jméno funkce, jejíž tělo následuje. Přes toto jméno se pak zapsaná funkce spouští - volá (ve hře příkaz ' ,exec <jméno funkce> ').
- UO.FindType( <Typ>, <Barva>, <Umístění>)
- Příkaz nalezne první vyhovující objekt v místě <Umístění>. Umístění mohou být:
- ' objekt containeru ' (jeho UID)
- ' backpack '
- ' ground ' (odpovídá číslu 1 - viz uvedený kód. Hodnotu je možné namísto '1' vypsat i slovně)
- Vyhovující objekt je takový objekt, který má shodný typ a barvu s hodnotami uvedenými ve scriptu.
- Záporným číslem '-1' na místě barvy je řečeno, že vyhovuje libovolná barva předmětu.
- Zjištění typu objektu a jeho barvy je uvedeno níže.
- Při běhu scriptu se po vyhodnocení tohoto příkazu uloží nalezený objekt do proměnné 'finditem' se kterou můžete dále pracovat.
- Příkaz nalezne první vyhovující objekt v místě <Umístění>. Umístění mohou být:
- if UO.FindCount() > 0 then
- Hlavním prvkem tohoto příkazu je nejzákladnější stavební kámen programování, kterým je tvoření podmínek příkazy if - then - else volně přeložitelný jako 'když - potom - jinak'. Syntaxe Příkazů je následující:
if <výraz> then
else <jiné příkazy> end if
- Význam podmínek je takový, že když (if) je splněná podmínka <výraz>, potom (then) se provedou příkazy <příkazy>, jinak (else) se provedou jiné příkazy <jiné příkazy> a podmínka se ukončí (end if). Část (else) se může vypustit, pokud není potřebná (náš případ). <end if> se vypustit nesmí - označuje konec těla podmínky.
- UO.FindCount() je příkaz, který vrátí počet nalezených předmětů nejposlednějším příkazem UO.FindType. V tomto případě se tedy testuje, zda je počet nalezených předmětů větší nule - tedy zda Injection vůbec nějaký předmět našel.
- UO.grab( <Počet>,<Objekt>)
- Vezme <Počet> <Objekt>ů a vloží je k sobě do batohu. V našem konkrétním případě vezme až 500 předmětů nalezených příkazem ' UO.FindType '. Hodnota <Počet> se vztahuje vždy jen k jednomu konkrétnímu nalezenému objektu, tedy vezme více věcí pouze v případě, že jde o tzv. stackovatelné předměty, kde leží více předmětů na jednom místě (regy, peníze).
- počet lze také udat jako číslo "-1". V takovém případě je sebráno maximální nalezené množství.
Jak změnit typ sbíraného předmětu
Jediným důležitým bodem scriptu je řádek 'UO.FindType ("0x0EED", -1, 1), kde číslo "0x0EED" označuje předmět, který chcete sbírat. Požadovaný typ získáte následujícím způsobem:
- Připravte si vzorek předmětu, jehož typ chcete získat a položte si ho na místo, kde se vám jej podaří v dalším kroku snadno zacílit targetem UO clienta.
- Ve hře napište příkaz ,info a poté zacilte zvolený předmět. Ukáže se vám nové Text okno, ve kterém budou vypsány informace o zacíleném objektu.
- Mezi vypsanými hodnotami je i položka Type ve tvaru "0x1234" (samozřejmě s jinými konkrétními hodnotami v rozmezí 0-F)-> toto je vámi hledaný vzorek, který vložte na stávající místo v příkazu - tedy ' UO.FindType ("0x0EED", -1, 1) '
- v tuto chvíli už stačí script pouze spustit a bude hledat vámi nově zadaný typ předmětu na zemi.