JeuxOnLineForumsPlusConnectés : 233 (sites) | 436 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > probleme de script RSS
   
Répondre
Partager Outils Rechercher
loran
Roi
 

probleme de script

salut

voila mon problème :
j'aimerai faire apparaitre les pj dans des zones différentes suivant la race du pj (en faite l'idéal serai en fonction de la classe du pj mais je n'y arrive pas

voici mon script modifier a partir d'un trouvé sur le forum, mais il ne marche pas

------------------------------------------------------------------------
void main()
{
object oJoueur = GetEnteringObject ();
int iRaceDuJoueur = GetRacialType (oJoueur);
switch (iRaceDuJoueur)
{
case RACIAL_TYPE_ELF :
location ldepart_nain = GetLocation (GetObjectByTag ("NW_rodeur"));

case RACIAL_TYPE_HUMAN :
location ldepart_nain = GetLocation (GetObjectByTag ("NW_guerrier"));

AssignCommand (oJoueur, ActionJumpToLocation (ldepart_nain));
break;
}
}

------------------------------------------------------------------

si quelqu'un peut m'aider a résoudre ce problème
merci
loran
Lien direct vers le message - Vieux
Avatar de Gadjio
Gadjio
Alpha & Oméga
 
Avatar de Gadjio
 
Quelque chose comme ça, peut-être ?
Code PHP:
void main()
{
  
object oJoueur GetEnteringObject ();
  
int iRaceDuJoueur GetRacialType (oJoueur);
  
location lDepart;
  switch (
iRaceDuJoueur)
  {
    case 
RACIAL_TYPE_ELF :
      
lDepart GetLocation (GetObjectByTag ("NW_rodeur")); break;

    case 
RACIAL_TYPE_HUMAN :
      
lDepart GetLocation (GetObjectByTag ("NW_guerrier")); break;

  }
  
AssignCommand (oJoueurActionJumpToLocation (lDepart));

Pense à utiliser les balises [php] et [/php] autour de tes exemples de scripts quand tu postes, en tout cas, pour que ce soit plus clair.
Lien direct vers le message - Vieux
loran
Roi
 
desole d'insister
salut

merci Gadjio

je ne l'ai pas encore teste mais je crois en étudiant ton script que le problème venait de la commander break, mais pas que

la commande location est exécuté 1 fois

alors la je sens que je vais devenir chiant

pourquoi

si tu as le temps de me répondre merci d'avance, me coucherai moins con

@+
loran
Lien direct vers le message - Vieux
loran
Roi
 
genial
salut

ton script marche formidablement

mais imaginons que je veuille utiliser la commande GetLevelByClass

php :
----------------------------------------------------------------------
void main()
{
object oJoueur = GetEnteringObject ();
int iRaceDuJoueur = GetLevelByClass (oJoueur);
loçation lDepart;
switch (iRaceDuJoueur)
{
çase CLASS_TYPE_RANGER :
lDepart = GetLocation (GetObjectByTag ("NW_rodeur")); break;

case CLASS_TYPE_BARBARIAN :
lDepart = GetLocation (GetObjectByTag ("NW_guerrier")); break;

case CLASS_TYPE_FIGHTER :
lDepart = GetLocation (GetObjectByTag ("NW_guerrier")); break;

}
AssignCommand (oJoueur, ActionJumpToLocation (lDepart));
}

-----------------------------------------------------------------------------

ca me paraissait évident

et pourtant ca déconne

une solution peut être

@+
loran
Lien direct vers le message - Vieux
Avatar de Skanzo Sylan
Skanzo Sylan
Empereur
 
Avatar de Skanzo Sylan
 
Ben en fait Gadjio a légérement amélioré la syntax du script tout en le débuggant
Si on assigne une valeur à une variable sans déclarer le type de variable, on va avoir un script qui compile pô.

Par exemple le truc à pô faire:
Code PHP:
lDepart GetLocation (GetObjectByTag ("NW_rodeur")); 
Il faut préciser le type de variable (int, float, string, location,etc).
Voilà ce qu'il faut faire:
Code PHP:
location lDepart GetLocation (GetObjectByTag ("NW_rodeur")); 
C'est le b-a-ba quoi, là je ne t'apprend rien

Mais le truc le plus intéressant c'est qu'on est pô obligé de déclarer une variable une seconde fois. Ainsi on peut "préparer" la variable. On la déclare en début de script et ensuite on est plus obligé de le faire.

Du genre:
Code PHP:
location lDepart// on déclare sans assigner de valeur.
blabla bla

switch (bidule_machin)
{
blabla
  lDepart 
GetLocation (GetObjectByTag ("NW_rodeur")); // on applique une valeur car on sait déjà que lDepart est une location.
  
break;

Dans le même genre on peut aussi faire:
Code PHP:
    float fRestDuration GetRestDurationBase();
      
fRestDuration += GetCharacterLevelOBJECT_SELF) * GetRestDurationLevel();
      
fRestDuration -= nLevelBonus GetRestDurationLevel();
      
fRestDuration -= fRestBonus;
//    fRestDuration -= fExtraBonus;
//    fRestDuration += fExtraMalus; 
Ou alors pour mettre bout à bout des morceaux de string
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
essaye déjà en remplacant


Code PHP:
loçation lDepart
par
Code PHP:
location lDepart
sinon il a un peu de mal a compiler

Jaha Effect
Lien direct vers le message - Vieux
Avatar de Skanzo Sylan
Skanzo Sylan
Empereur
 
Avatar de Skanzo Sylan
 
loçation

C'est surement l'encre qui a commencé à dégouliner sur le parchemin
Lien direct vers le message - Vieux
loran
Roi
 
bonjour

non ce n'est pas ca le probleme, car dans mon script location est bien ecrit, par contre quand je sauvegarde, il me met en bas :

25/04/2003 09:57:26 : Erreur. 'depart_select' n’est pas compilé.
depart_select.nss(5): ERREUR : DECLARATION DOES NOT MATCH PARAMETERS

oups !

le script est le suivant :

php
------------------------------------------------------------------------------
void main()
{
object oJoueur = GetEnteringObject ();
int iClassDuJoueur = GetLevelByClass (oJoueur);
location lDepart;
switch (iRaceDuJoueur)
{
case CLASS_TYPE_RANGER :
lDepart = GetLocation (GetObjectByTag ("NW_rodeur")); break;

case CLASS_TYPE_BARBARIAN :
lDepart = GetLocation (GetObjectByTag ("NW_guerrier")); break;

case CLASS_TYPE_FIGHTER :
lDepart = GetLocation (GetObjectByTag ("NW_guerrier")); break;

}
AssignCommand (oJoueur, ActionJumpToLocation (lDepart));
}

-------------------------------------------------------------------------

ca vous parait peut être évident, mais pour moi non

merci
@+
loran
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
j'ai repondu dans ton autre post.


Evite de double poster, sinon, je vais devoir être mechant, et j'aime pas ca.
Lien direct vers le message - Vieux
loran
Roi
 
desolé eMRaistlin, mais depuis mon premier post j'ai evolué (enfin il me semble )

en fait je n'avais pas vu la reponse au 1er

je ne recommencerai plus
promis

merci de tout coeur

@+
loran
Lien direct vers le message - Vieux
Avatar de eMRaistlin
eMRaistlin
Alpha & Oméga
 
Avatar de eMRaistlin
 
s'pa grave, tant que c'est sincère

Si on faisait pas d'erreur, ca servirait a rien ^^
Lien direct vers le message - Vieux
Avatar de Gadjio
Gadjio
Alpha & Oméga
 
Avatar de Gadjio
 
Si je peux me permettre, essaie aussi de choisir le titre de tes posts en rapport avec le contenu (aussi précis que possible). Je dis pas ça pour être chiant (c'est le job d'eM, ça... oupssss ), mais juste pour qu'on s'y retrouve un peu Pasque des problèmes de scripts, on en a tous, en fin de compte...

Pour ce que je disais sur les "balises php", tu as juste à remplacer le :
php
------------------------------------------------------------------------------

par [php], avec la balise qui va avec à la fin du code (le [/php]. (Ménon j'insiste pas.. )
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > probleme de script
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 08h12.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite