GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: John_Montavedro le 30 Octobre 2010, 11:13:07

Titre: Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 11:13:07
Bonjour :) Je viens juste de commencer à me lancer dans le "else if" et "else" :
J'ai fais ce code :

if(strcmp(cmdtext,"/bombe",true) == 0)//militaires
{
  if(IsPlayerInRangeOfPoint(playerid,7.0,142.1529,1864.2565,17.7370)){
    SetPlayerInterior(playerid, 0);
    CreateExplosion(142.1529,1864.2565,17.7370, 9, 500.0);
  SendClientMessage(playerid, couleur_dire, "**** Tu as allumé la bombe! ****");// on indique au joueur qu'il a allumé la bombe
  format(string, sizeof(string), "La bombe dans le QG des militaires a explosé!",(playerid));
SendClientMessageToAll(info, string);
}
else if(GetPlayerTeam(playerid) 1) // Ligne 383
{
SendClientMessage(playerid, couleur_alert, "Impossible d'allumer la bombe de ton camp!");
}

Malheureusement, il m'indique ça comme erreurs :

C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\new.pwn(383) : error 001: expected token: ")", but found "-integer value-"
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\new.pwn(383) : warning 215: expression has no effect
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\new.pwn(383) : error 001: expected token: ";", but found ")"
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\new.pwn(383) : error 029: invalid expression, assumed zero
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\new.pwn(383) : fatal error 107: too many error messages on one line

Si vous pourriez m'aider.. merci ;)

Titre: Re : Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 11:34:19
Merci Dizzy sauf, j'ai 26 erreurs soit CalBack fermé.. mais pourtant à vu d'oeuil :o
Titre: Re : Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 11:43:44
En faite, sa fait toujours exploser la bombe... même si le joueur est dans son camp.. Je sais pourquoi c'est avec IsPlayerRangeOfPoint.. mais comment le mettre si c'est seulement avec "if" et "else if" ?
Titre: Re : Condition ne marche pas :(
Posté par: Ssk le 30 Octobre 2010, 11:47:28
if(strcmp(cmdtext,"/bombe",true) == 0)
{
if(GetPlayerTeam(playerid) == 1) // Tu doit d'abord tester si le joueur est dans la team 1
{
SendClientMessage(playerid, couleur_alert, "Impossible d'allumer la bombe de ton camp!"); // S'il est dedans alors on lui envoie le message
}
  else if(IsPlayerInRangeOfPoint(playerid,7.0,142.1529,1864.2565,17.7370)) // Sinon s'il n'est pas dans la team 1 et qu'il est à 7mètres de cette position
{
SetPlayerInterior(playerid, 0);
CreateExplosion(142.1529,1864.2565,17.7370, 9, 500.0);
SendClientMessage(playerid, couleur_dire, "**** Tu as allumé la bombe! ****");
format(string, sizeof(string), "La bombe dans le QG des militaires a explosé!",(playerid));
SendClientMessageToAll(info, string);
}
return 1;
}
Titre: Re : Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 12:59:51
Merci  :)
Titre: Re : Condition ne marche pas :(
Posté par: Ssk le 30 Octobre 2010, 13:20:59
Tu pourrai parler Français car la c'est incompréhensible
Titre: Re : Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 13:58:07
Je me souviens pas avoir écrit le mot "Répondre" --' Sinon, je te disais "Merci" :p

Une autre question, j'ai créé un Icon sur la mini-map mais celui ci n'apparaît que à l'équipe des terroristes alors que normalement il devrait apparaître aux deux  :blink

Voici mon icon : SetPlayerMapIcon(playerid, 19, 413.7047, 2442.3052, 16.5000, 19, 0);
Si vous pourriez m'aider, merci!
Titre: Re : Condition ne marche pas :(
Posté par: ApocKalipsS le 30 Octobre 2010, 14:05:54
Dans ta callback OnPlayerSpawn, la fonction est sûrement appelée que pour les terroristes.
Tu peux donc la mettre dans la callback OnPlayerConnect :

public OnPlayerConnect(playerid)
{
SetPlayerMapIcon(playerid, 19, 413.7047, 2442.3052, 16.5000, 19, 0);
...
}


L'icône s'affichera donc à tous nouveaux joueurs, dès leurs connections.
Titre: Re : Re : Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 14:15:12
Dans ta callback OnPlayerSpawn, la fonction est sûrement appelée que pour les terroristes.
Tu peux donc la mettre dans la callback OnPlayerConnect :

public OnPlayerConnect(playerid)
{
SetPlayerMapIcon(playerid, 19, 413.7047, 2442.3052, 16.5000, 19, 0);
...
}


L'icône s'affichera donc à tous nouveaux joueurs, dès leurs connections.

Je l'avais déjà mis dans OnPlayerConnect :s
Titre: Re : Condition ne marche pas :(
Posté par: Ssk le 30 Octobre 2010, 14:21:15
Montre nous comment tu as mise cette ligne de code.


Il ne faut pas qu'elle soit dans une condition, sinon c'est normal qu'elle soit affichée que pour certains joueurs.
Titre: Re : Condition ne marche pas :(
Posté par: John_Montavedro le 30 Octobre 2010, 14:26:55
Trompé, elle apparaît, c'est bon merci  :D
Titre: Re : Condition ne marche pas :(
Posté par: Myk3L le 31 Octobre 2010, 16:16:29
SetPlayerMapIcon, mets le dans OnGameModeInit(), tu seras sur comme ça ;)