GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nesik le 16 Juillet 2010, 11:41:47

Titre: Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 11:41:47
Bonjour à tous,
Enfaite je voudrais créer une commande qui ferais perdre 50% de vie à tous ceux qui sont à 1 mètre de celui qui a exécuter la commande.
Il faut utiliser le ProxDetector?
Si oui comment (ce qui faut mettre dans les parentèses juste après)
Merci de vos réponces !!
Titre: Re : Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 12:00:17
Ok merci ben
EDIT:Enfaite c'est pour une faction et j'ai un problème j'ai juste modifié le nom des rangs des instructeurs et ça me met une erreur:
L'erreur:
\ONESTE~1\GAMEMO~1\larp.pwn(9898) : error 001: expected token: "-string end-", but found "-identifier-"La ligne 9898
else if(PlayerInfo[targetid][pRank] == 5) { rtext = "Legende"(5); }J'utilise le LARP de Scott1 !
Titre: Re : Besoin de précison
Posté par: Ssk le 16 Juillet 2010, 13:12:08
new Float:x = 0.0, Float:y = 0.0, Float:z = 0.0; // On déclare les variables qui vont contenir la position du joueur
GetPlayerPos( playerid, x, y, z ); // On sotcke la position du joueur dans les variables précedement déclarée

for( new i = 0; i < MAX_PLAYERS; i++ ) // On fait une boucle qui va de 0 à 500
{
if( IsPlayerConnected( i ) ) // On Test si le joueur " i " est connecté
{
    if( IsPlayerInRangeOfPoint( i, 1, x, y, z) ) // On test si le joueur est à 1 mètres la position qui est stockée dans les variables x, y, z
    {
        SetPlayerHealth( i, 0.0 ); // on tue le joueur " i "
    }
}
}
Titre: Re : Re : Besoin de précison
Posté par: Ssk le 16 Juillet 2010, 13:20:08
Je me permet une petite correction ( rien de grave hein :P) , la tu tue le joueur alors qu'on veut juste mettre sa vie à 50  :happy

Ah oui, mal compris ^^
Titre: Re : Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 13:47:26
Merci pour vos réponses !!
Mais c'est possible de faire un truc genre le joueur à 80 de vie et il pert 50% de cela (donc il a plus que 40)?
Et faut pas que celui qui execute la commande meurt !!
Titre: Re : Besoin de précison
Posté par: D0os-Nox le 16 Juillet 2010, 14:30:17
Bonjour, Pour retirer la santé au joueur est non le mettre à 50 % de vie :

- Tout simplement une soustraction comme ceci SetPlayerHealth( i, -50.0 );
EDIT : Sinon, Par exemple si le joueur à 40% de vie on lui retire 50 %, Donc il meurt ...
 :dry D0os-Nox  ;D
Titre: Re : Besoin de précison
Posté par: Syg le 16 Juillet 2010, 14:51:26
Va falloir réviser vos cours sur les pourcentages les gars .....  :(

Pour enlever 50 % de vie à un joueur, il suffit de la diviser par 2 :
SetPlayerHealth (i, GetPlayerHealth (i)/2.0);
Plus généralement, pour enlever X % de vie à un joueur :
new Vie=GetPlayerHealth (i);
SetPlayerHealth (i, Vie - (Vie*X)/100);

++
Syg
Titre: Re : Besoin de précison
Posté par: Ssk le 16 Juillet 2010, 14:53:52
Humph on a tous mal compris lol
Titre: Re : Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 15:00:41
Merci à vous tous !!

Double post
Désoler du double post
Mais j'ai mis ce que vous avez mit et j'ai mit aussi 2 3 trucs mais il y a 26 erreurs qui ne sont pas du tous dans ce que j'ai fais
Voici le code:
if(strcmp(cmd, "/pdf", true) == 0)
{
new Float:x = 0.0, Float:y = 0.0, Float:z = 0.0;
GetPlayerPos( playerid, x, y, z );

for( new i = 0; i < MAX_PLAYERS; i++ )
{
    if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11)
{
SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas catcheur"),
}
if (PlayerToPoint (30, 1362.1768,2163.4197,11.9345)
    {
    SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas sur le ring");
    }
    if( IsPlayerInRangeOfPoint( i, 1, x, y, z) )
    {
        SetPlayerHealth (i, GetPlayerHealth (i)/2.0);
        }
return 1;
}

Et les erreurs:
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2307) : error 004: function "SafeGivePlayerMoney" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2336) : error 004: function "SafeGivePlayerMoney" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2372) : error 004: function "SafeResetPlayerWeapons" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2373) : error 004: function "SafeGivePlayerWeapon" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2400) : error 004: function "SafeResetPlayerWeapons" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2882) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2893) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2905) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2909) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2921) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2925) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2929) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2933) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2937) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2941) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2945) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2949) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2961) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2965) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2969) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2973) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2977) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2989) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2993) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(2997) : error 004: function "PlayerToPoint" is not implemented
C:\DOCUME~1\EWEN~1.DM-\MESDOC~1\ONESTE~1\GAMEMO~1\larp.pwn(3009) : error 004: function "PlayerToPoint" is not implemented
Titre: Re : Besoin de précison
Posté par: D0os-Nox le 16 Juillet 2010, 15:46:11
RE : Il te manque une accolade avant le return 1;  :

