Ciao a a tutti,
visti i recenti fix, dopo aver rischiato gia' un paio di volte di distruggere item di valore, ho pensato di creare un semplice script che avvisi nel caso un item diventi troppo danneggiato.
Lo script va eseguito in background e poi fa tutto da solo, ed è fatto in modo da essere più semplice e meno invadente possibile.
Lo posto qua, se qualcuno ha voglia di provarlo per aiutarmi a trovare eventuali bug o di suggerire nuove funzioni / migliorie fara' cosa ben gradita.
Grazie
Edit del 24/12/06: pubblicata versione 0.2 (vedere sotto per le modifiche)
visti i recenti fix, dopo aver rischiato gia' un paio di volte di distruggere item di valore, ho pensato di creare un semplice script che avvisi nel caso un item diventi troppo danneggiato.
Lo script va eseguito in background e poi fa tutto da solo, ed è fatto in modo da essere più semplice e meno invadente possibile.
Lo posto qua, se qualcuno ha voglia di provarlo per aiutarmi a trovare eventuali bug o di suggerire nuove funzioni / migliorie fara' cosa ben gradita.
Grazie
Edit del 24/12/06: pubblicata versione 0.2 (vedere sotto per le modifiche)
codice:
;====================================================== ; Script Name: Bodom's Durability Checker ; Author: DaRkBoDoM ; Version: 0.2 ; Client Tested with: 5.0.7 ; EUO version tested with: 1.5 ver 101 ; Shard OSI / FS: FS ; Revision Date: 24-12-06 ; Public Release: 24-12-06 ; Global Variables Used: N/A ; Purpose: Checks if a dressed item is breaking, then ; prints a warning. ; ====================================================== ; -------------------------Version History-------------- ; ====================================================== ; Ver 0.1 Inital test/writting version. ; Ver 0.2 Now ignores items without durability prop. ; Automatically opens paperdoll if closed ; Main code is now contained in a subroutine ; Does nothing if character is dead ; ====================================================== ; Settings: ; Livello di guardia (avvisa se la durability ; di un oggetto scende sotto a questo valore set %warnlevel 3 ; Ogni quanti secondi controllare l'equip set %scanevery 300 ; Colore del testo del messaggio di avviso set %warncolor 55 ; ----------------------------------------------- set %debuglevel 0 gosub durCheck 5s %warnlevel %warncolor 1 set %t %scanevery , s wait %t sub durCheck { ;Sub principale, ontrolla lo stato degli item ;Parametri: ;%1 = tempo di attesa tra un controllo e l'altro ;%2 = durability minima (sce scende sotto a %1 avvisa) ;%3 = colore del messaggio di avviso ;%4 = usa ignoreitem 1=si 0=no * ; NOTA: ; L'utilizzo di ignoreitem (parametro %4) aumenta la ; velocità dello script e lo rende ancor meno invadente, ; tuttavia, se viene utilizzato come sub insieme ad altri ; script, questa funzione potrebbe causare effetti ; imprevisti e quindi è buona norma disattivarla. if %debuglevel > 0 { event sysMessage Richiamata funzione %0 %1 %2 %3 %4 } if %0 <> 4 { event sysMessage Errore nella chiamata alla funzione! return } ;Se sono morto è inutile perdere tempo... if #charGhost = YES { if %debuglevel > 0 { event sysMessage You are dead. } return } set %i 0 set %pclosed 1 repeat { ;Cerco gli item indossati set %i %i + 1 findItem * %i C_ , #CHARID ;Apro il Paperdoll se e' chiuso while #findkind = -1 && %i = 1 { if %debuglevel > 0 { event SysMessage Paperdoll chiuso! } event macro 8 1 set %pclosed 0 findItem * %i C_ , #CHARID } ;Se ho aperto il paperdoll, lo sposto dove non rompa if %pclosed = 0 { contPos 1000 1000 } event Property #FINDID ;Leggo la durability str Count #PROPERTY Durability set %t #STRRES if %t > 0 { ;Considero solo gli oggetti che hanno durability str Pos #PROPERTY Durability %t set %pos #STRRES + 11 str Len #PROPERTY set %len #STRRES set %t %len - %pos str Mid #PROPERTY %pos %t set %itdur #STRRES str Pos %itdur / set %pos #STRRES - 2 str Left %itdur %pos set %itdur #STRRES ;%itdur adesso contiene la durability str Pos #PROPERTY $ 1 set %pos #STRRES - 1 str Left #PROPERTY %pos set %itname #STRRES ;%itname adesso contiene il nome if %debuglevel > 1 { event sysMessage %i #FINDKIND #FINDID #PROPERTY } ;Avviso se un item e' danneggiato if %itdur < %2 { event ExMsg #CHARID 0 %3 ---AVVISO ITEM DANNEGGIATO--- event ExMsg #CHARID 3 %3 %itname si sta rompendo! } else { if %debuglevel > 0 { event sysMessage %itname %itdur } } } else { ;Evito di considerare l'item al loop successivo ;(suggested by Dalamar Kanan) if %4 = 1 { ignoreitem #FINDID } } if %debuglevel > 0 { event sysMessage #FINDKIND } wait %1 } until #FINDKIND = -1 }
Commenta