[Script] Spawn selon la race et l'allignement

Répondre
Partager Rechercher
Script proposé par Shyehiem Azielm !
Citation :
Code PHP:

void main()
{


 
object oPc;
 
int iRace;
 
int iAlignementGoodEvil;
 
int iAlignementLawChaos;
 
location lSpawnEvil;
 
location lSpawnGood;


 
oPc GetEnteringObject();
 
iRace GetRacialType(oPc);
 
iAlignementGoodEvil GetAlignmentGoodEvil(oPc);
 
iAlignementLawChaos GetAlignmentLawChaos(oPc);

 switch (
iRace)
  {
   case 
RACIAL_TYPE_DWARF:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodDwarf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodDwarf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodDwarf_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralDwarf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralDwarf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralDwarf_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilDwarf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilDwarf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilDwarf_WP")));
          break;
         }
      }
   case 
RACIAL_TYPE_ELF:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodElf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodElf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodElf_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralElf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralElf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralElf_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilElf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilElf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilElf_WP")));
          break;
         }
      }
   case 
RACIAL_TYPE_GNOME:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodGnome_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodGnome_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodGnome_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralGnome_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralGnome_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralGnome_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilGnome_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilGnome_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilGnome_WP")));
          break;
         }
      }
   case 
RACIAL_TYPE_HALFELF:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodHalfElf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodHalfElf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodHalfElf_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralHalfElf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralHalfElf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralHalfElf_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilHalfElf_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilHalfElf_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilHalfElf_WP")));
          break;
         }
      }
   case 
RACIAL_TYPE_HALFLING:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodHalfling_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodHalfling_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodHalfling_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralHalfling_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralHalfling_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralHalfling_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilHalfling_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilHalfling_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilHalfling_WP")));
          break;
         }
      }
   case 
RACIAL_TYPE_HALFORC:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodHalfOrc_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodHalfOrc_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodHalfOrc_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralHalfOrc_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralHalfOrc_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralHalfOrc_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilHalfOrc_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilHalfOrc_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilHalfOrc_WP")));
          break;
         }
      }
   case 
RACIAL_TYPE_HUMAN:
    switch (
iAlignementGoodEvil)
      {
       case 
ALIGNMENT_GOOD:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulGoodHumain_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralGoodHumain_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticGoodHumain_WP")));
          break;
         }
       case 
ALIGNMENT_NEUTRAL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulNeutralHumain_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralNeutralHumain_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticNeutralHumain_WP")));
          break;
         }
       case 
ALIGNMENT_EVIL:
        switch (
iAlignementLawChaos)
         {
          case 
ALIGNMENT_LAWFUL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnLawfulEvilHumain_WP")));
          break;
          case 
ALIGNMENT_NEUTRAL:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnNeutralEvilHumain_WP")));
          break;
          case 
ALIGNMENT_CHAOTIC:
           
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_SpawnChaoticEvilHumain_WP")));
          break;
         }
      }
  }



Le même en plus simple
Script revu par Hécate !
Citation :
Code PHP:

void main()
{
 
object oPc;
 
int iRace;
 
int iAlignementGoodEvil;
 
int iAlignementLawChaos;
 
string sRace;
 
string sGoodEvil;
 
string sLawChaos;
 
string sTagDest// string du tag reconstitué

 
oPc GetEnteringObject();
 
iRace GetRacialType(oPc);
 
iAlignementGoodEvil GetAlignmentGoodEvil(oPc);
 
iAlignementLawChaos GetAlignmentLawChaos(oPc);

 switch (
iRace)
  {
   case 
RACIAL_TYPE_DWARF:    sRace "Dwarf"; break;
   case 
RACIAL_TYPE_ELF:    sRace "Elf"; break;
   case 
RACIAL_TYPE_GNOME:    sRace "Gnome"; break;
   case 
RACIAL_TYPE_HALFELF:    sRace "HalfElf"; break;
   case 
RACIAL_TYPE_HALFLING:    sRace "Halfling"; break;
   case 
RACIAL_TYPE_HALFORC:    sRace "HalfOrc"; break;
   case 
RACIAL_TYPE_HUMAN:    sRace "Human"; break;
   default :             
sRace "Default"; break;
  }
 switch (
iAlignementGoodEvil)
  {
   case 
ALIGNMENT_GOOD:        sGoodEvil "Good"; break;
   case 
ALIGNMENT_NEUTRAL:    sGoodEvil "Neutral"; break;
   case 
ALIGNMENT_EVIL:        sGoodEvil "Evil"; break;
   default :             
sGoodEvil "Default"; break;
  }
 switch (
iAlignementLawChaos)
  {
   case 
ALIGNMENT_LAWFUL:    sLawChaos "Lawful"; break;
   case 
ALIGNMENT_NEUTRAL:    sLawChaos "Neutral"; break;
   case 
ALIGNMENT_CHAOTIC:    sLawChaos "Chaotic"; break;
   default :             
sLawChaos "Default"; break;
  }

 
sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP";
 
AssignCommand(oPcActionJumpToObject(GetObjectByTag(sTagDest)));

il est possible de créé des races en dehors des regles add gràce à l'option ethnie... des cheveux blanc en pic, une peau noir et hop un dark elf d'apparence...

j'ai donc créé un Dark elf et j'aimerai l'ajouter a la base de donné de façon à ce qu'il sois reconnu comme un TYPE_RACIAL_DROW de façon qu'il soit spawné ds une cité drow... a moin que la constante existe dejà sous un autre nom...


il est donc important qu'il soit reconnu en tant que tel...


j'ai essayé de modofier la base de donnée DA mais rien n'y fait

quelqu'un pourrait il m'aider?
ah oui, une autre question? quel est le mot en anglais utiliser ds le jeu pour "ethnie" a la création des perso?
Citation :
Provient du message de Jedaï
GetSubRace(object oCreature); te retourne l'ethnie donc tu peux l'utiliser pour envoyer où tu veux à l'arrivée dans le module.

PHP:--------------------------------------------------------------------------------
void main()
{
object oPc;
int iRace;
int iAlignementGoodEvil;
int iAlignementLawChaos;
int iethnie;
String sethnie;
string sRace;
string sGoodEvil;
string sLawChaos;
string sTagDest; // string du tag reconstitué

oPc = GetEnteringObject();
iRace = GetRacialType(oPc);
iethnie = GetSubRace(object oCreature);
iAlignementGoodEvil = GetAlignmentGoodEvil(oPc);
iAlignementLawChaos = GetAlignmentLawChaos(oPc);

switch (iRace)
{
case RACIAL_TYPE_DWARF: sRace = "Dwarf"; break;
case RACIAL_TYPE_ELF: sRace = "Elf"; break;
case RACIAL_TYPE_GNOME: sRace = "Gnome"; break;
case RACIAL_TYPE_HALFELF: sRace = "HalfElf"; break;
case RACIAL_TYPE_HALFLING: sRace = "Halfling"; break;
case RACIAL_TYPE_HALFORC: sRace = "HalfOrc"; break;
case RACIAL_TYPE_HUMAN: sRace = "Human"; break;
default : sRace = "Default"; break;
}

switch (iethnie)
{
case RACIAL_TYPE_DARkELF: sethnie = "Darkelf"; break;
case RACIAL_TYPE_vampire: sethnie = "vampire"; break;

default : sethnie = "Default"; break;
}






switch (iAlignementGoodEvil)
{
case ALIGNMENT_GOOD: sGoodEvil = "Good"; break;
case ALIGNMENT_NEUTRAL: sGoodEvil = "Neutral"; break;
case ALIGNMENT_EVIL: sGoodEvil = "Evil"; break;
default : sGoodEvil = "Default"; break;
}
switch (iAlignementLawChaos)
{
case ALIGNMENT_LAWFUL: sLawChaos = "Lawful"; break;
case ALIGNMENT_NEUTRAL: sLawChaos = "Neutral"; break;
case ALIGNMENT_CHAOTIC: sLawChaos = "Chaotic"; break;
default : sLawChaos = "Default"; break;
}

sTagDest = "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP";
AssignCommand(oPc, ActionJumpToObject(GetObjectByTag(sTagDest)));
}

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


et ça donnerai un truc du genre? ( 3ime jour de programation )

ah oui, le script d'origine ne marche pas, je n'arrive pas a me teleporter! j'ai passé de 21h a 2h00 du matin encore hier

j'ai vraiment besoin d'aide là
Script revu par Hécate ne marche pas et celui de depart aussi...

on fait quoi avec ce script exactement?! y a que ça a faire? copier coller le script au bonne endroit et mettre les portails?

ça marche pas du tout
Si, bien sûr que ça marche ! fais un meuble de tag "TDM_SpawnLawfulGoodElf_WP" puis mets le deuxième script dans le OnClientEnter du module et rentre dans ton module avec un elfe loyal bon, et tu verras que ça marche.
(pas ton script par contre, mais bon....)
le probleme, déjà, c'est que ton script est pas entre balise
donc tu met un [*php] devant et un [*/php] derrière, sans les étoiles
ensuite,
Code PHP:

// Get the name of oCreature's sub race.
// * Returns "" if oCreature is invalid (or if sub race is blank for oCreature).
string GetSubRace(object oTarget
autrement dit, ca renvoi une string, donc pas de switch :-/
A moins ! et oui, à moins de faire qq chose du style (mais avant) :
Code PHP:

string sRace;
//premier switch, celui sur les race
sSubrace GetSubRace(oPC);//oPC recupere come tu veux
if((sSubRace == "Vampire") || (sSubRace == "vampire") )//rq que tu peu prévoir deux ou trois orthographe (sans le dire à tes joueur ;) ) des fois que y aurait des boulets ^_^
sRace "Vampire";
if(
sSubRace == "Chausette" )
sRace "Chausette";

etc
ou mieux :
Code PHP:

sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+GetSubRace(oPC)+"_WP";
object oWP GetObjectByTag(sTagDest);
if(
GetIsValidObject(oWP))
AssignCommand(oPcActionJumpToObject(oWP));
else
AssignCommand(oPcActionJumpToObject(GetObjectByTag(sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP";
)));
//g tt mis en une ligne, flemme powa ^_^ 
bon, c pas testé hein, donc bon, ca vaut ce que ca vaut, mais ca peut te donner des idées
d'apres ce que tu m'as mis ça donne un truc du genre....

Code PHP:


 
switch (iRace)
  {
   case 
RACIAL_TYPE_DWARF:    sRace "Dwarf"; break;
   case 
RACIAL_TYPE_ELF:    sRace "Elf"; break;
   case 
RACIAL_TYPE_GNOME:    sRace "Gnome"; break;
   case 
RACIAL_TYPE_HALFELF:    sRace "HalfElf"; break;
   case 
RACIAL_TYPE_HALFLING:    sRace "Halfling"; break;
   case 
RACIAL_TYPE_HALFORC:    sRace "HalfOrc"; break;
   case 
RACIAL_TYPE_HUMAN:    sRace "Human"; break;
   default :             
sRace "Default"; break;
   
   
sSubrace GetSubRace(oPC);                              //oPC recupere come tu veux
   
if((sSubRace == "Vampire") || (sSubRace == "vampire") )  //rq que tu peu prévoir deux ou trois orthographe (sans le dire à tes joueur <img src="ubb/wink.gif" border="0" alt=""> ) des fois que y aurait des boulets ^_^
   
sRace "Vampire";
   if(
sSubRace == "Darkelf" ) || (sSubRace == "darkelf" )
   
sRace "Darkelf";
   if(
sSubRace == "Drow" ) || (sSubRace == "drow" )
   
sRace "Darkelf";
  }
 
 switch (
iAlignementGoodEvil)
  {
   case 
ALIGNMENT_GOOD:        sGoodEvil "Good"; break;
   case 
ALIGNMENT_NEUTRAL:    sGoodEvil "Neutral"; break;
   case 
ALIGNMENT_EVIL:        sGoodEvil "Evil"; break;
   default :             
sGoodEvil "Default"; break;
  }

 switch (
iAlignementLawChaos)
  {
   case 
ALIGNMENT_LAWFUL:    sLawChaos "Lawful"; break;
   case 
ALIGNMENT_NEUTRAL:    sLawChaos "Neutral"; break;
   case 
ALIGNMENT_CHAOTIC:    sLawChaos "Chaotic"; break;
   default :             
sLawChaos "Default"; break;
  }

sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+GetSubRace(oPC)+"_WP";
object oWP GetObjectByTag(sTagDest);
if(
GetIsValidObject(oWP))
AssignCommand(oPcActionJumpToObject(oWP));
else
AssignCommand(oPcActionJumpToObject(GetObjectByTag(sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP";
)));





j'en ai oublié le debut! voilà c mieu comme ça!

Code PHP:


void main
()
{
 
object oPc;
 
int iRace;
 
int iAlignementGoodEvil;
 
int iAlignementLawChaos;
 
string sRace;
 
string sGoodEvil;
 
string sLawChaos;
 
string sTagDest// string du tag reconstitué

 
oPc GetEnteringObject();
 
iRace GetRacialType(oPc);
 
iAlignementGoodEvil GetAlignmentGoodEvil(oPc);
 
iAlignementLawChaos GetAlignmentLawChaos(oPc);

switch (
iRace)
  {
   case 
RACIAL_TYPE_DWARF:    sRace "Dwarf"; break;
   case 
RACIAL_TYPE_ELF:    sRace "Elf"; break;
   case 
RACIAL_TYPE_GNOME:    sRace "Gnome"; break;
   case 
RACIAL_TYPE_HALFELF:    sRace "HalfElf"; break;
   case 
RACIAL_TYPE_HALFLING:    sRace "Halfling"; break;
   case 
RACIAL_TYPE_HALFORC:    sRace "HalfOrc"; break;
   case 
RACIAL_TYPE_HUMAN:    sRace "Human"; break;
   default :             
sRace "Default"; break;
   
   
sSubrace GetSubRace(oPC);                              //oPC recupere come tu veux
   
if((sSubRace == "Vampire") || (sSubRace == "vampire") )  //rq que tu peu prévoir deux ou trois orthographe (sans le dire à tes joueur <img src="ubb/wink.gif" border="0" alt=""> ) des fois que y aurait des boulets ^_^
   
sRace "Vampire";
   if(
sSubRace == "Darkelf" ) || (sSubRace == "darkelf" )
   
sRace "Darkelf";
   if(
sSubRace == "Drow" ) || (sSubRace == "drow" )
   
sRace "Darkelf";
  }
 
 switch (
iAlignementGoodEvil)
  {
   case 
ALIGNMENT_GOOD:        sGoodEvil "Good"; break;
   case 
ALIGNMENT_NEUTRAL:    sGoodEvil "Neutral"; break;
   case 
ALIGNMENT_EVIL:        sGoodEvil "Evil"; break;
   default :             
sGoodEvil "Default"; break;
  }

 switch (
iAlignementLawChaos)
  {
   case 
ALIGNMENT_LAWFUL:    sLawChaos "Lawful"; break;
   case 
ALIGNMENT_NEUTRAL:    sLawChaos "Neutral"; break;
   case 
ALIGNMENT_CHAOTIC:    sLawChaos "Chaotic"; break;
   default :             
sLawChaos "Default"; break;
  }

sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+GetSubRace(oPC)+"_WP";
object oWP GetObjectByTag(sTagDest);
if(
GetIsValidObject(oWP))
AssignCommand(oPcActionJumpToObject(oWP));
else
AssignCommand(oPcActionJumpToObject(GetObjectByTag(sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP";
)));


c vrai que c mieu avec
g dis ca ? moi
bon, alors :
un switch ca passe des chiffre, ca saute de 1 a 2 a 3 etc. et quand ca arrive à la valeur testé, ca fait stop, ca lit le code et s'arrête au premier "break;" rencontré.
donc le switch la il marchera jamais
et je t'ai donné deux solution en fait, une tt bête, faire un espèce de switch (sauf que c pas des nombres, donc c pas possible, donc on fait des "if else" c moins beau et tt mais bon . . .) mais à cté de l'autre, et une autre, plus simple, que tu colle à la fin. je te met cette dernière, plus mieux :
Code PHP:

void main()
{
 
object oPc;
 
int iRace;
 
int iAlignementGoodEvil;
 
int iAlignementLawChaos;
 
string sRace;
 
string sGoodEvil;
 
string sLawChaos;
 
string sTagDest// string du tag reconstitué

 
oPc GetEnteringObject();
 
iRace GetRacialType(oPc);
 
iAlignementGoodEvil GetAlignmentGoodEvil(oPc);
 
iAlignementLawChaos GetAlignmentLawChaos(oPc);

 switch (
iRace)
  {
   case 
RACIAL_TYPE_DWARF:    sRace "Dwarf"; break;
   case 
RACIAL_TYPE_ELF:    sRace "Elf"; break;
   case 
RACIAL_TYPE_GNOME:    sRace "Gnome"; break;
   case 
RACIAL_TYPE_HALFELF:    sRace "HalfElf"; break;
   case 
RACIAL_TYPE_HALFLING:    sRace "Halfling"; break;
   case 
RACIAL_TYPE_HALFORC:    sRace "HalfOrc"; break;
   case 
RACIAL_TYPE_HUMAN:    sRace "Human"; break;
   default :             
sRace "Default"; break;
  }
 switch (
iAlignementGoodEvil)
  {
   case 
ALIGNMENT_GOOD:        sGoodEvil "Good"; break;
   case 
ALIGNMENT_NEUTRAL:    sGoodEvil "Neutral"; break;
   case 
ALIGNMENT_EVIL:        sGoodEvil "Evil"; break;
   default :             
sGoodEvil "Default"; break;
  }
 switch (
iAlignementLawChaos)
  {
   case 
ALIGNMENT_LAWFUL:    sLawChaos "Lawful"; break;
   case 
ALIGNMENT_NEUTRAL:    sLawChaos "Neutral"; break;
   case 
ALIGNMENT_CHAOTIC:    sLawChaos "Chaotic"; break;
   default :             
sLawChaos "Default"; break;
  }
//-------- jusque là le script est pas changé

//alors là, on fait un "tag de waypoint" avec la subrace, plutot que la race, et si c pas un objet valid qu'on recupère, ba pn y saute pas ^_^
sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+GetSubRace(oPc)+"_WP";
object oWP GetObjectByTag(sTagDest);
if(
GetIsObjectValid(oWP))
AssignCommand(oPcActionJumpToObject(oWP));
else
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP")));//g tt mis en une ligne, flemme powa ^_^

donc, il doit exister sur ton module des waypoint (ou des objets) avec un tag du style :

TDM_SpawnLawfulEvilElf_WP
TDM_SpawnLawfulEvilHuman_WP

etc. ( cf le script pour les ortographe précise)

ET
TDM_SpawnLawfulEvilDrow_WP ou Drow est le nom EXACT entre en subrace
TDM_SpawnLawfulEvilVampire_WP idem

donc tu peu faire des tests avant pour t'assurer que tes gars ont entré la bonne ortographe, mais bon . . .

je pense que la c bon . . .

edit : oulla, grosse bourde lol

redit : corrigééé !!
bah c ce que je disais plus haut, leur script de base ne marche pas... je prend un guerrier loyal bon et il me met en default default default...

et meme si je créé un portail "default " , la teleportation ne se passe pas

si j'avais dejà un script a la base ou j'ai juste besoin de copier coller et qui marche ça serait dejà bien...

j'ai testé avec 5 teleporteurs aucun ne marches
Code PHP:


void main
()
{
 
object oPc;
 
int iRace;
 
int iAlignementGoodEvil;
 
int iAlignementLawChaos;



 
string sRace;
 
string sGoodEvil;
 
string sLawChaos;
 
string sTagDest// string du tag reconstitué

 
oPc GetEnteringObject();
 
iRace GetRacialType(oPc);
 
iAlignementGoodEvil GetAlignmentGoodEvil(oPc);
 
iAlignementLawChaos GetAlignmentLawChaos(oPc);

 
//switch (iRace)
  //{
   //case RACIAL_TYPE_DWARF:    sRace = "Dwarf"; break;
   //case RACIAL_TYPE_ELF:    sRace = "Elf"; break;
   //case RACIAL_TYPE_GNOME:    sRace = "Gnome"; break;
   //case RACIAL_TYPE_HALFELF:    sRace = "HalfElf"; break;
   //case RACIAL_TYPE_HALFLING:    sRace = "Halfling"; break;
   //case RACIAL_TYPE_HALFORC:    sRace = "HalfOrc"; break;
   //case RACIAL_TYPE_HUMAN:    sRace = "Human"; break;
   //case RACIAL_TYPE_OUTSIDER: sRace = "darkelf"; break;
   //default :             sRace = "Default"; break;
  //}
 //switch (iAlignementGoodEvil)
  //{
   //case ALIGNMENT_GOOD:        sGoodEvil = "Good"; break;
   //case ALIGNMENT_NEUTRAL:    sGoodEvil = "Neutral"; break;
   //case ALIGNMENT_EVIL:        sGoodEvil = "Evil"; break;
   //default :             sGoodEvil = "Default"; break;
  //}
 
switch (iAlignementLawChaos)
  {
   case 
ALIGNMENT_LAWFUL:    sLawChaos "Lawful"; break;
   case 
ALIGNMENT_NEUTRAL:    sLawChaos "Neutral"; break;
   case 
ALIGNMENT_CHAOTIC:    sLawChaos "Chaotic"; break;
   default :             
sLawChaos "Default"; break;
  }

 
//sTagDest = "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP";
 
sTagDest "TDM_Spawn"+sLawChaos+"wp";
 
AssignCommand(oPcActionJumpToObject(GetObjectByTag(sTagDest)));

ActionSpeakString("TDM_Spawn"+sLawChaos+"wp");
ActionWait(5.0);


voici comment j'aisimplifier le script, j'ai ajouté un speakstring que lorsque je clique sur le portail mon tag s'affiche..

je suis pas sur de ça fonctionnalité mais il m'affiche tjs TDM_SpawnDefaultwp

donc j'ai taggé un portail par default avec cette valeur "TDM_SpawnDefaultwp", et la teleportation ne se fait tjs pas... y a un beans quelque part
compile pas déjà . . . tu compile tes scripts ?
bon, deux correction tt bête compilation et test et . . . ca marche
vérifie tes tags :-/
je corrige le script au dessus, deux secondes ^_^
donc, déjà ton script, c vraiment bizarre qu'il te renvoi default . . .
ensuite, en haut à gauche de l'éditeur de script, t'as un pitit bouton, qui ressemble vaguement à un écran (si si) et ben c par la qu'il faut sauvegarder . . . et tu met ce script ds le onenter du module

et il marche, donc au pire ca peut venir que du recopiage ou des tags
enfin, g testé avec un humain loyal mauvais et un humain lotayl mauvais avec l'ethnie "Vampire" et ca marchait ds les deux cas (l'un allait sur
TDM_SpawnLawfulEvilHuman_WP
et l'autre sur
TDM_SpawnLawfulEvilVampire_WP
onenter du module? ça veux dir que je vais apparaitre directement sur le portail en fonction de mon tag?


ça marche tjs pas... y a rien a faire.


moi j'ai un module avec une zone

ds cette zone j'ai 2 portails, un sur lequel je pensais mettre le script sur onused.

et un autre avec un tag " TDM_SpawnLawfulGoodHumain_WP"

je prend un humain loyal bon ma teleportation ne se fait pas...

j'ai bien attention au majuscules ça veux rien savoir!
Citation :
Provient du message de Reyan
donc, déjà ton script, c vraiment bizarre qu'il te renvoi default . . .
ensuite, en haut à gauche de l'éditeur de script, t'as un pitit bouton, qui ressemble vaguement à un écran (si si) et ben c par la qu'il faut sauvegarder . . . et tu met ce script ds le onenter du module

et il marche, donc au pire ca peut venir que du recopiage ou des tags
enfin, g testé avec un humain loyal mauvais et un humain lotayl mauvais avec l'ethnie "Vampire" et ca marchait ds les deux cas (l'un allait sur
TDM_SpawnLawfulEvilHuman_WP
et l'autre sur
TDM_SpawnLawfulEvilVampire_WP
mon script ne me renvoie pas de default! il se compile bien normalement... j'ai juste ajouter une ligne avec speakstring
Code PHP:

ActionSpeakString("TDM_Spawn"+sLawChaos+"_wp");
ActionWait(5.0); 
et là, qd je veux utiliser le portail dejà, je ne me teleporte pas et 2 il m'indique TDM_SpawnDefault_wp... donc j'ai l'impression qu il y a un bug sur la detection de l'alignement...

moi j'ai copier le script ds onused du portail...

y a portail, portail serveur et portail de rappel.. je peux utiliser n'importe lesquels?


arggg ça me */=+\
bon, j'y suis... ça pouvais pas marcher car on ne parler pas de la meme chose....


pour que ça marche... on doit créé plusieurs zones avec les objets avec les tag qui correspond a l'alignement etc...



moi ce que j'essayai de faire, c'etait d'utiliser un portail pour etre teleporter a un autre sur la meme zone...


ça n'arrange pas mon affaire... car voilà mon truc...


les joueurs vont arrivé sur une zone ou ils vont parler un personnage (acceuil)... ce personnage met le journal à jour, les regles du module, quels sont les races ethnies reconnu etc...

une fois fait, un portail leur est accéssible et seulement là, il spawn en fonction de leur alignement....

tu peux m'aider a faire ce script là?

s'il te plait
bon, voilà plus en detail ce qui a dejà été dis

1- Créez un module avec 2 zones... zone1 et zone2.

2- copiez le script ds Onenter de la zone principal, celle ou vous avez mis votre point depart.

3- Ensuite, créez des objets avec un tag recomposé "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP" ...
Ce qui nous donne "TDM_Spawnlawfulgoodhuman_WP" par exemple ds la zone 1.
et "TDM_Spawnlawfulevilhuman_WP" ds la zone2.


4- Pour finir, créez 2 personnages différent loyal bon humain et loyal mauvais humain puis testez...

Conclusion:
Dans un premier cas vous apparaissez ds la zone1 et ds le deuxieme ds la zone 2


Code PHP:



void main
()
{
 
object oPc;
 
int iRace;
 
int iAlignementGoodEvil;
 
int iAlignementLawChaos;
 
string sRace;
 
string sGoodEvil;
 
string sLawChaos;
 
string sTagDest// string du tag reconstitué

 
oPc GetEnteringObject();
 
iRace GetRacialType(oPc);
 
iAlignementGoodEvil GetAlignmentGoodEvil(oPc);
 
iAlignementLawChaos GetAlignmentLawChaos(oPc);

 switch (
iRace)
  {
   case 
RACIAL_TYPE_DWARF:    sRace "Dwarf"; break;
   case 
RACIAL_TYPE_ELF:    sRace "Elf"; break;
   case 
RACIAL_TYPE_GNOME:    sRace "Gnome"; break;
   case 
RACIAL_TYPE_HALFELF:    sRace "HalfElf"; break;
   case 
RACIAL_TYPE_HALFLING:    sRace "Halfling"; break;
   case 
RACIAL_TYPE_HALFORC:    sRace "HalfOrc"; break;
   case 
RACIAL_TYPE_HUMAN:    sRace "Human"; break;
   default :             
sRace "Default"; break;
  }
 switch (
iAlignementGoodEvil)
  {
   case 
ALIGNMENT_GOOD:        sGoodEvil "Good"; break;
   case 
ALIGNMENT_NEUTRAL:    sGoodEvil "Neutral"; break;
   case 
ALIGNMENT_EVIL:        sGoodEvil "Evil"; break;
   default :             
sGoodEvil "Default"; break;
  }
 switch (
iAlignementLawChaos)
  {
   case 
ALIGNMENT_LAWFUL:    sLawChaos "Lawful"; break;
   case 
ALIGNMENT_NEUTRAL:    sLawChaos "Neutral"; break;
   case 
ALIGNMENT_CHAOTIC:    sLawChaos "Chaotic"; break;
   default :             
sLawChaos "Default"; break;
  }
//-------- jusque là le script est pas changé

//alors là, on fait un "tag de waypoint" avec la subrace, plutot que la race, et si c pas un objet valid qu'on recupère, ba pn y saute pas ^_^
sTagDest "TDM_Spawn"+sLawChaos+sGoodEvil+GetSubRace(oPc)+"_WP";
object oWP GetObjectByTag(sTagDest);
if(
GetIsObjectValid(oWP))
AssignCommand(oPcActionJumpToObject(oWP));
else
AssignCommand(oPcActionJumpToObject(GetObjectByTag("TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP")));//g tt mis en une ligne, flemme powa ^_^


c'est plus détaillé et au moin ça evitera les confusions...
Citation :
Provient du message de sojkowski
[B] 3- Ensuite, créez des objets avec un tag recomposé "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP" ...
Ce qui nous donne "TDM_Spawnlawfulgoodhuman_WP" par exemple ds la zone 1.
et "TDM_Spawnlawfulevilhuman_WP" ds la zone2.
majuscules

3- Ensuite, créez des objets avec un tag recomposé "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP" ...
Ce qui nous donne "TDM_SpawnLawfulGoodHuman_WP" par exemple ds la zone 1.
et "TDM_SpawnLawfulEvilHuman_WP" ds la zone2.


et si il est obligatoire de mettre ce script dans le onenter de la zone avec le pt de départ pour spawner à différents endroits, il n'est pas nécessaire que ces endroits (là où l'on a posé les Wp)csoit dans une autre zone, peuvent être n'importe où dans le module . . .


ensuite :
en fait ce script ne "spawn" pas à un endroit précis, il t'y téléporte, mais si c dans le onenter, ba tu y est téléporté tout de suite
donc, si tu le met dans le onused d'un portal (par exemple) en remplacant
Code PHP:

oPc GetEnteringObject(); 

par :
Code PHP:

oPc GetLastUsedBy(); 

c'est le dernier utilisateur qui seras transporté. donc tu met ca ds le onused du portail et roulez
tu peu même faire un test au début pour vérifier qu'ils ont bien recu les instruction avant d'être transporté, mais bon ca après c du fignolage
Citation :
Provient du message de Reyan
majuscules

3- Ensuite, créez des objets avec un tag recomposé "TDM_Spawn"+sLawChaos+sGoodEvil+sRace+"_WP" ...
Ce qui nous donne "TDM_SpawnLawfulGoodHuman_WP" par exemple ds la zone 1.
et "TDM_SpawnLawfulEvilHuman_WP" ds la zone2.


et si il est obligatoire de mettre ce script dans le onenter de la zone avec le pt de départ pour spawner à différents endroits, il n'est pas nécessaire que ces endroits (là où l'on a posé les Wp)csoit dans une autre zone, peuvent être n'importe où dans le module . . .


ensuite :
en fait ce script ne "spawn" pas à un endroit précis, il t'y téléporte, mais si c dans le onenter, ba tu y est téléporté tout de suite
donc, si tu le met dans le onused d'un portal (par exemple) en remplacant
Code PHP:

oPc GetEnteringObject(); 

par :
Code PHP:

oPc GetLastUsedBy(); 

c'est le dernier utilisateur qui seras transporté. donc tu met ca ds le onused du portail et roulez
tu peu même faire un test au début pour vérifier qu'ils ont bien recu les instruction avant d'être transporté, mais bon ca après c du fignolage

getlastused ^_^ !!! tu pouvais pas le dir plutot

bon soulagé ça marche...

un grd merci...
Répondre

Connectés sur ce fil

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