annuncio

Comprimi
Ancora nessun annuncio.

[EasyUO - Help] Script k differenzia gli oggetti

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • [EasyUO - Help] Script k differenzia gli oggetti

    Nn so come poter fare uno script k differenzia oggetti, nello specifico del mio caso deve differenziare sop 105 da sop >105...
    L'unica strada è l'event property e fin qui nulla di difficile se non:
    1)dovrei settare la sop per ogni skill singolarmente xke il risultato di un property su una 105 è "A Wonderous Scroll Of Animal Taming (105 Skill)$" (esempio) quindi differenzia sl la 105 taming...
    2) nn ho idee su come fargli escludere le sop settate dal property nel finditem successivo..cioè x farvi capire:
    finditem SOPescluseQLLdelProperty...

    PS: ho provato a risolvere il punto 1 scrivendo:
    if Scroll (105 Skill)$ in #property
    ma mi sn accorto k nn è una sintassi corretta...
    Ringraziandovi..
    Sono Inattivo.

    MSN: yurifed@hotmail.it
    ICQ: 593 854 834
    Tanto non rispondo mai..

  • #2
    Non ho capito bene che vuoi fare, ma ti do un po di dritte.

    Ad ogni modo se vuoi differenziare le sop 105 dalle altre è abbastanza semplice. Usare event property è la soluzione giusta e per vedere che sop è basta fare:
    codice:
    if 105 in #property
    {
    	; codice con il da fare
    }
    if 110 in #property
    {
    	; codice con il da fare
    }
    if 115 in #property
    {
    	; codice con il da fare
    }
    if 120 in #property
    {
    	; codice con il da fare
    }
    Se vuoi fare un check su più parole allora devi ricordarti che gli spazi vanno espressi con l'apposita costante e concantenati al resto delle parole usando l'operatore di concatenamento che in easyUO è la virgola (ti faccio l'esempio che è molto più chiaro):
    codice:
    if Animal , #SPC , Taming in #property && 105 in #property
    	; Questa è una sop 105 di Taming
    Se poi ad esempio vuoi cercare una sop che sia taming 110 tra tutte le sop che hai, ti basta fare un piccolo loop così:
    codice:
    findloop:
    finditem %SopType C_ , #backpackid ;cerca le sop nel backpack
    if #findkind <> -1 ;se le trovo....
    {
    	event property #findid ; ... prendo la property
    	if 110 in #property && Animal , #SPC , Taming in #property ; è una 110 di taming
    	{
    		display ok Sop trovata! Il suo ID è: #findid
    		halt
    	}
    	if 110 notin #property || Animal , #SPC , Taming notin #property ; NON è una 110 di taming
    	{
    		ignoreitem #findid sop
    		goto findloop
    	}
    }
    if #findkind = -1
    {
    	display ok Nessuna sop trovata!
    	ignoreitem reset sop
    	halt
    }
    Se poi usi EUO 1.5 puoi fare ancora più velocemente facendo:
    codice:
    finditem %SopType C_ , #backpackid ;cerca le sop nel backpack
    while #findindex <= #findcnt
    {
    	event property #findid ; ... prendo la property
    	if 110 in #property && Animal , #SPC , Taming in #property ; è una 110 di taming
    	{
    		display ok Sop trovata! Il suo ID è: #findid
    		halt
    	}
    	if 110 notin #property || Animal , #SPC , Taming notin #property ; NON è una 110 di taming
    		set #findindex #findindex + 1
    }
    display ok Nessuna sop trovata!
    halt

    Commenta


    • #3
      Uhm..mi sn spiegato 1 po trp genericamente: lo script nn è x selezionare una determinata sop..lui apre una bag dove ci sono + di una sop e magari di queste 1 o 2 sono 105 mentre le altre o (l'altra)sono 110/115/120...a qst punto se non è una 105 compie una determinata azione altrimenti cerca di nuovo senza + considerare le sop gia controllate..
      scusa x la poka kiarezza di prima...spero di essermi spiegato 1 po meglio..
      A me era venuta l'idea di usare #snct2 xo nn sn sicuro k funzioni xke lo script è creato apposta x essere molto veloce quindi nn so se usare l'intervallo di tempo è affidabile..
      Ringraziando di nuovo..

      Edit: Forse ho trovato il modo di semplificare ankora la spiegazione, l'epicentro del problema è creare 1 riga tipo:
      finditem SOP C_ , %BAGID *Esclusa %sop1 (settata con un #findid poko sopra)..spero di aver aumentato la kiarezza..
      Ultima modifica di Angelofdeath; 23-11-2005, 23:05.
      Sono Inattivo.

      MSN: yurifed@hotmail.it
      ICQ: 593 854 834
      Tanto non rispondo mai..

      Commenta


      • #4
        Gli ultimi 2 esempi che ti ho messo sopra fanno esattamente quello che vuoi te. Cercano una determinata sop e se la trovano fanno una determinata azione.

        Sintetizzando:
        • se usi EUO 1.42 devi usare finditem per trovare le sop, prenderne le proeprty e controllarla, se non rispecchia i tuoi paramentri la ignori con ignoreitem e ripeti il finditem e così via;
        • se usi EUO 1.5 ti basta fare un solo finditem sulle sop, controllare se la sop rispecchia i tuoi criteri di ricerca usando event property e, se non è così passare alla sop successiva usando la variabile #findindex.


        Avendo EUO il ciclo while e dovendo fare solo un finditem il tutto risulta molto + veloce.

        Per maggiori info sui comadi che ti citato, controlla sulla documentazione di EasyUO che è fatta bene.
        Ultima modifica di Boydon; 24-11-2005, 00:50.

        Commenta

        Sto operando...
        X