GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nico_Torres le 02 Août 2009, 18:22:34
-
Bonjour,
voilà, est ce que quelqu'un pourrait me passer un script pour que, a un endroit, on puisse taper une commande du style /heal pour avoir la vie a fond et un /me mange ?
Les endroits:
- Devant le frigo dans la maison de CJ:
(http://weedarr.wdfiles.com/local--files/interior/Cjshouse.jpg)
- Devant le frigo de cet interieur:
(http://weedarr.wdfiles.com/local--files/interior/Ganghouse.jpg)
- La derriere la porte y a un frigo, juste devant:
(http://weedarr.wdfiles.com/local--files/interior/Crackden.jpg)
Merci d'avance !
Resolu, script:
if(strcmp(cmd,"/heal",true)==0)
{//accolade 1
if(IsPlayerConnected(playerid))
{//acc 2
if(PlayerToPoint(3.0,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{ // acc 3
SetPlayerArmour(playerid, 100); // armure =100
SetPlayerHealth(playerid, 50); // GET = Enregistré sa santé, Set = mettre sa santé
GetPlayerName(playerid, sendername, sizeof(sendername)); // Prend le nom du joueur
format(string, sizeof(string), "* %s mange des Chip's.", sendername);// Enregistre le message...
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);//... et l'écrit en violet dans le chat
return 1;
} // acc 3
}//acc 2
}//acc 1
-
pour manger tu peu faire un truque du genre :
if(strcmp(cmd,"/mangerpizza",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(3.0,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{
new Float:health;
GetPlayerHealth(playerid,health);
if (health > 100)
{
SendClientMessage(playerid,COLOR_GREY,"Vous avez plus faim pour manger une autre pizza");
return 1;
}
new Float:hp;
GetPlayerHealth(playerid,hp);
SetPlayerHealth(playerid,hp+5);
return 1;
}
pour /heal c'est presque la même chose ;)
-
Merci mais en fait le problème que j'ai, c'est d'avoir un... une sorte de zone ou on peux faire la commande, pas un point net, tu sais comment faire ?
-
PlayerToPoint
Te permet de faire ce que tu demande ( Zone en Cylindre )
-
Change le 3.0, plus il est élevé, plus le joueur peut taper la commande loin des coordonées.
-
Mais,
if(strcmp(cmd,"/heal",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(50,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 50);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s mange des Chip's.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
}
Est ce que ce code est ok ? Enfin, si je vais a la coordoné et que je tape /heal sa me donnera 100 d'armure et 50 point de vie ? et sa fera /me mange des chips ?
-
Heuu y'auras peut etre un prob si tu met pas les calback x=)
-
{
if(strcmp(cmd,"/heal",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(50,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{
SetPlayerArmour(playerid, 100);
SetPlayerHealth(playerid, 50);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s mange des Chip's.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
}
}
C'est ok ca ?
-
non :boulz
Tiens, et prend note :rules :lmfao
if(strcmp(cmd,"/heal",true)==0)
{ // accollade 1
if(IsPlayerConnected(playerid))
{ // accollade 2
if(PlayerToPoint(50,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{ // accollade 3
SetPlayerArmour(playerid, 100); // armure =100
SetPlayerHealth(playerid, 50); // santé=50
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s mange des Chip's.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
} // accollade 3
} // accollade 2
} // accollade 1
Te manquais une accollade.. Il faut autant de "{" que "}" dans une fonction
-
attention avec ceci SetPlayerHealth(playerid, 50); si votre joueur a 90 de vie il se retrouveras avec 50 utiliser le GetPlayerHealth
PS l'accolade avant if(strcmp(cmd,"/heal",true)==0) je voit ce qu'elle fait la
-
Je voulais le dire cristab >:(
C'est pour ça que je t'es demandé sur msn afin d'être sur.
-
Ah oui lol, et comme un c** je fait rien, mais en plus, je complete "I'm a :boulet"
-
if(strcmp(cmd,"/heal",true)==0)
if(IsPlayerConnected(playerid))
if(PlayerToPoint(50,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{ // accollade 4
SetPlayerArmour(playerid, 100); // armure =100
GetPlayerHealth(playerid, 50); // santé=50
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s mange des Chip's.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
} // accollade 4
Ok, sa c'est bon alors ?
-
Toujours des accolades après les if !
iif(strcmp(cmd,"/heal",true)==0)
{//accolade 1
if(IsPlayerConnected(playerid))
{//acc 2
if(PlayerToPoint(3.0,playerid,1357.7896,-1739.4857,13.5469)) // l'endroit que tu veut faire la commande
{ // acc 3
SetPlayerArmour(playerid, 100); // armure =100
SetPlayerHealth(playerid, 50); // GET = Enregistré sa santé, Set = mettre sa santé
GetPlayerName(playerid, sendername, sizeof(sendername)); // Prend le nom du joueur
format(string, sizeof(string), "* %s mange des Chip's.", sendername);// Enregistre le message...
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);//... et l'écrit en violet dans le chat
return 1;
} // acc 3
}//acc 2
}//acc 1
-
oula je repere des catastrophe ^^
new Float:Vie;
Vie = GetPlayerHealth(playerid,Vie);
SetPlayerHealth(playerid, Vie + 50);
Voila en grios ce qu'il faut utiliser
-
Ah ouai mais a ce moment la faut mettre un if health<100
car sinon le joueur va monter dans les 500 pdv xD
-
aussi mais je ne vait pas dire tout les reponse ^^
-
Ah, j'avais oublié qu'il voulait rajouté. :dry
-
Mais heuuu, admettons que le joueurs ait 70 pdv (qui est inferieur a 100) il fait /heal, hop, il gagne 50 du coup il arrive a 120pdv
Comment y remedier? :O
-
Salut,
tu n'as qu;a ajouter un petit test si la quantité de vie totale dépasse 100 et alors le mettre à 100 au lieu de, par exemple, 120
++Sim++
-
Ahh Oui, je voit par exemple faire
If health>100
SetPlayerHealt = 100
Merci de m'avoir mit sur la voie!
-
comme a dit Sim ce genre la en gros
new Float:Vie;
Vie = GetPlayerHealth(playerid,Vie);
if(Vie == 100)
{
SendClientMessage(playerid,couleur,"tu n'es pas faim!");
}
if(Vie >50)
{
SetPlayerHealth(playerid, 100);
}
else
{
SetPlayerHealth(playerid, Vie + 50);
}
Quelque chose pret
Pour ton aide dans la sign sa etait repondu mais c'est pas la peine de le rappeler si on voit si on sait on repond sinon on laisse