online faq recherche accueil
 

Il y a 188 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
 Page :  1  2
Page Suivante 
Auteur
 Sujet :

comment créer une fonction ?

 
n°4587368
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-12-2006 à 22:01:56  profilanswer
 

Reprise du message précédent :
Dans ce cas ta fonction cmd_name donne la valeur null à entered_string, étant donné que tu ne lui passe pas de variables string (je suis peut être pas trés clair là )  :whistle:


Message édité par Troll-Brain le 11-12-2006 à 22:02:49
n°4587369
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:04:41  profilanswer
 

Mais si, la fonction reçoit en paramètre, soit dans entered_string la chaîne "-command param1".
 
La je ne comprends, j'ai à nouveau une erreur :

Code :
  1. function InitTrig_commands takes nothing returns nothing
  2. endfunction
  3.      //command functions
  4. //gives the name of the entered command  
  5. function cmd_name takes string entered_string returns string
  6.   local integer length = StringLength(entered_string)
  7.   local string the_cmd_name = ""
  8.   local string car
  9.   local integer i = 0
  10.   if ( SubString(entered_string, 1, 1) == "-" and length > 1 ) then
  11.     set car = SubString(entered_string, 2, 2)
  12.     set i = 2   
  13.     loop
  14.       exitwhen ( i>length or car == " " )
  15.       set the_cmd_name = the_cmd_name + car
  16.       set i = i + 1
  17.       set car = SubString(entered_string, i, i)
  18.     endloop
  19.   endif
  20.   if ( StringLength(the_cmd_name) >= 1) then
  21.     return the_cmd_name
  22.   else
  23.     return null
  24.   endif
  25. endfunction


 
A la ligne 8 j'ai "attendait un nom"  
edit : en fait c'est tout con j'avais oublié de supprimer la déclaration de cette fonction dans le script personnalisé
 
J'ai comme l'impression que troll-brain est comme dépassé par les évènements là :p.
Ayane aide- nous plz.
 
Il ne faut pas confondre les fonctions qui retournent quelque chose et celles qui ne retournent rien, aussi appelées procédures. Les fonctions sont utilisées de la façon suivante : dans mon exemple, n'importe où dans la map, cmd_name(<chaîne> ) est effectivement une chaîne de caractères. Les procédures quant à elles sont utilisées de la façon suivante : call <fonction>. Je pense que l'on peut également appeler une fonction qui retourne quelque chose de cette façon, mais dans ce cas on néglige la valeur retournée. Cela est donc utile que si la fonction comporte des actions. Je ne sais pas si je suis très clair...


Message édité par Maximaxou le 12-12-2006 à 19:01:06
n°4587370
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-12-2006 à 22:08:23  profilanswer
 

bon bah surement que l'on ne peut mettre une fonction qu'à l'intérieur du script perso ou dans une fonction condition/action d'un déclencheur ( évidemment ca ne sera peut être une connerie de plus de ma part)

n°4587371
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:10:32  profilanswer
 

non non j'ai ouvert la map worm war et il y un ou deux déclencheurs utilisés uniquement pour créer des fonctions globales. Et c'est fait exactement de la façon que tu m'as communiquée. Cependant je ne vois pas où est mon erreur, surtout qu'avant je n'avais pas cette erreur...

n°4587372
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:13:03  profilanswer
 

Que penses-tu de mon message perso ? xD

n°4587373
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-12-2006 à 22:13:45  profilanswer
 

bien mais moi je fais pas sérieux dans le rôle du disciple  :D
L'important c'est d'avoir la foi ^^


Message édité par Troll-Brain le 11-12-2006 à 22:14:16
n°4587374
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:16:42  profilanswer
 

lol. sinon ta capté ce ke je tai di au dessus a propos des fonctions ?
 
 
hmm, comment est-ce qu'on envoie un message privé ?


Message édité par Maximaxou le 11-12-2006 à 22:17:32
n°4587375
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-12-2006 à 22:18:45  profilanswer
 

la petite enveloppe pour les mp, sinon je suis en train de lire mais j'avoues ne pas tout saisir, casio powa !

n°4587376
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:24:46  profilanswer
 

en fait une fonction qui retourne quelque chose est extrement pratique :
 