Comme ceci :

if(strcmp(cmd, "/pdf", true) == 0)
{
new Float:x = 0.0, Float:y = 0.0, Float:z = 0.0;
GetPlayerPos( playerid, x, y, z );

for( new i = 0; i < MAX_PLAYERS; i++ )
{
  if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11)
{
SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas catcheur"),
}
if (PlayerToPoint (30, 1362.1768,2163.4197,11.9345)
             {
             SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas sur le ring");
   }
       if( IsPlayerInRangeOfPoint( i, 1, x, y, z) )
             {
                     SetPlayerHealth (i, GetPlayerHealth (i)/2.0);
             }
         }
return 1;
}

 :laugh D0os-Nox  :ohmy
Titre: Re : Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 15:52:57
Non c'est pas l'accolade  :( mais merci quand même
Mais ç m'a fait ça quand j'ai rajouté le PlayerToPoint
Titre: Re : Besoin de précison
Posté par: D0os-Nox le 16 Juillet 2010, 16:02:13
RE : Excuse, j'avais pas vérifier donc forcement, il te manque 2 accolade en faite donc :

if(strcmp(cmd, "/pdf", true) == 0)
{
new Float:x = 0.0, Float:y = 0.0, Float:z = 0.0;
GetPlayerPos( playerid, x, y, z );

for( new i = 0; i < MAX_PLAYERS; i++ )
{
  if(PlayerInfo[playerid][pLeader] == 11 || PlayerInfo[playerid][pMember] == 11)
{
SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas catcheur"),
}
if (PlayerToPoint (30, 1362.1768,2163.4197,11.9345)
   {
     SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas sur le ring");
   }
     if( IsPlayerInRangeOfPoint( i, 1, x, y, z) )
       {
         SetPlayerHealth (i, GetPlayerHealth (i)/2.0);
         }
        }
   }
return 1;
}

PS : Les fonction sont mal defini regarde exemple : SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas catcheur"), > SendClientMessage (playerid, COLOR_FADE3, "Vous n'êtes pas catcheur");   (( Mais à toi de modifier ))

 :) D0os-Nox  :D
Titre: Re : Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 16:09:25
A merci beaucoup,les accolades m'ont toujours poser des problèmes  :lmfao

Double post
Encore un double post dsl :(
Cette fois ba pour exécuter la commande je suis normalement dans le stade ouvert de LV mais quand j'y suis ça ne marche pas,mais quand je suis en dehors ça marche très bien !!
Aussi je perd pas la moitié mais presque tous !!
Titre: Re : Besoin de précison
Posté par: D0os-Nox le 16 Juillet 2010, 17:23:25
RE :  Normale explication :

- En fait dans la fonction PlayerToPoint, tu à mis la position mais là tu lui dit que si il est à la position du ring sa lui envoie seulement le message d'avertissement !


Donc, pour faire le contraire : if (!PlayerToPoint (30, 1362.1768,2163.4197,11.9345))

 8) D0os-Nox  :laugh
Titre: Re : Besoin de précison
Posté par: Nesik le 16 Juillet 2010, 17:28:21
A merci encore une fois,j'ai encore beaucoup de chose à apprendre !!
Titre: Re : Besoin de précison
Posté par: D0os-Nox le 16 Juillet 2010, 19:18:53
RE : Moi personnellement, j'utilisé tout le temps la fonction PlayerToPoint des GM RP ...

PS : Chacun son style comme vous dîtes  :)


 :D D0os-Nox  >:(