• 06 Juin 2026, 18:11:34


Auteur Sujet: [Résolu] Reprise du script de paye qui ne marche pas....  (Lu 3530 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
[Résolu] Reprise du script de paye qui ne marche pas....
« le: 28 Décembre 2007, 00:07:54 »
Bonjour, c'est encore moi  :ninja

j'ai pris ce script sur ce forum, j'aimerais aussi l'utiliser mais lors de la compilation, des erreurs....

public AutoPay(playerid)
{
SendClientMessageToAll(COLOR_GREEN,"Jour De Paye !");
SendClientMessageToAll(COLOR_RED,"Tu as reçu 3500$ !");
for(new i=0; i<MAX_PLAYERS; i++)
{
GivePlayerMoney(i, 3500);
}
}

C:\...\filterscripts\paye.pwn(20) : warning 217: loose indentation
C:\...\filterscripts\paye.pwn(20) : error 029: invalid expression, assumed zero
C:\Documents and Settings\chris\Bureau\samp022server.win32\filterscripts\RAS.pwn(20) : error 017: undefined symbol "AutoPay"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

voila...

Merci de votre aide ! :D
« Modifié: 29 Décembre 2007, 23:58:48 par chrislabricole »

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Reprise du script de paye qui ne marche pas....
« Réponse #1 le: 28 Décembre 2007, 00:28:50 »
Y a pas de

return 1;

?? c'est normale ??
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #2 le: 28 Décembre 2007, 00:30:17 »
le problème ne viens pas de là, il manque le forward en haut du script et le timer qui éxecute la fonction dans OnGameModeInit ;)

++
R@f


Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
Re : Re : Reprise du script de paye qui ne marche pas....
« Réponse #3 le: 28 Décembre 2007, 10:56:48 »
donc si je met

[...]
#include <time> // il y en a besoin ??
forward AutoPay(); // est-ce cela ??

[...]

public AutoPay(playerid)
{
SendClientMessageToAll(COLOR_GREEN,"Jour De Paye !");
SendClientMessageToAll(COLOR_RED,"Tu as reçu 3500$ !");
for(new i=0; i<MAX_PLAYERS; i++)
{
GivePlayerMoney(i, 3500);
}
}

Merci de votre aide  :)

PS: je suis débutant :...

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #4 le: 28 Décembre 2007, 11:30:18 »
forward AutoPay();

public OnGameModeInit()
{
SetTimer("AutoPay", TEMPS, 1);
        return 1,
}

public AutoPay(playerid)
{
SendClientMessageToAll(COLOR_GREEN,"Jour De Paye !");
SendClientMessageToAll(COLOR_RED,"Tu as reçu 3500$ !");
for(new i=0; i<MAX_PLAYERS; i++)
{
GivePlayerMoney(i, 3500);
}
}


Tu vois avant? Bah j'étais là encore avant!

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #5 le: 28 Décembre 2007, 11:38:34 »
y'a pas besion de l'include time pour ce bout de code, peut être il te sert a autre chose cet include. Pour le timer tu utilises un SetTimerEx et pas un SetTimer comme Native
Code: (cpp) [Sélectionner]
SetTimerEx("AutoPay",1440000,1,"i",playerid);je viens aussi de remarquer que le forward n'est pas très juste ^^ c'est :
Code: (cpp) [Sélectionner]
forward AutoPay(playerid);
++
R@f

Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #6 le: 28 Décembre 2007, 12:59:02 »
Donc en haut du script, j'ai :
Code: (cpp) [Sélectionner]
forward AutoPay(playerid);
SetTimerEx("AutoPay",1440000,1,"i",playerid); // comment à tu trouvé 1440000, cela signifie 1 jour (de gta) je pense, non ?
[...]
Code: (cpp) [Sélectionner]
public AutoPay(playerid)
{
SendClientMessageToAll(COLOR_GREEN,"Jour De Paye !");
SendClientMessageToAll(COLOR_RED,"Tu as reçu 3500$ !");
for(new i=0; i<MAX_PLAYERS; i++)
{
GivePlayerMoney(i, 3500);
}
}


et quand je compile, ça me fais :
Citer
C:\...\gamemodes\lvdm.pwn(30) : error 021: symbol already defined: "SetTimerEx"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase

1 Error.


Merci de votre aide !  :)

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #7 le: 28 Décembre 2007, 13:06:54 »
j'ai oublié de dire que fallait mettre le timer dans OnGameModeInit (l'endroit où y a les véhicules) et 1440000 sa fait bel et bien 24 minutes qui donnent 1 jour dans GTA ;)

++
R@f

Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #8 le: 28 Décembre 2007, 15:20:49 »
donc ça donne quoi en fait ?  ;D

Merci à toi :)

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #9 le: 28 Décembre 2007, 15:30:51 »
sa donne que toutes les 24minutes le joueur reçoit 3500 $ ;)

++
R@f

Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #10 le: 28 Décembre 2007, 16:41:03 »
oui oui je sais  :D

Mais ça donne quoi le code, j'ai pas trop capté  :P

Merci à toi !

Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #11 le: 29 Décembre 2007, 13:58:36 »
Après avoir bien relu, et essayer de comprendre, j'ai compri se que tu voulais dire  :P

j'ai bien mi le timer dans OnGameModeInit  ;)
j'ai mi le forward en haut (avec les ses autres copains)

et la fonction, je l'ai mise toute en bas du script...


voiçi l'erreur  :(
Citer
C:\...\gamemodes\lvdm.pwn(491) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

je ne vois pas pourquoi il ne reconnait pas playerid !

la ligne 491 est la suivant :
Code: (cpp) [Sélectionner]
SetTimerEx("AutoPay",1440000,1,"i",playerid);(elle est dans OnGameModeInit)

Merci de ton aide ! :)

PS: que signifie le "i" dans SetTimerEx ?
 

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #12 le: 29 Décembre 2007, 14:03:53 »
"i" C'est pour la boucle, c'est pour definir tout les players InGame !

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne chrislabricole

  • *
  • Tueur
  • Messages: 58
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #13 le: 29 Décembre 2007, 17:15:13 »
ok :) merci :)

et pour le problème du playerid ?  :ohmy

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Reprise du script de paye qui ne marche pas....
« Réponse #14 le: 29 Décembre 2007, 23:23:22 »
NON !!! , le "i" dans SetTimerEx sert à indiquer à PAWN le nombre de le type de paramètres qu'il aura à passer à la fonction du timer.
Dans le cas qui nous occupe, le "i" indique qu'il n'y a qu'un seul paramètre et qu'il est de type int (entier).

Mais comme ta fonction de timer contient un boucle sur tous les joueurs, ce paramètre n'est pas nécessaire (d'ailleurs, il n'est pas utilisé dans la fonction AutoPay donc inutile) et un simple SetTimer fera l'affaire.
Soit :

En haut du script :
forward AutoPay ();
Dans OnGameModeInit :
SetTimer ("AutoPay",1440000,1);
Et quelque part dans ton script (en dehors de toute autre fonction) :
public AutoPay ()
{
   SendClientMessageToAll (COLOR_GREEN,"Jour De Paye !");
   SendClientMessageToAll (COLOR_RED,"Tu as reçu 3500$ !");
   for (new i=0; i<MAX_PLAYERS; i++)
   {
      GivePlayerMoney(i, 3500);
   }
}

++
Syg
Courtesy of GtaManiac