Originariamente inviato da seel82
Visualizza il messaggio
annuncio
Comprimi
Ancora nessun annuncio.
[Python] PyziUO - nuovo Script Engine per la uo.dll
Comprimi
Questa è una discussione evidenziata.
X
X
-
Originariamente inviato da MaRghEriTa DeVilScusa il disturbo,ho chiesto a capo nel frattempo,volevo semplicemente poter leggere il discord uod
ma non poter in nessun modo scrivere in general,soffro di una malattia kashmir è la decima volta che ci provo ma non riesco proprio a non rispondere...
...Basterebbe essere bigmouth a vita , mi faresti un enorme favore...Vorrei pensare solo a giocare ,e lasciare le persone parlare
Originariamente inviato da MaRghEriTa DeVil@KasHmiR
Non me ne frega niente
Toglimelo
Io ho chiesto di metterlo, io ho diritto di riaverlo quando e come voglio
Chi lo controlla questo patetico esaltato?
Haldir Di Gondor
-
Ciao Cookie, volevo farti i complimenti per il gran lavoro e contributo.
Ho delle domande, hai scritto che questo wrapper è di più alto livello rispetto ad easy uo, questo cosa implica? Mi spiego meglio gli script scritti con questo metodo sono "più lontani" rispetto a quelli in easy uo?
Ovvero, dato che le istruzioni di alto livello vengono sempre poi tradotte in quelle di più basso livello, ti chiedo se il più alto livello di questo tool, corrisponde ad affrontare "più gradini" ad uno script per arrivare poi alle azioni da svolgere nel client.
Grazie ancora, un saluto.
Originariamente inviato da effe15
Che le tenebre e le fiamme accompagnino il tuo cammino signore degli inferi!
I Custodi.
Commenta
-
Originariamente inviato da Shun Visualizza il messaggioCiao Cookie, volevo farti i complimenti per il gran lavoro e contributo.
Ho delle domande, hai scritto che questo wrapper è di più alto livello rispetto ad easy uo, questo cosa implica? Mi spiego meglio gli script scritti con questo metodo sono "più lontani" rispetto a quelli in easy uo?
Ovvero, dato che le istruzioni di alto livello vengono sempre poi tradotte in quelle di più basso livello, ti chiedo se il più alto livello di questo tool, corrisponde ad affrontare "più gradini" ad uno script per arrivare poi alle azioni da svolgere nel client.
Grazie ancora, un saluto.
EasyUO
codice:set %doors WOC_VOC_GPC_FPC_IPC_HPC_CPC_BPC_EPC_DPC_
codice:List<string> doors = new List<string> { "WOC", "VOC, "GPC", "FPC", "IPC", "HPC", "CPC", "BPC", "EPC", "DPC" };
codice:doors = ["WOC", "VOC, "GPC", "FPC", "IPC", "HPC", "CPC", "BPC", "EPC", "DPC"]
EasyUO
String Split
Python
codice:res = "this|is|an|example".split('|')
EasyUO
codice:set %msg La , #spc , tua , #spc , forza , #spc , è , #spc , #str , .
codice:msg = 'La tua forza è ' + str(UO.Str) + '.'
codice:msg = 'La tua forza è %d.' % UO.Str
codice:msg = 'La tua forza è {0}.'.format(UO.Str)
Commenta
-
Originariamente inviato da Shun Visualizza il messaggioCiao Cookie, volevo farti i complimenti per il gran lavoro e contributo.
mi aggiungo anch'io ai complimenti, bel lavoro
Tra l'altro, come tu stesso dici, tanto PyziUO quanto Razor Enhanced utilizzano lo stesso engine IronPython: quindi - benchè immagino che gli script non saranno completamente intersambiabili tra i due sistemi... - penso che la maggior parte delle informazioni utili potranno essere condivise.
Buon game davvero!
Magnetosigpic
Commenta
-
Versione 0.3.0.6
Ho fatto qualche modifica:
- ora si può usare UO.Cast(spell) con il nome della spell invece dell'indice
- si può cercare singoli item (UO.FindItem) e la lista totale degli item in un contenitore (UO.FindItems) con un array di tipi/seriali oltre che con il singolo id
- ho tolto l'argomento per cercare solo item visibili o anche invisibili, visto che pare non servisse a nulla o non funzionasse (??)
- ho aggiunto anche un modo per puntare la dll su un altro client nel caso ce ne fosse più di uno ma non l'ho ancora ben testato
- ora si può scrivere le EventMacro con un solo argomento nel caso il secondo fosse 0
- ora UO.LHandID e UO.RHandID sono settabili da script (prima per distrazione li avevo lasciati read-only)
Esempio dell'array di UO.FindItem(s):
codice:import clr clr.AddReference('System.Windows.Forms') from System import Array humantypes = Array[int]([0x190, 0x191]) humans = UO.FindItems(humantypes, 0) if not humans is None: UO.HeadMsg("Ci sono {0} pg/npc umani nei dintorni".format(len(humans)), 50)
Ultima modifica di CookieLover; 24-06-2017, 22:15.
Commenta
-
Versione 0.3.0.7
Modifiche:
- aggiunto il comando UO.IgnoreItem(serial o item)
- aggiunto il comando UO.ClearIgnoreList()
- cambiata la funzionalità di UO.FindItem, non esiste più UO.FindItems (vedi sotto)
- aggiunto il comando UO.FindType(type / array di types, container)
- sto testando la questione UO.TileInit, UO.TileCnt, UO.TileGet
- cambiata la uo.dll per supportare i client fino al 7.0.57.1, risolve anche il bug del UO.CliLang
UO.FindItem / UO.FindType
UO.FindItem
Argomenti: serial [, container] (facoltativo)
Cerca il singolo item partendo dal serial e riporta l'oggetto con le sue caratteristiche (ID, Type, Kind, X, Y, Z, Stack, Rep, Col).
UO.FindType
Argomenti: type o array di types [, container] (facoltativo)
Cerca tutti gli items con quel/quei type(s) e riporta un generatore (una specie di lista).
UO.IgnoreItem / UO.ClearIgnoreList
UO.IgnoreItem
Argomenti: serial / item
Permette di ignorare un item, ovvero non trovarlo con UO.FindItem/UO.FindType.
(La lista si resetta in automatico ad ogni istanza.)
UO.ClearIgnoreList
Argomenti: N/A
Pulisce la lista degli item ignorati.
Script per conoscere le proprie stats/res base senza undressare
codice:totalvalue = { 'Strength Bonus' : 0, 'Dexterity Bonus' : 0, 'Intelligence Bonus' : 0 } Hue = 80 UO.OpenPaperdoll() UO.Wait(20) items = UO.FindType(0, UO.ContID) for itm in items: if itm is None: continue props = UO.GetPropList(itm.ID) UO.Wait(10) if props is None: continue for k,v in totalvalue.iteritems(): if k in props.Keys: totalvalue[k] += int(props[k]) s = 'Strength = {0}'.format(UO.Str - totalvalue['Strength Bonus']) d = 'Dexterity = {0}'.format(UO.Dex - totalvalue['Dexterity Bonus']) i = 'Intelligence = {0}'.format(UO.Int - totalvalue['Intelligence Bonus']) res = ['Energy Resist', 'Poison Resist', 'Cold Resist', 'Fire Resist', 'Physical Resist'] ResSpell = UO.GetSkill("Resisting Spells").Real resval = 0 if 445 <= ResSpell < 550: resval = 5 elif ResSpell < 700: resval = 10 elif ResSpell < 850: resval = 20 elif ResSpell < 1000: resval = 30 elif ResSpell < 1100: resval = 40 elif ResSpell < 1200: resval = 42 elif ResSpell == 1200: resval = 44 UO.SysMessage('======== Char Base Props ========', Hue) for stat in [s,d,i]: UO.SysMessage(stat, Hue) for r in res: UO.SysMessage('{0} = {1}'.format(r, resval), Hue) UO.SysMessage('===============================', Hue)
Ultima modifica di CookieLover; 01-07-2017, 05:05.
Commenta
-
Versione 0.3.0.8
Ho modificato delle funzionalità perché mi sono accorto che non erano il massimo mentre scrivevo la documentazione.
Commenta
-
Originariamente inviato da CookieLover Visualizza il messaggio
PyziUO è un wrapper in C# della uo.dll (gestita e aggiornata da Cheffe) che è alla base di programmi come EasyUO e OpenEuo.
Accetta e interpreta scripts in IronPython (come Razor Enhanced), che è una versione di Python 2 integrata nell'ambiente .NET.
Nel pacchetto in download sono già presenti degli script di esempio.
Non li trovo XD
Commenta
-
Versione 0.3.2.0
Differenze da quella vecchia:- UO.FindType ora riporta un solo item, per avere una lista ci sono UO.FindInCont e UO.FindOnGround.
- UO.InJournal, UO.TileInit, UO.TileCnt e UO.TileGet ora funzionano (per tile, come per easyuo c'è bisogno dei file MUL)
Ho caricato degli script di esempio su tile, journal e findincont.
Salvata la documentazione e aggiunti segnalibri.
Ultima modifica di CookieLover; 12-09-2017, 13:19.
Commenta
-
Originariamente inviato da propano Visualizza il messaggiociao, potresti sistemare l'archivio? Non riesco ad aprirlo.
Commenta
Commenta