Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

modif de tag

Par daemogorgon le 13/2/2003 à 22:33:13 (#3233661)

Question : :confus:

c'est possible de modifier des tag dynamiquement ? Je m'explique, en créant un cheminement générique avec des WayPoints, serait il possible de modifier dynamiquement les noms des WayPoints pour qu'ils puissent être associés à un PNJ quelconque qui a un nom XXXXX ?

Ah la question qui tue ! :doute:

Par Azrael07 le 13/2/2003 à 22:48:30 (#3233723)

euh..... dynamiquement, c'est a dire pendant le jeu, non :(

par contre, je saisis pas bien ton exemple, mais j'ai pas l'impression que tu ai besoin de modifier le TAG dynamiquement

dis en un peu plus sur ce que tu veux faire ;)

Par daemogorgon le 13/2/2003 à 22:58:15 (#3233774)

Grace au fabuleux travail de MIRANDIEL et de RAT sur la taverne animée, je suis en train de travailler sur la même chose, mais pour un village.
L'idée est de préfabriquer des cheminements que je pourrais allouer à des PNJ crées dynamiquement dans le OnEnter de la zone.
T'as une idée ?

Par Azrael07 le 13/2/2003 à 23:25:16 (#3233924)

ahhhhhhhhhhhh ce n'est que ca....

bien sur que j'ai une idée, j'utilise ca dès qu'il faut programmer un npc.

Tu fait une suite de waypoint, nommes avec des numeros, puis il suffit de mettre un "AssignCommand(" pour chaques npc créé dans le OnEnter, puis tu fais une boucle qui passe en revue tout les numeros 1 par 1, par ex :



int i = 0;
object oWaypoint = GetObjectByTag("WP_" + AdjustDecimal(IntToString(i)));
while(GetIsObjectValid(oWaypoint))
{
AssignCommand(oCreature, ActionMoveToObject(oWaypoint));
i++;
oWaypoint = GetObjectByTag("WP_" + AdjustDecimal(IntToString(i)));
}


J'utilise la fonction AdjustDecimal pour mettre des zeros quand il en faut lorsque je passe en revue des tags numérotés. Son corp est ici :


//Ajoute des zeros devant la chaine sNumber pour lui donner
//une taille de nNumberOfDecimal
string AdjustDecimal(string sNumber, int nNumberOfDecimal = 2)
{
int nSize = GetStringLength(sNumber);
int iCount;
for(iCount; iCount < nNumberOfDecimal - nSize; iCount++)
sNumber = "0" + sNumber;
return sNumber;
}


si on met la chaine "3" en entrée, on obtient "03" a la sortie, si on met "11" on obtient "11", voila

si t'as besoin de plus d'approfondissement hésite pas ;)

Par daemogorgon le 13/2/2003 à 23:40:48 (#3234011)

moi bête, moi pas comprendre.

Le script où il y a le AssignCommand, tu le mets où ? Dans le OnSpawn du PNJ ? :confus:

Par Azrael07 le 14/2/2003 à 0:14:20 (#3234155)

arf...

tu peux mettre ca dans le OnEnter de la zone, derrière tes créations de créatures. Si je reprend en entier, ton fichier pour une seule créature va donner ca :


//Ajoute des zeros devant la chaine sNumber pour lui donner
//une taille de nNumberOfDecimal
string AdjustDecimal(string sNumber, int nNumberOfDecimal = 2)
{
int nSize = GetStringLength(sNumber);
int iCount;
for(iCount; iCount < nNumberOfDecimal - nSize; iCount++)
sNumber = "0" + sNumber;
return sNumber;
}

void main()
{
object oCreature = CreateObject(OBJECT_TYPE_CREATURE, "blueprint", GetLocation(GetObjectByTag(WP_STPNT)));
int i = 0;
object oWaypoint = GetObjectByTag("WP_" + AdjustDecimal(IntToString(i)));
while(GetIsObjectValid(oWaypoint))
{
AssignCommand(oCreature, ActionMoveToObject(oWaypoint));
i++;
oWaypoint = GetObjectByTag("WP_" + AdjustDecimal(IntToString(i)));
}
}


Voila, c ni compilé ni debuggé, mais dans l'idée c ca. Il suffit d'ajouter le createObject et la boucle autant de fois que tu veux de npc

Par Taern le 14/2/2003 à 15:02:25 (#3237856)

Apparemment la nouvelle commande de script de la 1.28 CopyObject, permet de donner un tag différent à la copie de l'objet.

Ca n'a pas fait beaucoup de bruit pour l'instant, pourtant je trouve ça assez révolutionnaire, compte tenu que ça pourrait permettre de garder des informations d'un joueur sur un objet.

Par Jedaï le 14/2/2003 à 16:34:20 (#3238551)

Va voir mon post sur cette fonction et poste ton avis, même si les réactions sont pour l'instant plutôt négative, je suis sûr qu'on peut trouver de très nombreuses utilisation à cette nouvelle fonction :p

JOL Archives 1.0.1
@ JOL / JeuxOnLine