• 07 Juillet 2025, 04:31:06


Auteur Sujet: Des level qui me pose probleme  (Lu 2838 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Des level qui me pose probleme
« le: 08 Septembre 2007, 13:06:14 »
Bonjour a tous    :king

J'ai fait réssament un "sftdm" et j'ai aussi eu l'idée de crée des niveaux de recherche selon le score des joueurs mais je bloque.
J'ai déja éssayé de faire un code que j'ai ajouté dans public OnPlayerDeath(playerid, killerid, reason)  {
Voici le petit code que j'ai ajouté:

if(GetPlayerScore(playerid) >= 10) {
SetPlayerWantedLevel(playerid, 1);
SendClientMessage(playerid, COLOR_YELLOW,"Félicitation tu a ateint le niveau 1: Votre niveau = 1/6");
}

normalement le code dit " si je prend le score du joueur qui et égale ou supérieur a 10 il reçoit un niveau de recherche = 1. (dit le moi si c'est pas sa).
Je vous en remerci d'avance @++++ (PS: désolé pour les faute).

 :jesors
« Modifié: 08 Septembre 2007, 13:21:56 par [S.A.T.K]dadou »


Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Des level qui me pose probleme
« Réponse #1 le: 08 Septembre 2007, 13:29:48 »
Tu as fais GetPlayerScore alors qu'il fallais faire SetPlayerScore, Voila le code corrigé :

if(SetPlayerScore(playerid) >= 10) {
SetPlayerWantedLevel(playerid, 1);
SendClientMessage(playerid, COLOR_YELLOW,"Félicitation tu a ateint le niveau 1: Votre niveau = 1/6");
}

Bonne idée ce script  :)

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Des level qui me pose probleme
« Réponse #2 le: 08 Septembre 2007, 14:08:40 »
Re Salut  :-\

Dit moi tu est sur que c'est SetPlayerScore car a la base SetPlayerScore c'est pour donne un score a un joueur
tandi que moi je veut prendre le score du joueur est dire que si sont score est égale ou supérieur a 10 il a le niveau de recherche = 1.
Conclusion si je met:

if(SetPlayerScore(playerid) >= 10) { (car la ya que playerid et ya pas score)

j'aurais un warning car il s'utilise SetPlayerScore(playerid, score);
et mon warning sera:

: warning 202: number of arguments does not match definition.
Donc je pensse que se n'est pas sa mais en tout cas merci de ton aide unbanghetto   :happy

@+++ tout le monde


Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Des level qui me pose probleme
« Réponse #3 le: 08 Septembre 2007, 14:16:47 »
Peutêtre bien lol, Tu vas devoir te débrouiller tout seul  :P

Edit : J'ai tester il n'y a aucun warrning.
« Modifié: 08 Septembre 2007, 14:19:05 par urbanghetto »

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Des level qui me pose probleme
« Réponse #4 le: 08 Septembre 2007, 23:15:33 »
Dadou : Ton code est correct, je l'ai testé (avec 2 au lieu de 10 mais j'ai bien le message et l'étoile)

Urbanghetto : Tu n'as pas de warning quand tu appelles SetPlayerScore avec un seul paramètre ? Je te conseille de vérifier la version de ton compilateur PAWN. Ce devrait être 3.2.3664

++
Syg
Courtesy of GtaManiac

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Des level qui me pose probleme
« Réponse #5 le: 09 Septembre 2007, 13:08:24 »
Re salut a vous   :king

Syg j'ai essaye avec 2 mais chez moi quand le joueur arrive a 2 point il ce passe rien  :blink
Voici mon code:

if(GetPlayerScore(playerid) >= 2) {
SetPlayerWantedLevel(playerid, 1);
SendClientMessage(playerid, COLOR_YELLOW,"Félicitation tu a ateint le niveau 1: Votre niveau = 1/6");
}

Donc si tu est arrivé a voir le message et l'étoile bah je suis completement perdu car j'utilise le meme code est sa marche pas.
Je vais posté l'integralité de la partie public OnPlayerDeath(playerid, killerid, reason) sur le pasebin car ya surment
une autre érreur allieur mais je voit vraiment pas ou.    ;D

Voici l'intégralité de la partie OnPlayerDeath  =  http://pastebin.gtaonline.fr/pastebin.php?show=50

En tout cas merci pour votre aide +++     :jesors


 
« Modifié: 09 Septembre 2007, 13:10:23 par [S.A.T.K]dadou »


Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Des level qui me pose probleme
« Réponse #6 le: 09 Septembre 2007, 22:30:10 »
Oui, c'est normal, le score est attribué au tueur (killerid).
Donc quand le tueur arrive à 2 points et bien, il ne se passe rien parce que .... ce n'est pas lui qui est mort !!
OnPlayerDeath n'est appelée que pour un joueur qui meurt et le tueur n'est pas celui qui meurt.

Donc, pour corriger ton problème, il suffit de rajouter ce bloc :

Code: (cpp) [Sélectionner]
if(GetPlayerScore(killerid) >= 2)
{
   SetPlayerWantedLevel(killerid, 1);
   SendClientMessage(killerid, COLOR_YELLOW,"Félicitation tu a ateint le niveau 1: Votre niveau = 1/6");
}
Juste après les SetPlayerScore que tu fais dans OnPlayerDeath et de virer les les autres blocs qui portent sur playerid.

Je te laisse essayer, j'ai corriger ton code, je le garde dans un coin et je le mettrais sur le pastebin si tu ne t'en sors pas.
Un conseil : Mets en forme ton code, tu t'y retrouveras plus facilement.

++
Syg
Courtesy of GtaManiac

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Des level qui me pose probleme
« Réponse #7 le: 10 Septembre 2007, 00:40:02 »
En effet si je mais playerid au lieu de killerid sa marcheras pas très bien
ceci dit merci de ton aide Syg je vait testé tout sa demain car la je peut pas testé
sa tout seul. Je ferait une edit sur ce message demain pour te confirmé tout sa. (si sa marche ou non)

Voila +++ tout le monde et merci encore syg pour ton aide.

 :jesors


Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Des level qui me pose probleme
« Réponse #8 le: 11 Septembre 2007, 13:43:05 »
Re salut  :king

Je suis désolé pour le double poste.
Syg j'ai éssaye mais sa na fonctionne toujour pas  ;D Je te passe la modif sur le pastebin.

Modif = http://pastebin.gtaonline.fr/pastebin.php?show=53

Donc j'espere que tu poura m'aide lorsque tu aura le temps si tu trouve pas toi non plus
je pensse que je laisserai tombé pour les niveaux Voila  :'(

+++     :jesors


Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Des level qui me pose probleme
« Réponse #9 le: 11 Septembre 2007, 16:26:38 »
Essaye d'ajouter :

GetPlayerScore(killerid);

Dans Valide Kill.

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Des level qui me pose probleme
« Réponse #10 le: 11 Septembre 2007, 21:46:58 »
Salut.

NB : Les numéros de lignes que je cite correspondent au script qui est dans le pastebin (http://pastebin.gtaonline.fr/pastebin.php?show=53).

Si on regarde ce script, aux lignes 27 et 70, tu décrementes le score du killerid.
Ainsi, en partant d'un score égale à 0 pour un joueur qui se connecte, il faudrat que le killerid tue 3 joueurs de l'autre équipe (score = 3) puis un joueur de son équipe (teamkill donc score = 3 - 1 = 2) pour que ton test soit vérifié et que le killerid aie son étoile.

Donc si tu veux donner des étoiles à un joueur qui fait du teamkilling, je pense qu'il faut t'y prendre autrement.
Par exemple, tu stockes dans un tableau global (déclaré en haut du script) le nombre de teamkill pour chaque joueur et quand ce nombre atteint 2, tu lui ajoutes une étoile.

++
Syg
Courtesy of GtaManiac

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Des level qui me pose probleme
« Réponse #11 le: 12 Septembre 2007, 17:44:54 »
Re  :king

Je vien juste de voir ton poste mais tu m'explique claiment que les étoiles reviendrait au killerid pour les team kill ?
par ex un groove qui tue un groove et bien le groove (killerid) aurait une étoile ?
En fait c'est pas sa que je voulait faire je t'explique (attention de dévelope ^^)

Dans mon scritp j'ai 9 équipe que voici ! :
#define TEAM_OUVRIER 0
#define TEAM_SERVICE.SECRET 1
#define TEAM_RACER 2
#define TEAM_YAKUZA 3
#define TEAM_MILITAIRE 4
#define TEAM_MAFIA.RUSSE 5
#define TEAM_AMBULANCIER 6
#define TEAM_SWAT 7
#define TEAM_PILOTE 8

J'avai penssé faire des niveau c'est par exemple si un Groove tue 2 fois un advaisaire (peut importe les quels) (scores = 2)
un étoile aparait pour ce fameut groove sur sont écran est un message lui disant "tu a atein le niveau 2" bla bla bla.
Ensuite tu ma parlé d'un tableau pour définir le nombre de kill ce n'est pas béte mais je voit pas comment faire, je sais me debroullié
pour certain truc mais faire un tableau global je pense pas y arrivé mais bon on ma toujour dit essaye quand meme alord donc
j'ai essaye de faire un tableau de ce genre:

#define MAX_LEVEL 6

new LevelSetting[MAX_LEVEL] {

  LEVEL_1 =GetPlayerScore(playerid) == 5,
  LEVEL_2 =GetPlayerScore(playerid) == 10,
  LEVEL_3 =GetPlayerScore(playerid) == 15,
  LEVEL_4 =GetPlayerScore(playerid) == 20,
  LEVEL_5 =GetPlayerScore(playerid) == 25,
  LEVEL_1 =GetPlayerScore(playerid) == 30
 
};

EDITION par Dadou: Bon je vien de teste sa avait l'air de marche donc je pensse que sa Ira si besoin je referait une Edit Merci beaucoup a bientot


Mais bon ceci n'a pas l'air de fonctionné.

Voila en gros le projet level  :P mais je le redit et je me répete mais merci pour votre aide!
A ++++

 :jesors
« Modifié: 12 Septembre 2007, 18:07:54 par [S.A.T.K]dadou »