GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: .:: Miguel .:: le 01 Juin 2011, 13:23:35

Titre: Demande aide pour plusieur fonction
Posté par: .:: Miguel .:: le 01 Juin 2011, 13:23:35
Salut,
J'ai besoin d'aide pour plusieure fonction

J'aimerait que quand l'admin et en /dutyon pandant 3min sa le met en /dutyoff tous seul.

La commande :
    if (strcmp("/dutyon", cmdtext, true,7) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
        SetPlayerHealth(playerid,9999);
        SetPlayerArmour(playerid,9999);
        SetPlayerSkin(playerid,167);
        GivePlayerWeapon(playerid,24,99999);
        SendClientMessageToAll(ROUGE,"[GTW]Un administrateur et en service!!");
        SetPlayerColor(playerid,0xF70000);
}
  return 1;
  }
 
 
    if (strcmp("/dutyoff", cmdtext, true,8) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
        SetPlayerHealth(playerid,100);
        SetPlayerArmour(playerid,100);
        ResetPlayerWeapons(playerid);
        SetPlayerColor(playerid,BLANC);
}
  return 1;
  }

Quand on /dutyoff sa remet le skin d'origine.Voilà ses tous se que j'ai besoin d'aide.

Merci d'avance
Titre: Re : Demande aide pour plusieur fonction
Posté par: vincesamp le 01 Juin 2011, 23:10:41
A mon avis, tu dois utiliser un timer.
Titre: Re : Demande aide pour plusieur fonction
Posté par: .:: Miguel .:: le 01 Juin 2011, 23:23:10
Sa je le sais :P Mais "truc là je sais pas quoi mettre"
Titre: Re : Demande aide pour plusieur fonction
Posté par: Dark4ng3L le 01 Juin 2011, 23:31:27
Salut,
J'ai besoin d'aide pour plusieure fonction

J'aimerait que quand l'admin et en /dutyon pandant 3min sa le met en /dutyoff tous seul.

La commande :
    if (strcmp("/dutyon", cmdtext, true,7) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
        SetPlayerHealth(playerid,9999);
        SetPlayerArmour(playerid,9999);
        SetPlayerSkin(playerid,167);
        GivePlayerWeapon(playerid,24,99999);
        SendClientMessageToAll(ROUGE,"[GTW]Un administrateur et en service!!");
        SetPlayerColor(playerid,0xF70000);
}
  return 1;
  }
 
 
    if (strcmp("/dutyoff", cmdtext, true,8) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
        SetPlayerHealth(playerid,100);
        SetPlayerArmour(playerid,100);
        ResetPlayerWeapons(playerid);
        SetPlayerColor(playerid,BLANC);
}
  return 1;
  }

Quand on /dutyoff sa remet le skin d'origine.Voilà ses tous se que j'ai besoin d'aide.

Merci d'avance

Tu vas créer une commande LastSkin[MAX_PLAYERS] pour stoker l'id de ton skin, puis tu créer une timer, qui s'execute après 3 min, indiquant la fin de ton duty
voici le code:
   
new LastSkin[MAX_PLAYERS];
if (strcmp("/dutyon", cmdtext, true,7) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
        LastSkin[playerid] = GetPlayerSkin(playerid);
        SetPlayerHealth(playerid,9999);
        SetPlayerArmour(playerid,9999);
        SetPlayerSkin(playerid,167);
        GivePlayerWeapon(playerid,24,99999);
        SendClientMessageToAll(ROUGE,"[GTW]Un administrateur et en service!!");
        SetPlayerColor(playerid,0xF70000);
SetTimerEx("DutyOff", 180000, false, "i", playerid);
}
  return 1;
  }
 
 
    if (strcmp("/dutyoff", cmdtext, true,8) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
        SetPlayerHealth(playerid,100);
        SetPlayerArmour(playerid,100);
        ResetPlayerWeapons(playerid);
        SetPlayerColor(playerid,BLANC);
        SetPlayerSkin(playerid,LastSkin[playerid]);
}
  return 1;
  }
forward DutyOff(playerid);
public DutyOff(playerid){
        SetPlayerHealth(playerid,100);
        SetPlayerArmour(playerid,100);
        ResetPlayerWeapons(playerid);
        SetPlayerColor(playerid,BLANC);
        SetPlayerSkin(playerid,LastSkin[playerid]);
}

Voila désolé pour l'indentation mais sur le fofo c'est pas facile :P
Titre: Re : Demande aide pour plusieur fonction
Posté par: .:: Miguel .:: le 02 Juin 2011, 00:24:26
Je te remercie vraiemnt!!!

EDIT : Sa me met des erreur avec SetPlayerSkin(playerid,LastSkin[playerid]);
Titre: Re : Demande aide pour plusieur fonction
Posté par: Dark4ng3L le 02 Juin 2011, 00:40:12
il te donne quel erreur ?
Titre: Re : Demande aide pour plusieur fonction
Posté par: .:: Miguel .:: le 02 Juin 2011, 00:56:55
ah nah pas d'arreur je avait mal mis le scripte^^

PS : Sa me remet le skin 0 à chaque fois
Titre: Re : Demande aide pour plusieur fonction
Posté par: Dark4ng3L le 02 Juin 2011, 01:44:02
C'est pas normal ca :o x)
euh la je vais au lit, je te regarde ca demain ;) si quelqu'un ne le fais pas avant moi ^^
Titre: Re : Re : Demande aide pour plusieur fonction
Posté par: .:: Miguel .:: le 02 Juin 2011, 01:49:40
C'est pas normal ca :o x)
euh la je vais au lit, je te regarde ca demain ;) si quelqu'un ne le fais pas avant moi ^^

Mdr
Titre: Re : Demande aide pour plusieur fonction
Posté par: Ssk le 02 Juin 2011, 10:38:30
.:: Miguel .::, il faut que tu mette le new LastSkins[MAX_PLAYERS] comme variable global, donc en haut du script, et non pas dans OnPlayerCommandText
Titre: Re : Demande aide pour plusieur fonction
Posté par: .:: Miguel .:: le 02 Juin 2011, 13:26:38
déjà fait

En essayant de faire la cmds /ao j'ai un bug quand je faait /ao sa dit l'administrateur %s dit : (Ici on peut rien écrire car sinan sa dit cmds incorette)
     if (strcmp("/ao", cmdtext, true,4) == 0)
{
if(PlayerInfo[playerid][pAdminLevel] > 1)
        {
new Tmpp[256];
Tmpp = strtok(cmdtext, Idx);
        new pname[MAX_PLAYER_NAME], string[22 + MAX_PLAYER_NAME];
        GetPlayerName(playerid, pname, sizeof(pname));
        format(string, sizeof(string), "L'administrateur %s : %s ", pname,cmdtext[4]);
        SendClientMessageToAll(0x00CCEB, string);
  return 1;
  }
}