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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Script qui ne marche pas ! Help ! :(

Par Zandramas le 27/1/2003 à 9:49:43 (#3108960)

Le script veut pas se compiler a la ligne 4 ... Et je sais pas pourquoiiiii ! Pour le contexte c'est un script qui (normalement :hardos: ) si tu as un objet t'envoi a un endroit et si tu l'as pas a un autre ! :)


void main()
{
object oPc=GetEnteringObject();
object oObject=GetNearestObjectByTag(sTag="ann_haute_sorcellerie", oTarget=oPc);
if (oObject==GetObjectByTag("ann_haute_sorcellerie"))
{
location lDestination = "WP_entree_tour";
ActionMoveToLocation (lDestination, bRun=FALSE);
}
else
{
location lDestination = "WP_entree_foret";
ActionMoveToLocation (lDestination, bRun=FALSE);
}
}


Je l'est placer su le onEnter d'un triger ! :)
:( Quesque j'ai oublier ? Ou mal fait ? Parceque la j'ai chercher toute la matinée et j'ai rien vu ! :'(

Par Archamedes_Fr le 27/1/2003 à 12:43:32 (#3110163)

Bon, j'ai pas testé, j'ai pas Aurora de disponible.
J'ai changé deux trois lignes.
Dans ton code, tu ne définissais ni sTag, ni oObject.
De plus, je ne suis pas très sur de cette ligne:

location lDestination = "WP_entree_tour";


Pour un téléportation, ActionJumpToObject me paraît plus adapté qu'un ActionMoveToLocation

Voilà ma proposition. Comme dit, je n'ai malheureusement pas eu la possibilité de tester. Désolé.


void main()
{
string sTag="ann_haute_sorcellerie";
object oPc=GetEnteringObject();
object oTarget=oPC;
object oObject=GetNearestObjectByTag(sTag, oTarget);
if (oObject==GetObjectByTag("ann_haute_sorcellerie"))
{
object oWP = GetObjectByTag("WP_entree_tour");
AssignCommand(oPC, ActionJumpToObject(oWP));
}
else
{
object oWP = GetObjectByTag("WP_entree_foret");
AssignCommand(oPC, ActionJumpToObject(oWP));
}
}

Par Prophetia Astrae le 27/1/2003 à 13:47:38 (#3110619)

On peut utiliser un ActionMoveToLocation mais dans ce cas la, ne pas faire:

location lDestination = "WP_entree_tour";
Ceci ne fonctionnera pas.

Il faut récupérer une location:
location lDestination = GetObjectLoction(GetObjectByTag("WP_entree_tour"));
Je suis pas sur de la fonction GetObjectLocation, j'ai pas Aurora avec moi là, mais c'est quelque chose dans le genre

Par sounéva le 27/1/2003 à 13:51:47 (#3110646)

et aussi


object oObject=GetNearestObjectByTag("ann_haute_sorcellerie", oPc);

ca sera mieux

Par Zandramas le 27/1/2003 à 19:06:21 (#3113142)

Merci à tous ! je vais tester sa ! :))

Merciiiiii !

Zan'

Par Zandramas le 27/1/2003 à 19:20:32 (#3113267)

J'ai esseiller avec le script d'Archamedes_Fr mais il me veut pas compiler a :


object oTarget=oPC;


Sinon la fonction


GetObjectLocation ();


Je l'est pas trouver ds Aurora :((

Par Prophetia Astrae le 27/1/2003 à 20:15:16 (#3113695)

Provient du message de Zandramas
J'ai esseiller avec le script d'Archamedes_Fr mais il me veut pas compiler a :


object oTarget=oPC;

(réédition pour diree qu'en effet la variable oPC n'existe pas car non déclarée, cf le post suivant)

Sinon la fonction


GetObjectLocation ();

Je l'est pas trouver ds Aurora :((

oui, autant pour moi, la fonction c'est GetLocation(), mais c'est pas dit que ça marche, dans ce cas utilise ceci:
object wpSpawn = GetWaypointByTag("WP_entree_tour");
location lDestination = GetLocation(wpSpawn);
voila, j'espere que ça ira :)

Par Prophetia Astrae le 27/1/2003 à 20:29:53 (#3113827)

Bon pour le object oTarget = oPC; j'ai trouvé, c'est pas bien de faire du copier coller :p

Bon je m'explique, dans la ligne de déclaration de oPC, on a:

object oPc=GetEnteringObject();
ensuite tu fais une affectation en utilisant :
object oTarget=oPC;
or oPc est different de oPC, car comme bcp de langage, le langage utilisé pour les script nwn est case sensitive, en gros il fait la difference entre les majuscule et les minucules...

C'est le truc bête qu'on met souvent longtemps a trouver :)

Bonne chance pour la suite

Prophetia

Par Zandramas le 27/1/2003 à 21:43:28 (#3114371)

Arg juste une majuscule !! :)

Oui j'avoue j'ai copier coller ! C'est plus rapide ;)

Merci ! :)

Par sounéva le 28/1/2003 à 0:45:37 (#3115310)

Provient du message de Archamedes_Fr


void main()
{
string sTag="ann_haute_sorcellerie";
object oPC=GetEnteringObject();
object oObject=GetNearestObjectByTag(sTag, oPC);
if (oObject==GetObjectByTag("ann_haute_sorcellerie"))
{
object oWP = GetObjectByTag("WP_entree_tour");
AssignCommand(oPC, ActionJumpToObject(oWP));
}
else
{
object oWP = GetObjectByTag("WP_entree_foret");
AssignCommand(oPC, ActionJumpToObject(oWP));
}
}

pourquoi redéfinir un objet oTarget ? = a oPC
autant mettre directement le oPC dans le GetNearestObjectByTag(sTag, oPC);.........:lit:

Par Archamedes_Fr le 28/1/2003 à 12:20:06 (#3117383)

Arg juste une majuscule !!

Argll, désolé. J'ai écris trop vite. :D

pourquoi redéfinir un objet oTarget ? = a oPC
autant mettre directement le oPC dans le GetNearestObjectByTag(sTag, oPC);.........

Heu... :doute: très franchement... je sais pas à quoi je pensais... :eek:
* cherche son bonnet d'âne *
Merci pour ta correction Sounéva.

JOL Archives 1.0.1
@ JOL / JeuxOnLine