fonction <nom> (<paramètres> ) <sortie>
 
en paramètre tu mets rien, la ou les variables de type ke tu veux.
en sortie tu mets la variable de type que tu veux.
c'est dans la fonction elle meme que tu peux utiliser les paramètres. ceux ci s'utilisent exactement comme les variables à une différence près, on ne peut pas changer leur valeur, puisque à chaque appel de la fonction, les paramètres sont les valeurs contenues par les variables spécifées, et non les variables elles-même. A mon avis pour pouvoir modifier ces variables, il faut utiliser le type handle utilisé pour les pointeurs si j'ai bien compris ce que ma di ayane. D'ailleurs si il/elle nous proposait son aide là, ça serait pas de refus :p.
 
Quant à l'appel de la fonction je le répète encore, tu peut l'utiliser exactement comme une valeur, et non une variable. Et cette même valeur sera du type que tu as choisis de mettre apré returns dans la déclaration de la fonction. Phew, j'espère que maintenant c'est plus clair. ;) (et il n'y a pas de call)


Message édité par Maximaxou le 11-12-2006 à 22:32:06
n°4587377
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:26:18  profilanswer
 

Je viens de t'envoyer un message privé.

n°4587378
Maximaxou
rejoignez les fidèles du JASS
Posté le 11-12-2006 à 22:28:26  profilanswer
 

maintenant ça déchire !!! (voir plus bas)
 
merde a marche pas -_- (signature de message)
 
Comment fait-on pour afficher automatiquement la signature en bas des messages ?
 
Tin c dingue jariv a faire des trucs plutot balèzes en prog (tout est relatif) mais je poses tout le tps des questions débiles.
Comment fait-on pour afficher le profil de quelqu'un ?
Ah et autant en profiter : comment ajouter "<nom> a écrit :" dans les citations ?


Message édité par Maximaxou le 11-12-2006 à 22:34:38
n°4587380
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 11-12-2006 à 22:46:25  profilanswer
 

héhé en fait c'est vrai que la facon de citer sur ce forum est assez bizarre en fait clique sur la petite enveloppe rouge (a gauche de l'envellope blanche) tu comprendras.
Sinon le profil c'est la première icône à gauche  :D


Message édité par Troll-Brain le 11-12-2006 à 22:46:55
n°4587381
Maximaxou
rejoignez les fidèles du JASS
Posté le 12-12-2006 à 00:47:39  profilanswer
 

J'arrive pas à trouver les constantes associées au type joueur. De plus je ne trouve pas de fonction prenant un joueur et renvoyant un entier. Mais si je trouvais les constantes du type joueur, il me serait facile de créer cette fonction moi-même. Tout ce que je trouve c'est les constantes du type playercolor : PLAYER_COLOR_RED etc...
 
