[Prob] Améliorer un scipt

Répondre
Partager Rechercher
Bonsoir, voilà je voudrai intéger dans mon module le CEP2 Horse.
Pour l'avoir testé avant avec leur module démo, j'y ai trouvé un gros défaut. défaut que je voudrai bien corrigé. je m'explique

J'utilise un item pour créé ma monture, jusque là pas de problème enfin presque. l'item est en usage illimité et si je le réutilise il va me créé autant de chevaux que d'utilisation de l'item. cool pour saturer un serveur quand on veut le planter.

Bon j'ai résolu le problème en le mettant à usage unique.

Maintenant et c'est là ou je sèche c'est quand je descend de cheval.

j'utilise un item un item pour descendre là pas de problème, ensuite je dois utiliser un 3ème item pour renvoyer mon cheval dans l'inventaire.

voici le script de base

Code:
void main()  {    object oPC = GetPCSpeaker();    object oTarget;  oTarget=GetHenchman(oPC);    RemoveHenchman(oPC, oTarget);    DestroyObject(oTarget);    }
et là ce que je voudrai c'est recréé l'item qui au départ me sert pour invoquer le cheval.
J'ai l'idée qu'il me faudra un createitem mais pour la suite ...
Pourquoi tu n'utilises pas une variable locale sur ton perso ? Quand tu crées le cheval, tu check qu'elle est bien à 0, si oui, tu crées le cheval et tu la passe à 1. Quand tu détruits le cheval, tu repasses cette variable à 0.

Pas besoin d'avoir un objet à usage unique.
Bon voilà, j'ai presque résolu mon problème je m'y suis pris d'une autre façon. il ne me reste plus qu'une petite étape

Voilà pour faire simple j'ai créeé un item " carte de propriété qui est remis au pj lors de l'achat de son cheval"

sur cette base j'ai voulu faire un script qui agis comme suit :

Quand le pj renvoi son cheval en utilisant un item ( qui à son propre script voir ci dessous) dans le même temps que celui-ci disparaît, un script fait un teste de la carte de propriété en possession du pj et en fonction de celle-ci crée dans l'inventaire un nouvelle item d'invocation

bon, je dois avoir méchamment planté dans mon script de test, mais bon pour une fois que je me risque au script autant apprendre par mes erreurs.

Voici le script qui renvoi ( détruit) le cheval

Code:
/*   script to remove and destroy henchmen    */    
//Put this on action taken in the conversation editor  
void main()  
{    
object oPC = GetPCSpeaker();    
object oTarget;  oTarget=GetHenchman(oPC);    
RemoveHenchman(oPC, oTarget);    
DestroyObject(oTarget);    
}
Et celui du test que je voudrai y ajouter

Code:
void main() 
 {  
object oPC = GetItemPossessdBy ();    
if (GetItemPossessedBy(oPC, "TitrePropritdunAurenthilHorse")  
{  
oTarget = GetObjectByTag("");  
CreateItemOnObject("SummonHorse8", oTarget);  
}      
else if (GetItemPossessedBy(oPC, "TitrePropritdunBlackHorse")      
{
oTarget = GetObjectByTag("");      
CreateIemOnObject("SummonHorse4", oTarget);      
}          
else if (GetItemPossessedBy(oPC, "TitrePropritdunBrownHorse")
{ 
oTarget = GetObjectByTag("");          
CreateItemOnObject("SummonHorse5"; oTarget);          
}              
else if (GetItemPossessedBy(oPC, "TitrePropritdunBrownPony")              
{              
oTarget = GetObjectByTag("");              
CreateItemOnObject("SummonHorse3", oTarget);              
}                  
else if (GetItemPossessedBy(oPC,"TitrePropritdunNightmare")                
{                  
oTarget = GetObjectByTag("");                  CreateItemOnObject("SummonHorse6", oTarget);                  
}                      
else if (GetItemPossessedBy(oPC,"TitrePropritdunSpottedPony")                      
{                      
oTarget = GetObjectByTag("");                      CreateItemOnObject("SummonHorse2", oTarget);                      
}                          
else if (GetItemPossessedBy(oPC,"TitrePropritdunWhiteHorse")                          
{                          
object oTarget;                         
oTarget = GetObjectByTag("");                        CreateItemOnObject("SummonHorse7",oTarget);                         
}                         
 else                         
 {                        
  oTarget = GetObjectByTag("");                          CreateItemOnObject("SummonHorse", oTarget);                         
 }      
}
Bon là à la compile j'ai un message d'erreur
PARSING VARIABLE LIST en ligne 3
ou la ligne --) object oPC = GetItemPossessdBy ();

Vous me direz que c'est vraiment pas beau certes, mais je quitte mon univers de simple mappeur pour me risquer dans celui des scripteurs.

merci pour votre aide
Tu as oublié de refermer tes parenthèses a la fin de tous tes if

tu dois faire
Code PHP:

if ( fonction(parametre1parametre2) ) {...}
 
//et non pas 
 
if (fonction(parametre1parametre2) {...} 
Bon, je viens de refermer les parenthèse et lors de la compilation j'ai toujours mon erreur.

il me signale toujours ceci

PARSING VARIABLE LIST en ligne 3
ou la ligne --) object oPC = GetItemPossessdBy ();

je voie pas en quoi j'ai mal déclaré ??
Citation :
Publié par Ptitjaco
Bon, je viens de refermer les parenthèse et lors de la compilation j'ai toujours mon erreur.

il me signale toujours ceci

PARSING VARIABLE LIST en ligne 3
ou la ligne --) object oPC = GetItemPossessdBy ();

je voie pas en quoi j'ai mal déclaré ??
Il te manque un "e" à possessed. Tu as écrit GetItemPossessdBy() et non pas GetItemPossessedBy.
Citation :
Publié par Mastokk
Dans son script, le e est présent
T'es sûr ? Parce qu'il n'apparaît pas en ligne 3 de son script sur le tout premier message et le message d'erreur "parsing variable list" apparaît justement quand le compilateur ne reconnaît pas l'instruction.
Bin là je regarde son script, je ne vois aucun e manquant, juste des parenthèses non fermées C'est dans son message suivant qu'il a omis le e, mais je pense que c'est une coquille.
Sur le message du 23/11/2006, 00h14. Deuxième encart de code, ligne 3. Si c'était un problème de parenthèse, on aurait un "ERREUR : NO RIGHT BRACKET ON EXPRESSION". A mon avis, il a dû copier directement ses lignes de code et ce n'est pas une coquille .
Ceci dit, cela n'exclut pas qu'il y ait aussi un problème de parenthèse: a priori, la compilation s'arrête à la première erreur constatée.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés