• 06 Juillet 2025, 13:50:28


Auteur Sujet: Freeze la voiture selon un temps  (Lu 2031 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Xoss

  • Xoss | Alexandre Bocquet
  • *
  • Grand Banditisme
  • Xoss | Alexandre Bocquet
  • Messages: 847
    • Voir le profil
    • UnderWeb
Freeze la voiture selon un temps
« le: 04 Octobre 2009, 22:24:59 »
Salut, j aimerais svp de l'aide
Je voudrais faire une commande du style /blinder

Cela met la santé du vehicule a 10000
Je veux qu'on ne puisse faire que cette commande sur un cherckpoint et que quand on fasse cette commande ça freeze le vehicule et le jouer 1minutes
Apres ces une minutes les jouers est unfrezzé ainsi que la voiture, qui a a maintenant la vie de 10000

En reflechissant un peu je un peu essayer !

En haut de mon GM :
SetPlayerCheckpoint(playerid, X Y Z , 5.0);

La commande :

        if(strcmp(cmd, "/blindage", true) == 0 ) // Comment definir que ça soit que pour ce checkpoint ?
   {
        SendClientMessage(playerid,COLOR_GREEN, "Des mecanicien sont entrain de blindé ta voiture"); // le message
        TogglePlayerControllable(playerid,0); // le freezer Comment mettre le temps ?
        SetVehiculeHealth(playerid, 1000); // le blindage
        GivePlayerMoney(playerid,-1000); // le prix
   return 1;
   }

Merci de m'aider
Alexandre Bocquet Xoss

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #1 le: 04 Octobre 2009, 22:31:29 »
Essaye d'utiliser un DestroyTimer  ;)


++
FS'

Hors ligne Xoss

  • Xoss | Alexandre Bocquet
  • *
  • Grand Banditisme
  • Xoss | Alexandre Bocquet
  • Messages: 847
    • Voir le profil
    • UnderWeb
Re : Freeze la voiture selon un temps
« Réponse #2 le: 04 Octobre 2009, 22:42:00 »
Je connait pas tu peux m'aider
Alexandre Bocquet Xoss

Hors ligne MadX

  • Cobalt
  • *
  • Grand Banditisme
  • I'm in da place
  • Messages: 524
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #3 le: 04 Octobre 2009, 23:08:16 »
Citer
Comment definir que ça soit que pour ce checkpoint ?
Utilise un PlayerToPoint qui verifie si le joueur est ou il devrait être pour utiliser la commande, je me rappel plus trop comment l'utiliser mais je me rappel d'un poste de cristab ou il expliquait comment faire :happy

Citer
Comment mettre le temps ?
Utilise un SetTimer
http://wiki.sa-mp.com/wiki/SetTimer

Edit:
Citer
if(PlayerToPoint(5.0, playerid, X,Y,Z)
Le 5.0 correspond à la largeur du playertopoint, c'est comme la taille d'un checkpoint.
« Modifié: 04 Octobre 2009, 23:13:52 par MadX »


Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #4 le: 04 Octobre 2009, 23:12:31 »
Insère sa dans les bidules prêt des includes :

new FreezeTimer;
Sa dans ta commande :

FreezeTimer = SetTimer("Timer", ton temps, true);
Insère sa a côté des includes :

forward Timer(playerid);
Puis sa dans OneGameModeInit

public Timer(playerid)
{
KillTimer(FreezeTimer);
}

++
FS'

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : Freeze la voiture selon un temps
« Réponse #5 le: 04 Octobre 2009, 23:25:51 »
La solution de Fusion ne marchera pas et ya plus simple


Dans ta commande:
Code: (pawn) [Sélectionner]
SetTimerEx("Timer",TEMPS EN MS,0,"i",playerid);//On lance un timer qui defreezera le joueur , inutile de stocker la valeur de retour de settimer puisque c'est un timer unique qui s'arretera tout seul une fois le temps passé
En bas du script:
Code: (pawn) [Sélectionner]
forward Timer(playerid);
public Timer(playerid)
{
       TogglePlayerControllable(playerid,1); //On defreeze le joueur
}

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #6 le: 04 Octobre 2009, 23:34:39 »
J'ai testé ma solution et sa marche, mais bon .. :closedeyes
++
FS'

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : Freeze la voiture selon un temps
« Réponse #7 le: 04 Octobre 2009, 23:37:41 »
Normal sa marche pour l'id 0 uniquement  :P

La raison est simple tu appele la fonction Timer depuis un SetTimer mais tu oublie que ta fonction Timer doit prendre le parametre playerid et donc pour transmetre un parametre il faut utiliser SetTimerEx , lorsque tu ne transmet pas le parametre a la fonction celui ci prend une valeur nulle donc 0 donc la fonction s'executera sur l'id 0 peux importe le joueur qui tape la commande ;)

Hors ligne Xoss

  • Xoss | Alexandre Bocquet
  • *
  • Grand Banditisme
  • Xoss | Alexandre Bocquet
  • Messages: 847
    • Voir le profil
    • UnderWeb
Re : Freeze la voiture selon un temps
« Réponse #8 le: 05 Octobre 2009, 07:26:36 »
Merci beaucoup   :happy
Alexandre Bocquet Xoss

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #9 le: 05 Octobre 2009, 08:16:00 »
petite erreur Mr Fredo le playerid est un decimal non pas un integer donc a la place de ca


SetTimerEx("Timer",TEMPS EN MS,0,"i",playerid);

C'est ca:
SetTimerEx("Timer",TEMPS EN MS,0,"d",playerid);



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne rafffel

  • *
  • Bandit
  • Messages: 493
    • Voir le profil
Re : Re : Freeze la voiture selon un temps
« Réponse #10 le: 05 Octobre 2009, 13:01:19 »
petite erreur Mr Fredo le playerid est un decimal non pas un integer donc a la place de ca


SetTimerEx("Timer",TEMPS EN MS,0,"i",playerid);

C'est ca:
SetTimerEx("Timer",TEMPS EN MS,0,"d",playerid);

Le paramètre qui est passé est l'id du joueur je en voit pas pourquoi il faudrai un decimal pour sa . un integer fera largement l'affaire.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #11 le: 05 Octobre 2009, 13:57:01 »
Oui mais l' id d' un joueur c' est bien un chiffre ??!
Donc c' est un décimal que l' ont met

Preuve:

%b Inserts a number at this position in binary radix
%c Inserts a single character.
%d Inserts an integer (whole) number
%f Inserts a floating point number.
%i Inserts an integer.
%s Inserts a string.
%x Inserts a number in hexadecimal notation.
%% Inserts the literal '%'



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne rafffel

  • *
  • Bandit
  • Messages: 493
    • Voir le profil
Re : Freeze la voiture selon un temps
« Réponse #12 le: 05 Octobre 2009, 14:46:37 »
DECIMAL(precision,scale)    variable    precision = 1 à 15 (digits) et scale 1 à 15 (decimals incluses)    Exemple : DECIMAL(10,3) autorisera un nombre de type ppppppp.sss
DOUBLE PRECISION     &nbsp; &nbsp; &nbsp; &nbsp;64 bits    1.7x10-308 à 1.7x10308     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;notation scientifique, 15 digits de précision
FLOAT     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;32 bits    3.4x10-38 à 3.4x1038 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;    simple précision, 7 digits
NUMERIC(precision,scale)    variable    precision = 1 à 15 (digits) et scale 1 à 15 (decimals incluses)    Idem DECIMAL
INTEGER     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;32 bits    -2.147.483.648 à 2.147.483.647     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;entier long signé
SMALLINT     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;16 bits    -32 768 à 32 767     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;entier court signé

extrait de cette page : http://interbase.developpez.com/ib-datatype/

enfaite un integer est un nombre entier allant de -2.147.483.648 à 2.147.483.647
et un decimal et un nombre a virgule .
donc pour moi un integer convient mieux qu'un decimal bien que le decimal convient aussi .

Fin après je pense que c'est aussi valable en pawn .

Quoique en voyant qu'il mette que %d c'est un entier .

Donc j'avoue que je suis un peu perdu :s
« Modifié: 05 Octobre 2009, 14:50:18 par rafffel »

Hors ligne Xoss

  • Xoss | Alexandre Bocquet
  • *
  • Grand Banditisme
  • Xoss | Alexandre Bocquet
  • Messages: 847
    • Voir le profil
    • UnderWeb
Re : Freeze la voiture selon un temps
« Réponse #13 le: 05 Octobre 2009, 22:14:38 »
Euh moi aussi mdr
Alexandre Bocquet Xoss

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Re : Freeze la voiture selon un temps
« Réponse #14 le: 05 Octobre 2009, 23:23:35 »
DECIMAL(precision,scale)    variable    precision = 1 à 15 (digits) et scale 1 à 15 (decimals incluses)    Exemple : DECIMAL(10,3) autorisera un nombre de type ppppppp.sss
DOUBLE PRECISION     &nbsp; &nbsp;64 bits    1.7x10-308 à 1.7x10308     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;notation scientifique, 15 digits de précision
FLOAT     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;32 bits    3.4x10-38 à 3.4x1038 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;    simple précision, 7 digits
NUMERIC(precision,scale)    variable    precision = 1 à 15 (digits) et scale 1 à 15 (decimals incluses)    Idem DECIMAL
INTEGER     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;32 bits    -2.147.483.648 à 2.147.483.647     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;entier long signé
SMALLINT     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;16 bits    -32 768 à 32 767     &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;entier court signé

extrait de cette page : http://interbase.developpez.com/ib-datatype/

enfaite un integer est un nombre entier allant de -2.147.483.648 à 2.147.483.647
et un decimal et un nombre a virgule .
donc pour moi un integer convient mieux qu'un decimal bien que le decimal convient aussi .

Fin après je pense que c'est aussi valable en pawn .

Quoique en voyant qu'il mette que %d c'est un entier .

Donc j'avoue que je suis un peu perdu :s

je ne voit pas ou tu veut en venir enfaite


pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici