Scripty od Caleba

Moderátoři: Caleb, Taldor

Odpovědět
Uživatelský avatar
Caleb
Book Snake
Book Snake
Příspěvky: 95
Registrován: 02 pro 2006 10:39
Kontaktovat uživatele:

Scripty od Caleba

Příspěvek od Caleb »

No Orion ma super grafiku ale scripteni je u nej trosku doba kamena oproti fene. Kazopadne jde udelat hodne, urcite ne vse ;].
Urcite by bylo pekne, kdyby pridali ruku k dilu a poskytli svoje znjisteni i ostani zdejsi programatori, verim ze tu jsou vetsi kapacity nez ja ;].

Ale k veci.

Zde budu asi prostrednictvim odkazu, nebo primo v postu publikovat svoje scirpty, zatim neni zdaleka vse hotove, ale jiste uz dost aby se na tom dalo trosku hrat.
Kdo ma moji fenu, tak ma asi lehci start, prikazy se snazim drzet stejne a funcnost co nejpodobnejsi. Komentare k jednotlivim metodam jsou primo ve scriptech.
Bohuzel vse je v jednom souboru, to je jeden z neduhu Orionu, ze nelze napric soubory volat funkce, co jsem aspon zatim zjistil. Treba me nekdo vyvede z omylu. Musit to byt v jednom soboru a nedoporucuji vam to odelovat, protoze tam mam spoustu podpurnych funkci, ktere vyuzivaji jednotlive spustitelne scripty.

Na rozdil od feny, jsou krome scriptu samotnych zde dulezite pro spravne fungovani i tzv. FindListy, tedy sdilet budu oboji a se spojenim se musite poprat sami ;].

Doporucuju si nahodit ukazkove hotky a chytrejsi pochopi, ostani se musi snazit.

Kde jsou soubory

Scripty - "vas adresars s orion launcherem\OA\*.oajs - Javasript
FindList - "vas adresars s orion launcherem\OA\GlobalConfig\FindList.xml - XML
Hotkeys - "vas adresars s orion launcherem\OA\SavedHotkeys\*.xml - XML

soubory lze otevrit a editovat i v notepadu.

Ke stazeni
- zip obhsajuje scripty, findlist a ukazkove hotky
https://uloz.to/!awUmSxDmXC7e/oa-zip

Hotkeys
- vetsina mych spustitelnych scriptu vyzaduje typ hotkey External Code. Nasledne dole v text boxu pisete primo prikaz (viz. ukazkove Monk.xml s hotkami)

Obrázek

FindList
!-Bez nej nebude spravne fungovat prejmenovani, hlavne ten all


- bud skopirujte komplet, nebo pridavejte do sveho existujiciho soboru (pres notepad treba) pouze vzdy dany findlist, zacina <findlist .. konci </findlist>

Kód: Vybrat vše

<?xml version="1.0" encoding="UTF-8"?>
<data version="0" size="3">
    <findlist name="all">
        <item graphic="0xFFFF" color="0xFFFF" comment="ANY"/>
    </findlist>
    <findlist name="shrinkMounts">
        <item graphic="0x211F" color="0xFFFF" comment="???"/>
        <item graphic="0x2121" color="0xFFFF" comment="???"/>
        <item graphic="0x2124" color="0xFFFF" comment="???"/>
        <item graphic="0x20F6" color="0xFFFF" comment="???"/>
        <item graphic="0x2135" color="0xFFFF" comment="???"/>
        <item graphic="0x2136" color="0xFFFF" comment="???"/>
        <item graphic="0x2137" color="0xFFFF" comment="???"/>
    </findlist>
</data>
Scripty

- pocitejte stim, ze budouci verze muzou obsahovat radikalni zmeny, takze vzdy si vse zalohujte aby jste po nahrani nove verze nebyli smutni.
Predem upozorunuju, ze to pisu primarne pro sebe a zadne pozadavky na upravy nebo nejake chtene scripty ne nezajimaji, sdilim to pouze pro to aby vsichni mohli hrat s celkem kvalitnimi scripty.

1.0 - slovnik pojmu (vysvetlivky ke komentarum v kodu)

- Non-Exec - primarne metoda neurcena k hotce, ale k vyuziti ve scriptovani
- Executable - urcena k hotce

