GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Blaster le 09 Mars 2008, 11:32:24

Titre: Problème SetTimer
Posté par: Blaster le 09 Mars 2008, 11:32:24
Bonjours :)

Donc je voulais faire un mode god pour mon serveur (vie infini + repair infini dans un véhicule)
J'arrive bien a mettre la vie infini, mais quand j'ai taper /god et ensuite je vais dans un véhicule et bien il ne se répare pas automatiquement quand je me prend un choc.
Donc j'ai eut l'idée de mettre un SetTimer toutes les secondes (c'est bien sa ? :D), j'ai regarder quelques tutos pour voir comment c'étais construit mais finalement je n'est toujours pas réussi.
Je répète pour ceux qui n'aurais pas compris :D
en gros je voudrais que quand je trappe /god j'ai la vie infini (je l'est déja :)) et la réparation automatiquement sans avoir besoin de retaper /god

Citer
    if(strcmp(cmdtext,"/god", true)== 0)
{
SendClientMessage(playerid,COLOR_RED,"God mode activé.");
SetPlayerHealth(playerid,999999);
if (IsPlayerInAnyVehicle(playerid)){
SetVehicleHealth(GetPlayerVehicleID(playerid), 999999);
}
return 1;
}

Je veut juste que l'on m'explique la démarche a faire :)
Merci d'avance :)
Titre: Re : Problème SetTimer
Posté par: NatiVe™ le 09 Mars 2008, 11:37:46
Salut Blaster,

Veut tu un moyen pour desactiver le GodMode ou tu veut qu'il soit actif tout le temp ? (comme dans la plus part des serveur)

NV.

Titre: Re : Problème SetTimer
Posté par: Blaster le 09 Mars 2008, 11:45:14
Justement je voulais le mettre dans 'public OnPlayerConnect' pour qu'il soit toujours actif mais j'aurais essayé de me débrouiller sinon :)
Titre: Re : Problème SetTimer
Posté par: NatiVe™ le 09 Mars 2008, 12:22:35
Alors déja !

On va pas le mettre dans OnPlayerConnect mais dans OnGameModeInit le timer !

D'abbord tu créer la forward

forward GodMode(playerid);
Ensuite dans OnGameModeInit

public OnGameModeInit(){
SetTimer("GodMode", 1000, 1);
return 1;
}

En bas de ton GM, tu ajoute

public GodMode(playerid)
{
for (new i=0 ; i<MAX_PLAYERS ; i++)// Pour tout les players en même temps
{
if (IsPlayerConnected (i))
{
SetPlayerHealth(i, 100);// Tu leurs donne 100 de vie
if(IsPlayerInAnyVehicle(playerid))// Si le player est dans un vehicule
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);// TU donne 1000 de vie aux vehicule (pas la peine de metre 9999999999)
}
}
}
return 1;
}

Et voila :)

J'ai pas tester encore, dit moi s'il y a des erreurs !

NV.

Titre: Re : Problème SetTimer
Posté par: Blaster le 09 Mars 2008, 12:47:41
Alors il y avait 2 erreurs :)

Citer
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\Stunts.pwn(668) : error 017: undefined symbol "playerid"
C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\Stunts.pwn(670) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

mais en faites j'ai réussi a les corriger car tu avait juste oublier de mettre 'playerid'

Citer
public GodMode()

Citer
public GodMode(playerid)

C'est une erreurs de débutant :D :lol:

En tout cas Merci a toi, tu m'a bien aide :)
Titre: Re : Problème SetTimer
Posté par: NatiVe™ le 09 Mars 2008, 12:52:11
Une erreur de debutant  :ohmy  :ohmy

Un oublie c'est tout, je suis pas debutant moi !

NV.

Titre: Re : Problème SetTimer
Posté par: Blaster le 09 Mars 2008, 13:07:05
lol je dissais pour te charrier.
Je sais bien que tu en est pas un ! :)

EDIT: en éssayant plussieurs, j'ai remarquer que le repair pour els véhicules se fessait automatiquement que pour l'id 0 et pas les autres mais la vie marche pour tous le monde !
Titre: Re : Problème SetTimer
Posté par: NatiVe™ le 09 Mars 2008, 13:46:11
A la place de

SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
Mais ca

SetVehicleHealth(GetPlayerVehicleID(i), 1000);
Et dit moi !

NV.

Titre: Re : Problème SetTimer
Posté par: Blaster le 09 Mars 2008, 13:58:40
C'est bon sa marche :)
Grand Merci a toi :)
Sinon quand on tombe assez violent sur le sol on meurs. Serrait-il possible de mettre le timer a moins d'une seconde ? pour que toutes les demi seconde on envoie de la vie ?
Titre: Re : Problème SetTimer
Posté par: NatiVe™ le 09 Mars 2008, 14:21:04
Oui, moin tu met de temps au timer, moin ta de chance de mourir !

NV.

Titre: Re : Problème SetTimer
Posté par: [StAfF]MaN le 09 Mars 2008, 14:56:35
Si il met 0 sa fait quoi ?? (curieux ^^ )
Titre: Re : Problème SetTimer
Posté par: NatiVe™ le 09 Mars 2008, 15:02:56
Je n'ai jamais essayer !

NV.

Titre: Re : Problème SetTimer
Posté par: Eloctro le 09 Mars 2008, 19:11:56
Je croi soit ton serveur bug ou rien ne passe car 0 secondes = rien .
Titre: Re : Problème SetTimer
Posté par: [StAfF]MaN le 09 Mars 2008, 19:37:15
Ok merci, je pensais que tu serais invincible tout le temps ^^ ;)