• 08 Juin 2024, 21:41:18


Auteur Sujet: Le joueur ne perd pas de vie  (Lu 1381 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Tersatros

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Le joueur ne perd pas de vie
« le: 26 Janvier 2014, 18:19:07 »
Bonsoir tous le monde  :smile: !

Mon soucis est que depuis que j'ai ajouté les callbacks "OnPlayerTakeDamage" & "OnPlayerGiveDamage", lorsque je tire avec une arme ou je frappe la personne avec les poings, sa vie ne descend pas. J'ai utilisé les callbacks précèdent pour faire un système de "HitMarker" qui fonctionne bien mais le seul soucis reste la vie qui ne descend pas lorsque je tire/frappe le joueur. Je ne souhaite pas pour l'instant changer les dégâts des armes, je veux juste garder leur dégâts d'origine.

(Les lignes du codes au cas-où)

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
 new name[MAX_PLAYERS];
 
 if(issuerid != INVALID_PLAYER_ID)
  {
   TextDrawShowForPlayer(playerid, HitMarker1);
   TextDrawShowForPlayer(playerid, HitMarker2);
   PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
   name[playerid] = SetTimerEx("TimeHit",500,false,"i",playerid);
   return 1;
  }
 return 0;
}

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
  PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
}

Merci de votre aide !  :wink:

Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Le joueur ne perd pas de vie
« Réponse #1 le: 26 Janvier 2014, 18:31:29 »
Dans OnPlayerGiveDamage, retourne 1
Si tu as regardé la page en français, elle comporte une erreur: elle dit que la callback ne doit pas retourner quelque chose
C'est une erreur de traduction et je m'en excuse, je vais de ce pas corriger ça ^^

[/url]

Hors ligne Tersatros

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Re : Le joueur ne perd pas de vie
« Réponse #2 le: 26 Janvier 2014, 18:44:33 »
Merci pour cette réponse rapide :D !

Par contre, rien ne change, même avec le return 1; le joueur ne perd toujours pas de vie !
Je continue à chercher de mon côté aussi.


Hors ligne Kiloutre

  • Nolife, nerd et geek passionné d'Ordinatique ! ^^
  • *
  • Grand Banditisme
  • Messages: 567
    • Voir le profil
Re : Le joueur ne perd pas de vie
« Réponse #3 le: 26 Janvier 2014, 21:20:00 »
Ah ? Mince alors
Je suis sûr que ça vient des returns, essaie (pour les deux callback) de :
  • Retourner 1
  • Retourner 0
  • Ne rien retourner

Vérifie aussi dans les filterscript, peut-être que ça joue un peu la dedans
Après prends le gm de base et essaie de prendre leur OnPlayerTakeDamage/OnPlayerGiveDamage
Si ça marche pas après ça c'est que y'a un gros problème x)

[/url]

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Le joueur ne perd pas de vie
« Réponse #4 le: 28 Janvier 2014, 18:58:51 »
OnPlayerGiveDamage ne retourne pas de valeur dans ton code, ajoute un:

return 1;
Enfin, OnPlayerTakeDamage doit retourner 1 pour qu'il soit utilisable par les filterscripts.

public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) {
    new name[MAX_PLAYERS];
   
    if (issuerid != INVALID_PLAYER_ID) {
        TextDrawShowForPlayer(playerid, HitMarker1);
        TextDrawShowForPlayer(playerid, HitMarker2);
        PlayerPlaySound(playerid, 17802, 0.0, 0.0, 0.0);
       
        name[playerid] = SetTimerEx("TimeHit", 500, false,"i", playerid);
    }
   
    return 1;
}

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid) {
    PlayerPlaySound(playerid, 17802, 0.0, 0.0, 0.0);
   
    return 1;
}

Hors ligne Tersatros

  • *
  • Criminel
  • Messages: 37
    • Voir le profil
Re : Le joueur ne perd pas de vie
« Réponse #5 le: 28 Janvier 2014, 19:29:35 »
Merci ça fonctionne !  :biggrin:
Au plaisir, bonne soirée !