- datovy typ - promene maji datove typy, ruzne
- string = text "blabla"
- boolean = true / false - (ano / ne)
- int - cislo cele
- grafika - cislo - 0x0000 - 0xFFFFF
- color - cislo - 0x0000 - 0xFFFFF
- serial - id objektu 0x00000000 - 0xFFFFFFFF
- objekt resp. objetk char - objekt orionu reprezentujici objekt ve hre.
- pole - mnozina prvku nejakeho datoveho typu, deklarace v js [ "", "", "", .... ,""]

1.1 - Vypichnute scripty

- rename() - prejmenovani mobu, bez FindListu "all" - nebude fungovat
- HidePlayer() - hid s odpocitavanim
- UseMount() - celkem chytre nasedani - ushrink nebude fungovat bez FindListu "shrinkMounts"
- SelectNextTargetEnemy() - zamerovani
- MobKill(), MobStop(), MobCome(), MobGo() - kdo pouziva moji fenu vi, ovladani summu
- DrinkPotion("Total Mana Refresh") - piti flasek s prelivanim
- UseJewlery("GGR", 0x108A, 0x0000, "Ring"); - univerzal na vsechny sperky, toci ruzna ID. Vypisuje cas pokud je v hlaskach
- ReflexRing() - specialni na reflexy, toci GRR, GRR2 a RR ruzna ID. Vypisuje cas pokud je v hlaskach
- AttackTarget(targets) - utok na zvolene targety zleva do prava nebo nalezeny nejblizsi enemy
- EquipSlotWeapon(nameKey, graphic, color, ensureShield) - nahazuje zbrane, vypina tercik a muze u nahodit stit (vychozi ano)
- SwitchShield() - meni stity, nezapomente si spravne nastavit equipDenyItems List, napr mystik na pala, mag hulku atd at to neshodi
- EquipVendeta() - nasazuje a nabiji vendetu
- UseTypeCust(gra, c, targets, targetText, playerText, targetTextColor, playerTextColor, targetTypeStrict) - vylepseny usetype
- ShrinkPet(defaultLevels) - shrinkuje pety do vzdalenoisti 2 serzeny podle HP - [ "Pet Lvl 1", "Pet Lvl 2", etc. ]
- UsePetLevelOrDefault(defaultLevels, useAim) - vyhodi vybrany pet level nebo default nebo ten co najde, use aim vyhodi tercik a aklamak vyhodi na zvolenem cily ...
- SelectNextPetLevel(petLevels) - na toceny zvoleneho pet levelu
- GuildRune - vyp zap guild runu
- OpenDoor() - otevirani zavrinani dveri klikani kliku bran atd ... nutni mit koretne zadane findlisty
- SnezSalat() - papa salat ale kdyz neni potreba nepapa
- UseDarkSkull() - nekr mystik saseda cekuje HP
- CastSpell(spellName, targets, useScroll) - uz funguje useScroll


AKTUALNI VERZE GIThub
Naposledy upravil(a) Caleb dne 26 úno 2019 17:59, celkem upraveno 4 x.
http://spolek.rivil.com/?i=5&g=1&img=1009
Uživatelský avatar
Caleb
Book Snake
Book Snake
Příspěvky: 95
Registrován: 02 pro 2006 10:39
Kontaktovat uživatele:

Re: Scripty od Caleba

Příspěvek od Caleb »

+ ReflexRing - pridano na otoceni HoDF
+ ReflexRing - check nabiti, nepouzit RR pri 0 (zmizi?).

Jinak jeste jednou dekuji Taldorovi za super scripty, doporucuji vsem pro zacatek, jsou jiste prehlednejsi nez ten muj bordel ;]. Do budoucna planuji tez vytvorit GitHub ale zatim jsem ve fazi zprovzneni scriptu na klikani a nasledne budu resit "hezkost" ;].

Jinak stim jednim souborem a nemoznosti 'include' v Orionu me napadlo reseni v podobe aplikacni utilitky, kde by so clovek vyklikal jednotlive soubory ze scirpty a ona by mu je sama spojila do autoload.oajs stim ze v jednotlivych souborech by mohlo byt deklarovani using xyz.js jako zavislost a tedy automaticke pridani toho krery je nezbytny. Ale vse casem 8)
http://spolek.rivil.com/?i=5&g=1&img=1009
Uživatelský avatar
Caleb
Book Snake
Book Snake
Příspěvky: 95
Registrován: 02 pro 2006 10:39
Kontaktovat uživatele:

