YokoInjection
Úvod#
YokoInjection je nástroj k usnadnění hraní Ultimy. Používá se zejména na skripty, které vykonávají za hráče určitou funkci. Má široké možnosti nastavení, proto je pro začátečníky obtížné nastavit Yoko tak, aby správně fungoval. Skriptování je podobné Basicu, takže ti co se orijentují trochu v oblasti programování, mají vyhráno a můžou si teoreticky napsat skript, který za ně udělá skoro cokoliv. Největší problém je s dokumentací Yoka, protože oficiální web je rusky, takže to je menší zádrhel.
Instalace#
- Stáhněte YokoInjection zde.
- Rozbalte stažený .zip archív a spusťte YokoInjection70211.exe
- Dokončete instalaci následujícím postupem:
- Next

Ostatní#
Popis funkcí#
*Flush Log - Po spuštění Yoka vyprázdní soubor injection_log.txt. *Verbose Logging - Podrobně zapisuje do souboru injection_log.txt informace o dění ve hře. !!!Pozor, soubor injection_log.txt obsahuje po krátké době hraní velké množství dat => velký soubor. Spolu s touto funkcí doporučuji používat Flush Log.!!! *Light - “Věčné” světlo. Je to lighthack, na DP zakázané. *Tracker - Pokud zemřete, objeví se k vašemu tělu šipka, ale na většině serverech nefunguje *Corpses autoopen - Pokud ve vaší blízkosti někdo/něco zemře, tak se vám automaticky objeví obsah mrtvoly. *Destroy server menus - Automaticky zavírá většinu menu. *Filter sound - Filtruje zvuky ve hře. *Filterspeech - Neukazuje zprávy, které začínají řetězcem který si nastavíte ve hře příkazem “,filterspeech add text”. *Verbose menu - Po zaškrtnutí vypisuje například hlášky o úspěšném vybrání menu pomocí scriptu atd. *Undead - Když zemřete, nemáte černobíloý obraz a nezavřou se vám bágly. POZOR! Tuto funkci doporučuji mít stále zapnuto, protože na většině serverech mě to odpojilo a nemohl jsem se lognout do hry přes injection, u Ereboru to tak dělá/dělalo. *Autostart - Když lognete, spustí se skript který se jmenuje “autostart” *Target XYZ fix - pokud je volba aktivní, tak targety (cíle), které zasílá Injection jsou naprosto shodné se standatním klientem. Doporučuji však toto nastavení ponechat vypnuté. *Unset before set *Stealth counter - V případě, že jste v hidu a chodíte, tak vám ukazuje, kolik jste udělali kroků. *Smooth-walk - Nástroj, pomocí kterého můžete lépe chodit v lagách, protože nečeká na odezvu serveru. Je zakázán v PvP. Celkem laguje. A nedoporučuji používat. *TUS bb-fix - Na starších serverech opravuje chybu při přihlašování. Na dnešních serverech není za potřebí. *Relay - Není za potřebí na českých shardech požívat *Font color - Nastaví barvu písma. Pomocí tohoto můžete nastavit větší rozsah barev (zapsáním do políčka nebo vybráním z dye), ale není zaručena sabilita klienta. *AntiCrash - Odstraňuje několik příčin pádu klienta po příchodu nesmyslných dat ze strany serveru (barvy, grafiky… mimo rozsah). Doporučuji mít vypnuté. *AoP map patch *Client > 400c Fix - Potřebné ke hraní s Yokem a clientem 4.0.x a 5.0.x *No client hung message - Zajistí, aby se vám nezobrazovaly otravné messageboxy, které sem tam klient vyhodí. Doporučuji nechat vyplé. *Permit vars loopback *Status bar fix - Když někdo zmizí z obrazovky (uteče, odportne, odlogne …) tak se místo něj objeví zombík aby vám nespadla vytažená záložka. - Pokud chcete používat tuto funkci, nejlépe se hodí v pvp, když se někdo hidne, musíte mít zaplou funkci Track world items. *Poison: bottle then obj - Určuje pořadí targetů při použití skillu poisoning. Doporučuji nechat vyplé. *Track world items - Udržuje v paměti i objekty, které již nevidíte na obrazovce. *IngnoreSocket (400x) - Potřebné ke hraní s Yokem a clientem 4.0.x a 5.0.x. Doporučuji nechat vyplé, pokud hrajete na Ereboru, DP, … *Version - Není potřeba vyplňovat *Battle Filter - Neukazuje dynamické itemy. Doporučuji nechat vyplé.
Jak spustit script#
Nejprve musíme mít daný script, např. mining.sc. V injectu tedy vybereme záložku Script, poté klikneme na tlačítko Load a vybereme soubor mining.sc. Dole vedle Run function: se nám zobrazí název spustitelného scriptu, takže si vybereme např. Kopej a klikneme na Run function. A skript by měl běžet. Pokud ho budeme chtít vypnout, stačí běžící script vybrat z horního okna, označíme ho a klikneme na tlačítko Terminate selected.