hm ça serait pas PLAYER_RED par hasard ?
--> après test il semblerait que non :(


Message édité par Maximaxou le 12-12-2006 à 00:49:28
n°4587385
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 12-12-2006 à 17:37:06  profilanswer
 

Player(entier de 0 à 15)
 
fonction de blizzou :
 

Code :
  1. function GetConvertedPlayerId takes player whichPlayer returns integer
  2.     return GetPlayerId(whichPlayer) + 1
  3. endfunction


 
Comme tu vois tu peux la faire toi même assez aisément ^^, ne repousse pas le gui quand tu ne trouves pas, fait le en gui et regardes la fonction dans blizzard.j puis common.j
 

n°4587387
Maximaxou
rejoignez les fidèles du JASS
Posté le 12-12-2006 à 18:58:57  profilanswer
 

GetPlayerId c'est parfait :).
 
Quand aux constantes de types joueurs ça n'existe pas, pour désigner rouge on a Player(0)
(d'ailleurs je crois que c'est ce que tu voulais dire)


Message édité par Maximaxou le 12-12-2006 à 18:59:25
n°4587388
Maximaxou
rejoignez les fidèles du JASS
Posté le 12-12-2006 à 19:01:30  profilanswer
 

Help, ma fonction cmd_name renvoie toujours null :(.
Et c'est la fonction de base sur les commandes, toutes les autres se servent de celle-ci :(.
 
Sinon j'aurais une autre question, est-ce qu'on peut transformer une chaîne de caractère en code JASS ?
en fait ce serait pour faire une commande personnalisée execute, utilisable de la façon suivante :
-execute <code>
exemple :
-execute call KillUnit(udg_hero[2])
tuera teal
(au fait j'ai changé ma variable ts_persos en hero)
 
Cet exemple n'a pas grand intérêt puisqu'il existe la commande kill, mais cette commande execute me permettrait de faire absolument tout ce que je veux. Ah, il faudrait également un moyen pour vérifier que le code en entré ne génère pas d'erreur. Merci de votre aide.


Message édité par Maximaxou le 12-12-2006 à 19:06:11
n°4587391
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 12-12-2006 à 20:47:58  profilanswer
 

ah mon avis ca doit etre possible en faisant une fonction du genre

Code :
  1. function S2C takes string S returns code
  2. return S
  3. return null // ne sera jamais lancée mais c'est pour éviter que l'éditeur plante lors de la sauvegarde de la map
  4. endfunction


Aprés faudrait répertorier toutes les fonctions et faire une boucle  :sweat:
 
et pour le player je parlais de cela :

Code :
  1. type player             extends     handle  // a single player reference


sauf qu'en fait c'est un handle pas un integer
 
sinon si ta fonction est déja crée dans le custom script peut être qu'un call(S) fera l'affaire, et donc dans la boucle tu vérifies que cette fonction existe


Message édité par Troll-Brain le 12-12-2006 à 21:14:39
n°4587392
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 12-12-2006 à 22:07:24  profilanswer
 

Fonctions dans le custom script
 

Code :
  1. function S2C takes string S returns code
  2. return S
  3. return null
  4. endfunction
  5. function Display takes nothing returns nothing
  6. call DisplayTextToForce( GetPlayersAll(), udg_string )
  7. endfunction


 
trigger :
 

Code :
  1. test
  2.     Evénements
  3.         Joueur - Joueur 1 (Rouge) types a chat message containing test as Résultat équivalent
  4.     Conditions
  5.     Actions
  6.         Partie - Display to (All players) the text: aha
  7.         Set string = hehe
  8.         Set S = Display
  9.         Custom script:   call S2C(udg_S)


 
Le but de la manoeuvre est d'essayer d'appeler la fonction Display, mais je ne comprends pas comment faire


Message édité par Troll-Brain le 12-12-2006 à 22:07:53
n°4587393
Maximaxou
rejoignez les fidèles du JASS
Posté le 12-12-2006 à 22:27:23  profilanswer
 

ton custm script devrait faire ça effectivement
Le problème c'est comment faire la fonction S2C, à moins qu'elle ne soit prédéfinie ---> OK tu l'as définies effectivement
 

Citation :

function S2C takes string S returns code


Je ne comprends pas, d'après le common.j le type code n'existe pas.


Message édité par Maximaxou le 13-12-2006 à 00:20:16
n°4587399
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 00:16:56  profilanswer
 

Existe-t-il une fonction takes player whichplayer returns point, qui renvoie la position du curseur du joueur whichplayer ?
Et sinon, est-il possible de créer une telle fonction. Si éventuellement vous ne voyez par l'intérêt d'une telle fonction, je peux vous donner un exemple dans la seconde ^^.

Message cité 1 fois
Message édité par Maximaxou le 13-12-2006 à 00:22:38
n°4587400
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 00:46:15  profilanswer
 

Encore un problème de fonction.............
 
Dans le déclencheur functions level changing j'ai le code suivant :

Code :
  1. function InitTrig_functions_level_changing takes nothing returns nothing
  2. endfunction
  3. function UnhidePickedUnit takes nothing returns nothing
  4.     call ShowUnit(GetEnumUnit(),true)
  5. endfunction
  6. function Activ_monsters takes integer level_number returns nothing
  7.     call ForGroupBJ( udg_units_lvl[level_number], function UnhidePickedUnit)
  8. endfunction


Et dans le déclencheur level changing j'ai, entre autre, les actions suivantes :

Code :
  1. local integer udg_n = udg_current_lvl
  2. call Activ_monsters(udg_n+1)


Et j'ai l'erreur classique, ligne 2 du deuxième déclencheur, attendait un nom de fonction.


Message édité par Maximaxou le 13-12-2006 à 00:46:36
n°4587401
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 00:50:00  profilanswer
 

Sinon, autre problème (moi j'en ai très peu des problèmes :sarcastic:), comment fait-on pour changer le destinaire des messages ?
Concrètement j'aimerais que lorsque l'on tape telle où telle commande, celle-ci s'affiche uniquement aux observateurs.

n°4587402
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 00:53:02  profilanswer
 

Alors, autre chose, un truc que je suppose impossible à faire... Modifier ou ajouter ou enlever des déclencheurs puis sauvegarder la map... est-ce possible ? Cette question découle d'une idée de fou ^^ (ou plus précisemment... moi :sarcastic:)

Message cité 1 fois
Message édité par Maximaxou le 13-12-2006 à 01:01:52
n°4587403
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 01:23:05  profilanswer
 

Encore un autre problème -_-.
Celui je ne comprends même pas comment il peut ne serait-ce qu'exister :/.

Code :
  1. function InitTrig_slide_functions takes nothing returns nothing
  2. endfunction
  3. //says if the specified unit is on slide terrain or not
  4. function is_ice takes real X, real Y returns boolean
  5.   return GetTerrainType(X,Y) == 'Iice'
  6. endfunction


Code :
  1. function Trig_avancer_j1_Actions takes nothing returns nothing
  2.     local integer I = 0
  3.     local real speed = udg_slide_speed[I]
  4.     local real X
  5.     local real Y
  6.     local real A
  7.     local unit U
  8.     set U = udg_hero[I]
  9.     set X = GetUnitX(U)
  10.     set Y = GetUnitY(U)
  11.     if ( is_ice(X,Y)) then         //ici, la fonction is_ice n'est pas reconnue
  12.     set A = Deg2Rad(GetUnitFacing(U))
  13.     call SetUnitPosition( U, X+speed*Cos(A),Y+speed*Sin(A) )
  14.     endif
  15. endfunction
  16. //===========================================================================
  17. function InitTrig_avancer_j1 takes nothing returns nothing
  18.     set gg_trg_avancer_j1 = CreateTrigger(  )
  19.     call TriggerRegisterTimerEventPeriodic( gg_trg_avancer_j1, 0.01 )
  20.     call TriggerAddAction( gg_trg_avancer_j1, function Trig_avancer_j1_Actions )
  21. endfunction


Je pense que cette erreur provient d'ailleurs, car là je ne vois vraiment pas... Cependant je ne vois absolument pas pourquoi cette erreur proviendrait d'autre chose. L'erreur exacte est la suivante : Ligne 11 : Attendait un nom.


Message édité par Maximaxou le 13-12-2006 à 01:27:53
n°4587408
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 13-12-2006 à 17:10:19  profilanswer
 

bon bah apparament tu ne peux appeler une fonction que si elle est dans le custom script ou bien sur le blizzard.j ou le common.j, je ne vois que cela comme explication.
 
Effectivement on ne voit pas de code dans common.j mais comme l'éditeur l'accepte sans broncher ca doit exister d'ailleurs je supposes que les customs scripts fonctionnent de cette manière.
 
Sinon pour mon problème je suis trop bête suffit d'utiliser une variable intermédiaire
 

Code :
  1. constant playerstate PLAYER_STATE_OBSERVER                  = ConvertPlayerState(11)
  2. native DisplayTextToPlayer          takes player toPlayer, real x, real y, string message returns nothing


Message édité par Troll-Brain le 13-12-2006 à 17:14:03
n°4587409
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 13-12-2006 à 17:15:51  profilanswer
 

Maximaxou a écrit :

Alors, autre chose, un truc que je suppose impossible à faire... Modifier ou ajouter ou enlever des déclencheurs puis sauvegarder la map... est-ce possible ? Cette question découle d'une idée de fou ^^ (ou plus précisemment... moi :sarcastic:)


 
en cours de partie ?
je sais qu'il est possible de modifier ou suprimer des déclencheurs mais de là à sauvegarder les modifications ...
 

n°4587410
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 13-12-2006 à 17:16:24  profilanswer
 

Maximaxou a écrit :

Existe-t-il une fonction takes player whichplayer returns point, qui renvoie la position du curseur du joueur whichplayer ?
Et sinon, est-il possible de créer une telle fonction. Si éventuellement vous ne voyez par l'intérêt d'une telle fonction, je peux vous donner un exemple dans la seconde ^^.


Non
 

n°4587412
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 13-12-2006 à 17:27:26  profilanswer
 

Pour ta fonction qui revoie null il faut peut être passer par une variable intermédiaire.
Voir ici

n°4587413
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 18:18:10  profilanswer
 

mdr ton lien. J'ai pas tout compris tu pourrais expliquer avec un exemple ?

n°4587416
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 18:31:44  profilanswer
 

Citation :

bon bah apparament tu ne peux appeler une fonction que si elle est dans le custom script ou bien sur le blizzard.j ou le common.j, je ne vois que cela comme explication.


Je te répète que non. De toute façon la preuve est dans worm war (map fait par des vrais professionnels), tu peux aller voir.

n°4587419
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 13-12-2006 à 18:57:11  profilanswer
 

le plus important c'est la conclusion :
 

Code :
  1. Conclusion: une fonction qui demande en paramètre un code, il faut soit lui entrer directement ou soit lui entrer une variable code: elle ne fonctionnera pas si on lui entre une fonction qui renvoie un code.
  2. Donc j'ai juste besoin de passer par une variable intermédiaire.


 
Donc au lieu d'utiliser directement une fonction qui renvoie une valeur passe par une variable intermédiaire.
C'est peut être cela qui ne fonctionne pas.
C'est vrai pour le code ca peut l'être pour autre chose

n°4587424
Maximaxou
rejoignez les fidèles du JASS
Posté le 13-12-2006 à 21:23:20  profilanswer
 

pa tou capté là. surtout le 1 et le 2 xD

n°4587430
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 13-12-2006 à 22:06:18  profilanswer
 

quelles questions tu n'as pas compris ?

n°4587437
Maximaxou
rejoignez les fidèles du JASS
Posté le 14-12-2006 à 08:49:07  profilanswer
 

ben ce que je capte pas pas c'est la nécessité d'une variable intermédiaire

n°4587442
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 14-12-2006 à 17:55:20  profilanswer
 

simplement parce que la valeur n'est pas transmise parfois , tout du moins pour le code il s'agit d'un bug c'est tout
Sinon à part ca tu veux que je développes quelles réponses ?


Message édité par Troll-Brain le 14-12-2006 à 17:55:51
n°4587443
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 14-12-2006 à 18:08:48  profilanswer
 

Citation :

Et dans le déclencheur level changing j'ai, entre autre, les actions suivantes :
 

Code :
  1. local integer udg_n = udg_current_lvl
  2. call Activ_monsters(udg_n+1)


 
 
Et j'ai l'erreur classique, ligne 2 du deuxième déclencheur, attendait un nom de fonction.


tu as essayé de faire ceci :

Code :
  1. call Activ_monsters((udg_n)+1)


et sinon la déclaration des variables locales doit se faire au début de la fonction et pas entre 2 codes


Message édité par Troll-Brain le 14-12-2006 à 19:36:02
n°4587444
Troll-Brai​n
http://worldedit.free.fr/forum
Posté le 14-12-2006 à 18:18:34  profilanswer
 

Code :
  1. if ( StringLength(the_cmd_name) >= 1) then
  2. return the_cmd_name
  3. else
  4. return null


fais ca pour savoir ce qui se passe :

Code :
  1. if ( StringLength(the_cmd_name) >= 1) then
  2. call DisplayTextToPlayer(Player(0),0,0,">=1" )
  3. return the_cmd_name
  4. else
  5. call DisplayTextToPlayer(Player(0),0,0,"<1" )
  6. return null


 
 

n°4587445
Maximaxou
rejoignez les fidèles du JASS
Posté le 15-12-2006 à 01:01:33  profilanswer
 

Citation :

call Activ_monsters((udg_n)+1)


c exactement pareil
 

Citation :

fais ca pour savoir ce qui se passe :  
 
 
Code :
 
if ( StringLength(the_cmd_name) >= 1) then
call DisplayTextToPlayer(Player(0),0,0,">=1" )
return the_cmd_name
else
call DisplayTextToPlayer(Player(0),0,0,"<1" )
return null  

ok


Message édité par Maximaxou le 15-12-2006 à 01:03:44
n°4587459
Maximaxou
rejoignez les fidèles du JASS
Posté le 16-12-2006 à 10:05:18  profilanswer
 

J'ai trouvé la solution de mon problème de renvoi null systématique. Cela venait de la fonction native SubString, qui ne fonctionne pas de la même manière que SubStringBJ. Exemple : SubString("-commande", 0, 1) = SubStringBJ("-commande", 1, 1) = "-"
Maintenant ma fonction cmd_name marche nikel, la voici :

Code :
  1. //gives the name of the entered command  ////the name of the entered command is <command_name>
  2. function cmd_name takes string entered_string returns string
  3.   local integer length = StringLength(entered_string)
  4.   local string the_cmd_name = ""
  5.   local string car
  6.   local integer i = 0
  7.   if ( SubStringBJ(entered_string, 1, 1) == "-" and length > 1 ) then
  8.     set car = SubStringBJ(entered_string, 2, 2)
  9.     set i = 2   
  10.     loop
  11.       exitwhen ( i>length or car == " " )
  12.       set the_cmd_name = the_cmd_name + car
  13.       set i = i + 1
  14.       set car = SubStringBJ(entered_string, i, i)
  15.     endloop
  16.   endif
  17.   if ( StringLength(the_cmd_name) >= 1) then
  18.     return the_cmd_name
  19.   else
  20.     return null
  21.   endif
  22. endfunction

n°4587460
Maximaxou
rejoignez les fidèles du JASS
Posté le 16-12-2006 à 10:21:12  profilanswer
 

Et voici la commande cmd_param(string s, integer i) qui renvoit tout ce qui suit le nom de la commande lorsque i = 0, le paramètre i sinon. (elle renvoit null si le paramètre i n'existe pas) Cette fonction marche également parfaitement. Je vais enfin pouvoir avancer dans mon déclo commandes :D.

Code :
  1. //gives the parameter number 'param_number' of the entered command : <paramX>
  2. function cmd_param takes string entered_string, integer param_number returns string
  3.   local integer length = StringLength(entered_string)
  4.   local integer length_name = StringLength(cmd_name(entered_string))
  5.   local string the_cmd_param = ""
  6.   local string car
  7.   local integer i = 0
  8.   local integer current_param_number = 1
  9.   local integer last_space_found_position = length_name + 2       
  10.  
  11.   set i = last_space_found_position + 1
  12.  
  13.   if param_number == 0 then
  14.     return SubStringBJ(entered_string, i, length)
  15.   endif
  16.    
  17.   loop
  18.   exitwhen ( current_param_number == param_number or i > length )
  19. set car = SubStringBJ( entered_string, i, i )
  20. exitwhen ( (car == " " ) and (i - 1 == last_space_found_position) )
  21. if car == " " then
  22.   set current_param_number = current_param_number + 1
  23. endif
  24. set i = i + 1
  25.   endloop
  26.   if ( current_param_number == param_number ) then
  27.     loop
  28. exitwhen ( i > length )
  29.   set car = SubStringBJ( entered_string, i, i )
  30.       exitwhen ( car == " " )
  31.       set the_cmd_param = the_cmd_param + car
  32.   set i = i + 1
  33. endloop
  34. return the_cmd_param
  35.   endif
  36.   return null
  37. endfunction


Message édité par Maximaxou le 16-12-2006 à 10:58:52
n°4587467
Maximaxou
rejoignez les fidèles du JASS
Posté le 16-12-2006 à 15:26:37  profilanswer
 

J'ai enfin trouvé d'où venait le problème des fonctions que l'on crée dans un déclencheur. Il faut que le déclencheur d'où on appelle la fonction soit créé après celui où on l'a déclarée : message d'erreur, je place la fonction ds le script perso, ça marche, je la remets comme avant ça marche plus. Je copie/colle le déclo d'où on appelle la fonction, supprime le vieux, compile : miracle, ça marche.

 Page :  1  2
Page Suivante 

Aller à :
Ajouter une réponse