Re: Scripty od Caleba

Příspěvek od Caleb »

Pridany nove scripty, zatim porad v jednom souboru. Pridano na GitHub.

!!!Jsou tam i find listy + hotky s ukazkami ;]

- AttackTarget(targets) - utok na zvolene targety zleva do prava nebo nalezeny nejblizsi enemy
- EquipSlotWeapon(nameKey, graphic, color, ensureShield) - nahazuje zbrane, vypina tercik a muze u nahodit stit (vychozi ano)
- SwitchShield() - meni stity, nezapomente si spravne nastavit equipDenyItems List, napr mystik na pala, mag hulku atd at to neshodi
- EquipVendeta() - nasazuje a nabiji vendetu
- UseTypeCust(gra, c, targets, targetText, playerText, targetTextColor, playerTextColor, targetTypeStrict) - vylepseny usetype
- ShrinkPet(defaultLevels) - shrinkuje pety do vzdalenoisti 2 serzeny podle HP - [ "Pet Lvl 1", "Pet Lvl 2", etc. ]
- UsePetLevelOrDefault(defaultLevels, useAim) - vyhodi vybrany pet level nebo default nebo ten co najde, use aim vyhodi tercik a aklamak vyhodi na zvolenem cily ...
- SelectNextPetLevel(petLevels) - na toceny zvoleneho pet levelu
- GuildRune - vyp zap guild runu
- OpenDoor() - otevirani zavrinani dveri klikani kliku bran atd ... nutni mit koretne zadane findlisty
- SnezSalat() - papa salat ale kdyz neni potreba nepapa
- UseDarkSkull() - nekr mystik saseda cekuje HP
- CastSpell(spellName, targets, useScroll) - uz funguje useScroll
http://spolek.rivil.com/?i=5&g=1&img=1009
ryko de martis
Inkless
Inkless
Příspěvky: 25
Registrován: 18 bře 2016 16:30

Re: Scripty od Caleba

Příspěvek od ryko de martis »

pridej prosim do OpravStaty() tento radek...

Kód: Vybrat vše

 if (Orion.ObjAtLayer("Legs") != null) currentEq.push(Orion.ObjAtLayer("Legs"));
at to oblika i nohy brneni :) jakoze kazdej si to muze pridat sam, ale kdyz uz to mas takhle kompletni...
ryko de martis
Inkless
Inkless
Příspěvky: 25
Registrován: 18 bře 2016 16:30

Re: Scripty od Caleba

Příspěvek od ryko de martis »

k tomu reflex ringu a ggr... nemuzu se zbavit tohoto https://ctrlv.cz/ZTeM na 3084 mi zacina

Kód: Vybrat vše

var itemsRR = SortObjectBySerialAsc(FindTypeObjRecursive(rr.Graphic, rr.Color));
, nevíš prosim co s tim? btw, nejsem sám... ani odkomentovani mi nepomohlo
Uživatelský avatar
Caleb
Book Snake
Book Snake
Příspěvky: 95
Registrován: 02 pro 2006 10:39
Kontaktovat uživatele:

Re: Scripty od Caleba

Příspěvek od Caleb »

ryko de martis píše: 27 úno 2019 11:11 k tomu reflex ringu a ggr... nemuzu se zbavit tohoto https://ctrlv.cz/ZTeM na 3084 mi zacina

Kód: Vybrat vše

var itemsRR = SortObjectBySerialAsc(FindTypeObjRecursive(rr.Graphic, rr.Color));
, nevíš prosim co s tim? btw, nejsem sám... ani odkomentovani mi nepomohlo

To bohuzel netusim, me to funguje OK. Mozna si to nejak blbe nakombinoval s jinymi scripty a mas neco ti v autoload chybi. Dle poctu radku tam neco mas navic protoze muj nema 3k radku zatim.

+ laststatus - alias uz je funkcni, diky Taldorovi za navedeni ;]!
http://spolek.rivil.com/?i=5&g=1&img=1009
Taldor
Misspelling Chicken
Misspelling Chicken
Příspěvky: 9
Registrován: 17 úno 2017 11:32
Kontaktovat uživatele:

