pb de script

Répondre
Partager Rechercher
bonjour,

j'ai un problème (et oui !
je vous explique le problème j'aimerai suivant le PJ selectionne
(barbare, mago, et rodeur) au debut pouvoir les faire arrivee sur un module bien précis

j'espere que c clair

merci d'avance
@+
loran
oups moi pas comprendre
salut
bon autant vous prévenir tout de suite moi la prog je suis nul :bouffon:

un grand merci a Archamedes_Fr


j'ai trouvé ça :

Ce script permet de placer un Personnage à un point précis, à son entrée dans la zone.
A placer dans le onEnter de la zone.



PHP:--------------------------------------------------------------------------------
void main()
{
object oJoueur = GetEnteringObject ();
int iRaceDuJoueur = GetRacialType (oJoueur);
switch (iRaceDuJoueur)
{
case RACIAL_TYPE_DWARF :
location ldepart_nain = GetLocation (GetObjectByTag ("WP_depart_nain"));
AssignCommand (oJoueur, ActionJumpToLocation (ldepart_nain));
break;
}
}


mais alors la je sèche

que dois je modifier ou ajouter pour prendre en compte non pas la race, mais la classe des PJ

merci d'avance
le retour des questions betes
salut

bon j'ai teste le script tel quel ok

j'ai ensuite remplace GetRacialType par GetLevelByClass
et la c la merde

pas facile de rien y comprendre pourtant j'ai essayé le tuto, mais a un moment je bloque .....

est-ce que quelqu'un a la solution a mon problème



@+
merci
loran
En fait, j'ai reflechi, mais il vaudrait mieux utiliser GetClassByPosition(1,oJoueur).

Et tu compare :
Code PHP:

switch GetClassByPosition(1,oJoueur)
{
case 
CLASS_TYPE_* :
AssignCommand(oJoueur,ActionJumpToObject(GetWaypointByTag("TAG"));

a la place du GetRacialType.
et oui je suis le boulet de la semaine
j'ai essayé mais la c'est la cata
bon en 1er une question il ne manque pas une ) a la commande assign ?
ou dois je inserer ces lignes dans mon script

PHP:
--------------------------------------------------------------------------------
switch GetClassByPosition(1,oJoueur)
{
case CLASS_TYPE_* :
AssignCommand(oJoueur,ActionJumpToObject(GetWaypointByTag("TAG"));
}

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

ps pour eMRaistlin c'etait sincere

desolé d'etre si inculte, mais j'ai deja realisé 80 pour 100 des maps, 75 des dialogues, et, ayant fait de la prog il y a longtemps (sur Amiga) je m'etais dit :bouffon: ce jeu est terrible et ca sera facile

ps2 j'ai pas pigé l'histoire du PHP
quelle misère ces debutant

merci
@+
loran
Unhappy
bon j'ai bosse comme un diable et le resultat se compil, mais a chaque execution c'est le 1er tag qui gagne, et ce quelque soit la class du PJ. Car l'effet demandé c'est suivant la class lui attribuer un tag

Code PHP:

void main()
{
  
object oJoueur GetEnteringObject ();
  
int iClassPJ GetClassByPosition(1,oJoueur);
  
location lDepart;
  {
  if(
iClassPJ == CLASS_TYPE_RANGER)
    
lDepart GetLocation (GetObjectByTag ("NW_rodeur"));
  else
    if (
iClassPJ == (CLASS_TYPE_BARBARIAN || CLASS_TYPE_FIGHTER))
        
lDepart GetLocation (GetObjectByTag ("NW_guerrier"));
    else
        if (
CLASS_TYPE_BARD || CLASS_TYPE_CLERIC || CLASS_TYPE_SORCERER || CLASS_TYPE_WIZARD)
            
lDepart GetLocation (GetObjectByTag ("NW_mago"));
        else
            
lDepart GetLocation (GetObjectByTag ("NW_defaut"));

  }
  
AssignCommand (oJoueurActionJumpToLocation (lDepart));

si quelqu'un peut m'aider c'est avec plaisir

merci
@+
loran
j'espère que ça va aider, j'ai rajouter des fonction que je crois nécessaire j'ai mis des commentaires

Code PHP:

void main()
{
    
object oJoueur GetEnteringObject ();
    if(
GetIsPC(oJoueur))// Pour etre sur que c'est pas une monstre ou autre
    
{
        
int iClassPJ GetClassByPosition(1,oJoueur);
        
location lDepart;
        if(
iClassPJ == CLASS_TYPE_RANGER)
        {
            
// ça c'est ce qu'il voulais dire pour essaye de rajouter des {}
            //sur tes if, pour etre sur de controler leurs effets...
            //dans ton cas ça servait à rien mais ça fait une programmation plus propre
            
lDepart GetLocation (GetObjectByTag ("NW_rodeur"));
        }else{
            
//if (iClassPJ == (CLASS_TYPE_BARBARIAN || CLASS_TYPE_FIGHTER))//erreur tu dois ecrire ecrire
            
if (iClassPJ == CLASS_TYPE_BARBARIAN || iClassPJ == CLASS_TYPE_FIGHTER)
            {
                
lDepart GetLocation (GetObjectByTag ("NW_guerrier"));
            }else{
                
//if (CLASS_TYPE_BARD || CLASS_TYPE_CLERIC || CLASS_TYPE_SORCERER || CLASS_TYPE_WIZARD) //  erreur tu dois ecrire ecrire
                
if (iClassPJ == CLASS_TYPE_BARD || iClassPJ == CLASS_TYPE_CLERIC || iClassPJ == CLASS_TYPE_SORCERER || iClassPJ == CLASS_TYPE_WIZARD)
                {
                    
lDepart GetLocation (GetObjectByTag ("NW_mago"));
                }else{
                    
lDepart GetLocation (GetObjectByTag ("NW_defaut"));
                }

            }
        }
        
AssignCommand (oJoueurActionJumpToLocation (lDepart));
    }

je l'ai testé et ça marche...

le code est pas super bien fait mais il est fonctionnel c'est l'important pour commencer...
__________________
Florynth ... bientôt un monde sera miens...
Le même code mais en mieux
j'espère que ça va t'aider

Code PHP:

void main()
{
    
object oJoueur GetEnteringObject ();
    if(
GetIsPC(oJoueur))// Pour etre sur que c'est pas une monstre ou autre
    
{
        
int iClassPJ GetClassByPosition(1,oJoueur);
        
location lDepart;

        switch(
iClassPJ)
        {
            case 
CLASS_TYPE_RANGER :
                                    
lDepart GetLocation (GetObjectByTag ("NW_rodeur"));
                                    break;
            case 
CLASS_TYPE_BARBARIAN :
            case 
CLASS_TYPE_FIGHTER :
                                    
lDepart GetLocation (GetObjectByTag ("NW_guerrier"));
                                    break;
            case 
CLASS_TYPE_BARD :
            case 
CLASS_TYPE_CLERIC :
            case 
CLASS_TYPE_SORCERER :
            case 
CLASS_TYPE_WIZARD :
                                    
lDepart GetLocation (GetObjectByTag ("NW_mago"));
                                    break;
            default :          
lDepart GetLocation (GetObjectByTag ("NW_defaut"));
                                    break;
        }
        
AssignCommand (oJoueurActionJumpToLocation (lDepart));
    }

merci Florynth

un grand merci pour tes explications qui me sont, tu t'en doute bien utiles

et que dire pour ton script

il est vrai que je débute et ton aide me fait bien avancer

@+
loran
Répondre

Connectés sur ce fil

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