• 06 Juin 2026, 06:00:24


Auteur Sujet: [resolu]Probleme de vie  (Lu 1199 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne sheppertizer

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
[resolu]Probleme de vie
« le: 20 Septembre 2009, 20:03:47 »
Bonsoir a tous

Voila depuis quelque jour je traduit un gamemode samp qui est le SA RP , jusque la tout va bien sauf

que je me suis apercu d un petit souci au niveau de la vie elle ne decend pas comme sur d autre script rp (meme d origine elle ne decend pas)

Debutant sur le sript samp je ne sais pas trop ou regarde. Donc puis je reparer cet ereur ou existe t il un fs

pour cet fonction

j ai pas mal chercher sur samp.com mais pas trouver ce que je desirer

merci d avence
« Modifié: 21 Septembre 2009, 07:17:58 par sheppertizer »

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : Probleme de vie
« Réponse #1 le: 20 Septembre 2009, 20:19:43 »
Essaye de mettre un timer qui dimunie la vie chaque X secondes c'est facile a codé ..

++
FS'

Hors ligne sheppertizer

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Probleme de vie
« Réponse #2 le: 20 Septembre 2009, 20:33:51 »
c est justement ce que j essaye de faire mais je ne suis pas tres bon voir meme horrible

Jai trouver ce petit bout de code mais gros probleme a la compilation

SetTimer("SetPHealthTimer", 1000*60*2, true);

forward SetPHealthTimer();
public SetPHealthTimer()
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
static Float:health;
GetPlayerHealth(i, health);
SetPlayerHealth(i, health - floatdiv(health, 100.00));
}
}
}

mais jai pas mal d ereur

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Probleme de vie
« Réponse #3 le: 20 Septembre 2009, 20:53:21 »
essaie comme ceci

forward Life(playerid);
dans le ongamemmodeinit

SetTimer ("Life", 2500, 1);
plus bas dans ton script

public Life(playerid)
{
   static Float: Psante;
   Psante = GetPlayerHealth(playerid,Psante);
   SetPlayerHealth(playerid, Psante - 1);
   return 1;
}
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

Hors ligne sheppertizer

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Probleme de vie
« Réponse #4 le: 20 Septembre 2009, 23:19:36 »
ton code en lui meme fonctione mais il m enleve direct toute la vie des que je meconnecte

moi ce que je souhaiterai faire c de diminuer au fur est a mesure que le temps passe

exemple si en 1 h on ne se nourit pas il ne reste que 1pv




Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : Probleme de vie
« Réponse #5 le: 20 Septembre 2009, 23:31:50 »
Déjà tranforme une heure en milliseconde et insère la a la place de 2500 ici :
SetTimer ("Life", 2500, 1);
Puis voila le public :
public Life(playerid)
{
   SetPlayerHealth(playerid, 1);
   return 1;
}


Je suis pas sur a 100% de ce code mais essaye quand même

++
FS'

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Probleme de vie
« Réponse #6 le: 20 Septembre 2009, 23:40:15 »
Salut,

vous devriez ajouter une loop dans la fonction et éliminer le paramètre playerid

++Sim++





Hors ligne sheppertizer

  • *
  • Nouveau
  • Messages: 21
    • Voir le profil
Re : Probleme de vie
« Réponse #7 le: 21 Septembre 2009, 00:56:03 »
c est bon mon probleme est resolu je n avais pas fait attention a une option du Gm

cela dit j ai quand meme developper un petit fs tout simple qui ma aider

#include <a_samp>
#define FILTERSCRIPT

forward Life(playerid);


public OnGameModeInit()
{
    print("\n======================================");
print("*       Life Systheme RP loaded        *");
print("======================================\n");
    SetTimer ("Life", 25000, 1);
}

public Life(playerid)
{
   new Float: Psante;
   if(Psante <= 100.0)
{
   GetPlayerHealth(playerid,Psante);
   Psante -= 1;
   SetPlayerHealth(playerid, Psante );
}
   else
{
SetPlayerHealth(playerid, 100.0);
}
   return 1;
}

public OnFilterScriptExit()
{
    print("\n======================================");
print("*      Life Systheme RP unloaded       *");
print("======================================\n");
}

je lai tester sur mon gm il rentre en conflit mais sur un gm d origine il fonctionne nikel
si j arrive a corriger les conflits  je le metrais en fs pour tout le monde ^^

un grand merci a toutes  les personnes qui mon aider et repondu  :P

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [resolu]Probleme de vie
« Réponse #8 le: 21 Septembre 2009, 07:49:22 »
normalement ton truc ne doit fonctionner qu' avec le gars qui à l' ID 0



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

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [resolu]Probleme de vie
« Réponse #9 le: 21 Septembre 2009, 08:02:20 »
J'confirme ton code ne fonctionera que sur l'id 0 pour qu'il fonctione sur tout les joueur retire le parametre playerid de life et place le contenu de la callback life dans une boucle qui parcours les joueur connecte

Se qui donnerai qqch comme ceci:

Code: (pawn) [Sélectionner]
public Life()
{
   new Float: Psante;
   for(new i=0;i<MAX_PLAYERS;i++)
   {
        if(IsPlayerConnected(i))
        {
               GetPlayerHealth(i,Psante);
               SetPlayerHealth(i, Psante-1.0);
        }
    }
}

ps: J'ai recodé le contenu de la callback car je trouve certaine chose incoherente et inutile ...