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
-
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 !!
-
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 !
-
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 "
}
}
}
-
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 ^^
-
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 !!
-
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
-
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
-
Humph on a tous mal compris lol
-
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
-
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
-
Non c'est pas l'accolade :( mais merci quand même
Mais ç m'a fait ça quand j'ai rajouté le PlayerToPoint
-
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
-
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 !!
-
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
-
A merci encore une fois,j'ai encore beaucoup de chose à apprendre !!
-
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 >:(