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
-
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
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 :)
-
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.
-
Justement je voulais le mettre dans 'public OnPlayerConnect' pour qu'il soit toujours actif mais j'aurais essayé de me débrouiller sinon :)
-
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.
-
Alors il y avait 2 erreurs :)
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'
public GodMode()
public GodMode(playerid)
C'est une erreurs de débutant :D :lol:
En tout cas Merci a toi, tu m'a bien aide :)
-
Une erreur de debutant :ohmy :ohmy
Un oublie c'est tout, je suis pas debutant moi !
NV.
-
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 !
-
A la place de
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
Mais ca
SetVehicleHealth(GetPlayerVehicleID(i), 1000);
Et dit moi !
NV.
-
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 ?
-
Oui, moin tu met de temps au timer, moin ta de chance de mourir !
NV.
-
Si il met 0 sa fait quoi ?? (curieux ^^ )
-
Je n'ai jamais essayer !
NV.
-
Je croi soit ton serveur bug ou rien ne passe car 0 secondes = rien .
-
Ok merci, je pensais que tu serais invincible tout le temps ^^ ;)