Re: Scripty od Caleba

Příspěvek od Taldor »

Caleb píše: 06 bře 2019 13:19 ...
dival jsem se na ten tvuj autoload
https://github.com/caleb-dp/OrionUO/blo ... d.js#L2113
ohledne teto casti

Kód: Vybrat vše

// Orion.FindType("!0x0190|!0x0191", "-1", "ground", "near|live", 22, "blue|gray|criminal|orange|red"); ??? proc nefunguje?
jde o to ze tam mas flag "near" to ti vrati pole jen s JEDNIM nejblizsim cilem
coz se da v rychlosti vypozorovat pres debug print:

Kód: Vybrat vše

Orion.Print('-1', allList.length);
kdyz se mrknes do te moji dokumentace tak na zacatku
https://tal-dor.github.io/OrionUO-docs/ ... stant.html

sem dal vsechny typy search filteru pro tuto sekci:

Kód: Vybrat vše

"near - search for the nearest object to the character;"
takze staci ponechat flag "live" a mas hotovo krasne pole ti to vrati se vsema zivejma potvorama/hracema (live automaticky zapne i mobile flag takze neni potreba tam dopisovat)

a ty dalsi radky 2114-2117 taky nejsou potreba (Split tady neni potreba kazdy zaznam uz je oddeleny carkou z FindType, teda jestli jsem to pochopil dobre co stim Split zamyslis :) )

jenom si nejsem jisty jak se ten list pri uziti FindType defaultne radi bez toho near, nevim jestli to chces aby ti to vracelo pole serazeny podle vzdalenosti, kdyz vezmu v potaz ze by to ten FindType neradil podle vzdalenosti defaultne (nemuzu ted vyzkouset jsem na mobilu:P) takze me napada:

1. pouzit ten "near" flag a hazet si je po jednom do toho serazenyho allList z FindType tempList a potom ten target hodit do ignore pres Orion.Ignore(tempList[0]); aby ti to pri dalsim pruchodu FindType "near" vzalo az dalsiho nejblizsiho

2.nepouzivat "near" flag a na razeni vzdalenosti misto toho vzit na pomoc Orion.GetDistance('serial')

ktery reseni je uspornejsi jako myslim tim zatez Orionu to ale nevim :)


-----------------------------------------------------------------------------------------------------------------------------------------

jo a chapu ze pouziti

Kód: Vybrat vše

var allList = Orion.FindList("all", ground, '', distance);
s naslednym 0xFFFF listem :

Kód: Vybrat vše

<findlist name="all">
        <item graphic="0xFFFF" color="0xFFFF" comment="ANY"/>
</findlist>
bylo provizorni ale rad bych upozornil a ted rikam pro vsechny (hlavne novacky) co si zkousi psat scripty na tohle si davejte bacha, obzvlaste pokud tam mate malou wait pauzu ve smycce a cyklite to napriklad kazdych 10-50 milisekund, dost to zatezuje Orion a muze ses stat ze vam crashne client :P jde o to ze kdyz prohledavate uplne vsechno "all" na zemi "ground" ve velkym radiusu "distance" a tenhle "FindList" muze mit pri nejhorsim i nekolik stovek ci tisicu zaznamu pokud behate napriklad kolem baraku nekde ve mestech, zaznamenava to kazdou truhlu/strom/kaminek/list/smeti na podlaze/ proste uplne vsechny objekty na obrazovce :P
Uživatelský avatar
Caleb
Book Snake
Book Snake
Příspěvky: 95
Registrován: 02 pro 2006 10:39
Kontaktovat uživatele:

Re: Scripty od Caleba

Příspěvek od Caleb »

Taldor píše:...


Dikes urci na to kouknu. Stim while je problem no ja to testil naa off trhu a slo to cajk ale zalezi na vasem hw no. Neni to dobre reseni ale bohuzel to scripteni je vznae velkej krok z5. Bez callbacku eventu je to bad no. Uvidime, ja zatim bojuju v pvm s tou animaci pac kdyz ma clovek 20 let zazity neco a vypaleny v mozku tezko se pak reaguje na mostra co se animujou uplne jinak. ;)
http://spolek.rivil.com/?i=5&g=1&img=1009
Odpovědět