*TIP: Pokud se vám nechce při každém spuštění Yoka nahrávat soubor se scriptama přes tlačítko Load, tak pojmenujte soubor, který obsahuje vámi používané scripty, na Autoload.sc
Skripty#
`
sub banda() var zbran UO.SetArm(“zbran”) UO.WaitTargetObject(“self”) UO.UseType(‘0x0E21’) wait(300) UO.Arm(“zbran”) end sub
sub hp() var HP_priebezne_self while 1==1 HP_priebezne_self = uo.gethp(“self”) wait(100) if uo.gethp(“self”) < HP_priebezne_self and not uo.dead() then uo.charprint(0x0028,"-" + str(HP_priebezne_self - uo.gethp(“self”)) + " (" + str(uo.gethp(“self”)) + “)”) end if if uo.gethp(“self”) > HP_priebezne_self + 5 and not uo.dead() then uo.charprint(0x010F,"+" + str(uo.gethp(“self”) - HP_priebezne_self) + " (" + str(uo.gethp(“self”)) + “)”) end if wend end sub
sub loot() VAR WaitTime=10 VAR Exit=0, i DIM Loot[38]
Loot[0]=0x0E76 ;Bag Loot[1]=0x0eed ;gold Loot[2]=0x0F8D ;spider silk Loot[3]=0x0F86 ;mandrake root Loot[4]=0x0E21 ;bandage Loot[5]=0x0F7B ;Blood Moss Loot[6]=0x0F84 ;garlic Loot[7]=0x0F7A ;blackpearls Loot[8]=0x0F8C ;sulforous ash Loot[9]=0x0F87 ;eon vocka Loot[10]=0x1BD1 ;perie Loot[11]=0x0F80 ;Daemon bones Loot[12]=0x0F8B ;Pumice Loot[13]=0x0F89 ;Obsidian Loot[14]=0x0f88 ;Nightshade Loot[15]=0x0f85 ;Ginseng Loot[16]=0x0F83 ;an Execution’s Cap Loot[17]=0x0F8E ;a Serpent’s Scale Loot[18]=0x0F91 ;Wyrm’s Heart Loot[19]=0x0F8A ;PigIron Loot[20]=0x0E76 ;Batohy Loot[21]=0x0F78 ;Batwings Loot[22]=0x1BEF ;Ingots Loot[23]=0x0F26 ;Diamanty Loot[24]=0x1F03 ;Róby Loot[25]=0x14EB ;Treassure Map Loot[26]=0x1420 ;Cobbweb Loot[27]=0x108A ;reflex ring Loot[28]=0x1848 ;elixir Loot[29]=0x09D0 ;God’s Apple Loot[30]=0x1BFB ;Crosbow Bolt Loot[31]=0x0F82 ;Dragon’s Blood Loot[32]=0x1078 ;kuze Loot[33]=0x0F81 ;Fertir Dirt Loot[34]=0x0F8F ;grave dust Loot[35]=0x0F7D ;Vials of Blood Loot[36]=0x0F7E ;Bones Loot[37]=0x0F78 ;Batwingy
UO.UseObject(’lastcorpse’) UO.SetArm(’temp’) UO.WaitTargetObject(’lastcorpse’) UO.UseType(‘0x0F51’); <– SEM PATRI ID DYKY UO.SetReceivingContainer(‘sacek’) wait(500) UO.Arm(’temp’) wait(500)
For i=0 to 37 UO.FindType(Loot[i],-1,‘ground’) if UO.GetQuantity(‘finditem’) then UO.Grab(STR(0),‘finditem’) wait(WaitTime) endif
if UO.GetQuantity('lastcorpse') then
UO.FindType(Loot[i],-1,'lastcorpse')
if UO.GetQuantity('finditem') then
UO.Grab(STR(0),'finditem')
endif
wait(WaitTime)
endif
next end sub
sub sipy() var e dim sber[2] sber[0] = “0x1BFB” sber[1] = “0x0F3F” sber[2] = “0x38D8”
for e = 0 to 2 repeat uo.set(“finddistance”,“4”) uo.findtype(sber[e],"-1",“ground”) if uo.findcount() > 0 then UO.moveitem(“finditem”,"-1",“sacek”) wait(1000) end if until uo.findcount() < 2 next uo.print(“Hotovo”) end sub`
`
sub kudla() uo.deletejournal() UO.Say(’.throw’) wait(200) if uo.injournal(“Nemas zadny cil”) or uo.injournal(“Pokusila jsi se hodit”) then uo.Print("—Nejde hazet—") uo.Print("—Zkus to bliz—") else uo.Print("—Hazim—") wait(5000) uo.Print("—No tak hazej—")
END IF
end sub
sub leap() UO.Say(’.leap’) uo.Print("—LEAPUJU!!—") wait(4000) uo.Print("—MUZEM LEAPOVAT—") end sub
sub GH() UO.say(’.potionheal’) Uo.Print(’—-PIJU HEAL—-’) wait(30000) UO.Print(’—MUZEME DALSI HEAL—’) end sub
sub mob() UO.say(’.potionmobility’) Uo.Print(’—-PIJU MOBILITU—-’) wait(30000) UO.Print(’—POZOR MUZES BYT PARLY,RADSI PIJ—’) end sub
sub energypvm() Repeat uo.deletejournal() Uo.Cast(“Energy Bolt”) uo.waittargetlast("") Wait(3200) Until Uo.InJournal(“Body of”) end sub
sub HP() var HP_priebezne_self while not uo.dead() HP_priebezne_self = uo.gethp(“self”) wait(100) if uo.gethp(“self”) < HP_priebezne_self and not uo.dead() then uo.charprint(0x0026,"-" + str(HP_priebezne_self - uo.gethp(“self”)) + " (" + str(uo.gethp(“self”)) + “)”) end if if uo.gethp(“self”) > HP_priebezne_self + 5 and not uo.dead() then uo.charprint(0x01FA,"+" + str(uo.gethp(“self”) - HP_priebezne_self) + " (" + str(uo.gethp(“self”)) + “)”) end if wend end sub
sub Hiding() UO.WarMode (‘0’) UO.UseSkill (‘Hiding’) end sub
sub banda() UO.UseType(0x0E21,0x0000) UO.WaitTargetSelf() end sub
sub pvmloot() uo.findtype(“0x0E76”,"-1",“my”) if uo.findcount()==1 then uo.addobject(“lootbagl”,“finditem”) wait(100) end if var i,n var k Dim A[80] ;uo.charprint(0x0481,“PvM loot ON”) repeat repeat wait(100) until Uo.hex2int(uo.getgraphic(“lastcontainer”))==0x2006 and Uo.getserial(“lastcontainer”)<>k k=Uo.getserial(“lastcontainer”) uo.deletejournal() Uo.set(‘quiet’,‘1’) A[1] = 0x0E76 ; Item baglik A[2] = 0x0EED ; penize A[3] = 0x0F8D ; spider silk A[4] = 0x0F7B ; blood moss A[5] = 0x0F86 ; mandrake roots A[6] = 0x0F8C ; sulfurous ash A[7] = 0x0F88 ; nightshade A[8] = 0x0F7A ; black perla A[9] = 0x0F89 ; obsidian A[10] = 0x0F84 ; garlick A[11] = 0x0F87 ; eyes of newt A[12] = 0x0F83 ; executioners cup A[13] = 0x0F91 ; wyrms hearts A[14] = 0x0F8F ; grave dust A[15] = 0x0F8E ; nox crystal A[16] = 0x0F80 ; dragon bone A[17] = 0x0F8B ; pumice A[18] = 0x0F78 ; batwings A[19] = 0x0F7D ; daemon blood A[20] = 0x0F82 ; dragon blood A[21] = 0x0F8A ; pig iron A[22] = 0x0F81 ; fertile dirt A[23] = 0x0F85 ; ginseng A[24] = 0x0F7E ; bones A[25] = 0x14EB ; tajemna mapa (FLIP) A[26] = 0x14EC ; tajemna mapa (FLIP) A[27] = 0x0F26 ; Diamant A[28] = 0x19B7 ; ore A[29] = 0x0F11 ; saphires A[30] = 0x0F16 ; amethyst A[31] = 0x0F0F ; star saphires A[32] = 0x0F13 ; asi citrin A[33] = 0x0F18 ; neco podobneho A[34] = 0x1712 ; boty A[35] = 0x0F10 ; ddrahokam A[36] = 0x0F15 ; ddrahokam2 A[37] = 0x1078 ; kůže A[38] = 0x0C79 ; jídlo A[39] = 0x0C5C ; jídlo A[40] = 0x103B ; jídlo A[41] = 0x09E9 ; jídlo A[42] = 0x0C6A ; jídlo A[43] = 0x09D1 ; jídlo A[44] = 0x1040 ; jídlo A[45] = 0x098C ; jídlo A[46] = 0x1728 ; jídlo A[47] = 0x09EC ; jídlo A[48] = 0x172A ; jídlo A[49] = 0x0C74 ; jídlo A[50] = 0x1041 ; jídlo A[51] = 0x0C6D ; jídlo A[52] = 0x0C7F ; jídlo A[53] = 0x0C66 ; jídlo A[54] = 0x0C7B ; jídlo A[55] = 0x0994 ; jídlo A[56] = 0x09D2 ; jídlo A[57] = 0x1726 ; jídlo A[58] = 0x1727 ; jídlo A[59] = 0x171F ; jídlo A[60] = 0x0F0E ; alchemy A[61] = 0x0D39 ; jídlo A[62] = 0x0C70 ; jídlo A[63] = 0x09C9 ; jídlo A[64] = 0x0C77 ; jídlo A[65] = 0x0C64 ; jídlo A[66] = 0x097E ; jídlo A[67] = 0x186F ; Vanocni banka
n=1 FOR n=1 TO 67 uo.findtype(A[n],"-1",“lastcontainer”) if uo.findcount() > 0 then uo.moveitem(“finditem”,“2000”,“my”) Wait(50) end if Next Uo.set(‘quiet’,‘0’) until uo.dead() end sub
sub dispelbomba() uo.findtype(“0x0F0E”,“0x0993”,"-1",“self”) if uo.findcount() > 0 then UO.moveitem(“finditem”,“1”,“ground”) wait(400) EndIf end sub
sub zvedni() UO.FindType (“0x0EED”, -1, 1) if UO.FindCount(‘finditem’) > 0 then UO.grab(“5000”,‘finditem’) end if end sub`
Obsah budoucího skriptu
EreborWiki