View Full Version: Creare Evento

DimensioneX Forum > Medievil > Creare Evento



Title: Creare Evento
Description: CREARE EVENTO


Euroman - August 24, 2006 03:58 PM (GMT)
CIAO CRIS!! MI RIMANE DA CREARE UN PICCOLO EVENTO MA HO BISOGNO DI QUALCHE SPIEGAZIONE.

VOLEVO FARE UN EVENTO "CURA FERITE" CHE FUNZIONASSE COME L'EVENTO "NASCONDI".
MI SPIEGO MEGLIO, QUANDO DIGITI "NASCONDI" 1 VOLTA SOLA COMPARE LA DICITURA "NASCONDI ..." (E SCEGLI L'OGGETTO) SE POI DIGITI 2 VOLTE VELOCEMENTE COMPARE NASCONDI TUTTO. (A QUEL PUNTO NASCONDE TUTTO QUELLO CHE CE NELL'INVENTARIO)

*******************************************************************

ECCO IL CURA FERITE DOVREBBE FUNZIONARE COSI:
1 VOLTA SOLO VIENE SCRITTO "CURA FERITE DI ..." (COSI PUOI CURARE UN COMPAGNO) MENTRE SE LO DIGITI 2 VOLTE VELOCEMENTE COMPARE "CURA FERITE DEL TUO PERSONAGGIO" (COSI CURI LE TUE FERITE).

SI PUO FARE UN COMANDO SIMILE????

GRAZIE E A PRESTO!! BY EURO :ph43r:

Cris - August 24, 2006 09:28 PM (GMT)
Si lo puoi fare ma per questo va modificato il Javascript che c'è nel file client.script seguendo l'esempio del comando "hide".

Dimmi l'ID del comando che userai (esempio: "cura") in modo che uso quello.

Euroman - August 26, 2006 06:39 PM (GMT)
OK!! ALLORA DICIAMO CHE ANDREBBE BENE:
"curaferite"

VISTO CHE E' COSI ALLORA TI PASSO UN ALTRO COMANDO CHE VOLEVO FARLO COME IL PRECEDENTE:
"beviborraccia"

GRAZIE MILLE!! BUONA SERATA... BY EURO :lol:

Cris - August 28, 2006 09:17 AM (GMT)
Ecco qua in allegato, occhio che non è stato collaudato.

Qui sotto mostro la parte aggiunta (in giallo), nota la somiglianza con il codice per il comando hide (nascondi)

QUOTE

       } else if (c == "hide") {
               //
               // HIDE
               //
               if (lastCtrl == c) {
                       // SEND CMD
                       cmdecho = msg027;
                       sendCmd(); return;
               }
       } else if (c == "curaferite" || c == "beviborraccia") {
               //
               // COMANDI AGGIUNTIVI A DOPPIO CLIC
               //
               if (lastCtrl == c) {
                       // SEND CMD
                       sendCmd(); return;
               }
       }
       

Euroman - August 31, 2006 05:07 PM (GMT)
CIAO CRIS!! L'EVENTO FUNZIONA SOLAMENTE IN PARTE!! OK PER IL FILE MODIFICATO MA POI NON RIESCO A FARLO FUNZIONARE PERCHE' NON RIESCO A FARGLI CAPIRE A CHI DEVE DARE L'ENERGIA... IN PRATICA TOGLIE PUNTI MENTE AL CHIERICO MA L'ENERGIA NON LA DA AL PERSONAGGIO SCELTO MA SEMPRE A SE STESSO!!!

CIAO BY EURO :lol:

Cris - September 1, 2006 10:07 AM (GMT)
Il comando dovrebbe avere il modello di funzionamento "O" cioè "devo indicare un oggetto prima che l'evento parta". Io nel file script ho impostato una eccezione quindi facendo due clic si ottiene il modello immediato.

Se vogliamo essere sicuri che tutto vada bene incolla qui il codice della definizione nel PANEL dei due comandi curaferite e beviborraccia

Euroman - September 3, 2006 04:53 PM (GMT)
Ok!! Allora il pannello è il seguente:

PANEL M2_chierico
BUTTON curaferite, "Cura ferite", "Cura ferite ...", onCuraFerite, O

Purtroppo non riesco a curare le ferite degli altri. In pratica anche digitando un altro personaggio il gioco cura sempre il chierico!!! Idem ovviamente quando schiaccio 2 volte il pulsante... è sempre il chierico a essere curato!!! :(

CIAO E GRAZIE....

BY EURO :ph43r:

Cris - September 4, 2006 09:41 AM (GMT)
QUOTE (Euroman @ Sep 3 2006, 05:53 PM)
Ok!! Allora il pannello è il seguente:

PANEL M2_chierico
BUTTON curaferite, "Cura ferite", "Cura ferite ...", onCuraFerite, O

Purtroppo non riesco a curare le ferite degli altri. In pratica anche digitando un altro personaggio il gioco cura sempre il chierico!!! Idem ovviamente quando schiaccio 2 volte il pulsante... è sempre il chierico a essere curato!!! :(

CIAO E GRAZIE....

BY EURO :ph43r:

Ho capito ma occorre determinare se l'errore sta nel javascript client o se sta nel tuo programma.

fai così: setta il debug su file, poco prima di fare cura lo cancelli e poi
prova a fare cura una persona.

Subito dopo chiudi il browser e vai a vedere sul log, incollando qui la chiamata all'evento

onCuraFerite

così ci rendiamo conto se la pesona cliccata è stata passata o no al programma. se c'è è il programma che va corretto, se no, è il client script

Euroman - September 21, 2006 04:02 PM (GMT)
ALLORA L'EVENTO CHE HO SCRITTO E QUESTO QUA:

EVENT onCuraFerite

If $AGENT.PuntiFede >= 10
$OWNER.Resistenza = $OWNER.Resistenza + 10
$AGENT.PuntiFede = $AGENT.PuntiFede - 10
Else
Display "Non ho sufficienti punti fede per curare " + $OWNER.name + "!"
Return False
End_If

END_EVENT

Cosi mi segna errore... come mai??? Ovviamente non funziona neanche onBeviBorraccia!!!

Ciao e grazie by euro :rolleyes:

Cris - September 22, 2006 10:30 AM (GMT)
E' indispensabile che posti il messaggio di errore che ti dà

Ripeto il consiglio: settti il debug su file, cancelli il file di debug, fai l'operazione cura ferite subito dopo, apri il file di debug e incolli qui quello che ci trovi


Euroman - October 4, 2006 10:35 PM (GMT)
QUESTO E' IL MSG DI ERRORE CHE MI RIPORTA IL GIOCO:

The game engine has encountered the following:
ERROR executing script
** Cannot reference property "Resistenza": object is NULL
near line: 813 in file: C:/tomcat/webapps/dimx/WEB-INF/system/commons.dxl
$AGENT.Fede = $AGENT.Fede - 10
$OWNER.Resistenza<-- Error here
Engine version: 6.1.0
Game slot: 2
Game version:
Please report this error to the author of this game () so that it can get fixed.

CIAO BY EURO :lol:

Cris - October 12, 2006 07:34 AM (GMT)
Il sistema ti sta semplicemente dicendo che $OWNER è nullo.

Immagino che per come è il modello "O" (clic sul comando curaferite + clic su persona) ci aspettiamo che dentro $OWNER ci sia la persona che io sto cercando di curare....

per essere certo di quanto succede devi fare quello che ti dicevo e cioè:

1 setti il debug su file,
2 appena prima di fare curaFerite cancelli il log
3 provi a fare curaFerite su una persona.
4 Subito dopo chiudi il browser e
5 vai a vedere sul log,
incollando tutto quello che si legge, specialmente quanto è riguardo alla chiamata all'evento onCuraFerite()

Ad ogni modo l'evento sembra OK.
Per piacere incolla qui anche la definizione del PANEL dove è specificato l'evento onCuraFerite, quello ancora ci manca. Se anche quella è a posto c'è un errorino nel client.script che si sistema in fretta.




Hosted for free by InvisionFree