GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: nivi le 05 Janvier 2011, 18:51:33
-
Bonsoir,
Ou Plasser cette fonction:
if(!strcmp("/247",cmdtext,true,4))
{
SetPlayerPos(playerid,-25.884498,-185.868988,1003.546875);
SetPlayerInterior(playerid,17);
}
Merci de m'aider.
-
c'est une commande je te laisse chercher
-
non, mais je veut pas une commande pour tp, je veut placer une "i" jaune IG, puis si le joueur ecrit /entrer. il entra.
-
quelle est le rapport avec ton code
-
Il faut faire un pickup (CreatePickup) et ensuite avoir les coordonnées x y et z donc tu fait if PlayerIsRangeOfPoint a ces coordonné là, ensuite place ta commande
-
Pour créer ce Pickup, prend déjà des positions X, Y et Z. Ensuite, dans "OnGameModeInit", tu placera:
CreatePickup(int model, int type, float posx, float posy, float posz, virtualworld=0);
Tu remplacera les indications par l'id du pickup, son type (2 semble bien), sa position X, Y et Z. Le virtual world est déjà pré-réglé.
Ensuite, dans "OnPlayerCommandText", tu placera ta commande là. Ensuite, avant le "SetPlayerPos" de ta commande, tu inscrira cette courte phrase:
if(!IsPlayerInRangeOfPoint(playerid, PosX, PoxY, PosZ, 5.0)) return SendClientMessage(playerid, 0xFFFFFFFF, "Vous n'êtes pas au Pickup !"); // Remplacer PosX, PosY, PosZ par les positions du Pickup
Je te laisse analyser le bout de code ;)
-
AddStaticPickup(1318, 1, 203.2614,1863.3297,13.1406, 0);//Le 1318 c'est le model l'apparence et 203.2614,1863.3297,13.1406 c'est la position
Create3DTextLabel("/equipa (-5000 $)",0xAD680AFF, 203.2614,1863.3297,14.1406,25,0);//tu remplace les position par les tienne et le /equipa par /entrer et la couleur 0xAD680AFF par celle que tu veux a mettre dans OnGameModeInit
Et comme dit plus haut tu insert une condition si le joueur est dans la zone... Sinon le return si il n'est pas dans le point tu lui dit qu'il n'est pas sur un /entrer en exemple commande que j'ai faite.
if (strcmp("/equipa", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 5, 203.2614,1863.3297,13.1406))
{
GivePlayerWeapon(playerid,27,507);
GivePlayerWeapon(playerid,16,4);
SetPlayerArmour(playerid, 100);
GivePlayerMoney(playerid, -5000);
SendClientMessage(playerid, COULEUR_ROUGE,"Tu a acheter un Spas12, une Armure et des grenades {00FF00}(-5000 $)");
PlayerPlaySound(0, 1056, 0.0, 0.0, 0.0);
}
else
{
SendClientMessage(playerid, COULEUR_ROUGE,"Tu n'est pas dans la base {00FF00}(au caisse Area51)...");
}
return 1;
}La si tu regarde bien il y a une condition comme quoi si le joueur ne n'est pas a 5 M dans le point 203.2614,1863.3297,13.1406 le 5 c'est le rayon et si il n'est pas dans le rayon on lui envoir le message dans le else(j'ai utiliser une autre que le return directement mais ça marche aussi)
Et si tu regarde encore bien j'ai mi le Pickup a la même position et le 3DTextLabel pour afficher un message/equipa pour que le joueur sache la commande.