GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: aurelien le 01 Mars 2009, 13:57:50
-
Salut a tous je voudrais creer une commande pour mon server mes je ne ces pas comment il faut faire je voudrai creer une comande du genre /teleportation et sa m'afiche tout les teleportation disponible /drift /drift1 /drift2 /drift3 ... merci de votre aide a+++
-
salut,
base toi sur des scripts déjà fais....
tu doit avoir un if(strcmp(cmdtext, "commande", true) == 0)
puis pour donner la liste des téléportations, il te faut un ou des SendClientMessage
++Sim++
-
Salut,
Bon je vais te donner le "truc":
Tout d'abord tu initialise ta commande:
if(strcmp(cmdtext, "//macommande", true) == 0)
on ouvre la prmiere acolade pour faire soit un premier test soit lancer l'action sans test...:
{
Puis (vu qu'on veut ecrire un message JUSTE au joueur qui tape la commande), on utilise un SendClientMessage.
On peu mettre plusieurs SendClientMessage a la suite ...
SendClientMessage(playerid, COLOR_GREEN,"Bienvenue sur le serveur");
SendClientMessage(playerid, COLOR_GREEN,"Voici les commandes:");
SendClientMessage(playerid, COLOR_GREEN,".......");
Vu qu'on veut faire qu'écrire au joueur, alors on a terminer, et on peut terminer la commande. On "ferme" la commande..
return 1;
Et on ferme l'acolade du debut:
}
J'esper que t'a pris le temps de comprendre et de ne pas avoir copier betement...
++
nikko
-
sinon tu peut faire un menu avec toutes tes teleportations c'est plus classe 8)
va voir dans les tutos
-
Qu'il apprenne à faire une commande simple on verra ensuite pour les menus je pense ^^.
-
Merci a vous et merci Nikko d'etre venir voir merci de m'avoir expliquer ... :cheers
-
y'a pas de quoi :cheers
++
nikko
-
PROBLEME
je fais une teleportation une comande et sa me teleporte pas et sa me mais les codes de teleportation et apres sa me mais un truc en anglais je le dit en francais : server : cette commande n'existe pas ... command faire ...
-
Deja pour ta commande pour annoncer if(strcmp(cmdtext, "/cmds", true) == 0), il faut la presenter comme ca:
if(strcmp(cmdtext, "/cmds", true) == 0) // on initialise
{ // on ouvre
SendClientMessage(playerid, COLOR_GREEN,"Pour vour teleporter ...."); // on envoi les infos
SendClientMessage(playerid, COLOR_GREEN,"ETC ....");
SendClientMessage(playerid, COLOR_GREEN,".......");
return 1; // on termine
} // on ferme
Ensuite pour tes telep:
if(strcmp(cmdtext, "/g1", true , 10) == 0) >>> Enlève le ",10" de chaque commande.
Puis tu peut perfectionner tes telep en fesant un test si il est dans un vehicule:
if(strcmp(cmdtext, "/g1", true) == 0) // on initialise
{ // on ouvre
if(!IsPlayerInAnyVehicle(playerid)) // test si le joueur N'EST PAS dans un vehicule (avec le !) si tu sais pas comment t'en servir, GO tuto de sim
{ // on ouvre car ya un nouveau test
SetPlayerPos(playerid,1313.2286,1266.9771,12); // on telep
SendClientMessage(playerid, 0xFF8000FF,"Bienvenue ...."); // on annonce
} // on ferme
else // on met le ELSE qui sert a dire sinon (ici on a "si le joueur n'est pas dans un vehicule, on telep seul SINON on telep le vehicule)
{ // on ouvre car ya un "nouveau" test
SetVehiclePos(GetPlayerVehicleID(playerid),1313.2286,1266.9771,12); //on place le vehicule
SendClientMessage(playerid, 0xFF8000FF,"Bienvenue..."); // on annonce
} // on ferme le test
return 1; // on termine
} // on ferme la premiere acolade.
++
nikko
-
re voila sa me mes warning quand je met sa
if(strcmp(cmdtext, "/g1", true) == 0)
C:\DOCUME~1\AURLIE~1\Bureau\SERVER~1\GAMEMO~1\drift.pwn(195) : warning 225: unreachable code
????
-
montre le code en entier
++
nikko
-
re salut ... voila
sa donne sa quand je fe F5 :
C:\DOCUME~1\AURLIE~1\Bureau\SERVER~1\GAMEMO~1\drift.pwn(195) : warning 225: unreachable code
le code :
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/cmds", true) == 0)
SendClientMessage(playerid, COLOR_ORANGE," /g1 pour aller à parking 1 ");
{
SendClientMessage(playerid, COLOR_ORANGE," /g2 pour aller à parking 2 ");
SendClientMessage(playerid, COLOR_ORANGE," /c1 pour aller à circuit 1 de drift ");
SendClientMessage(playerid, COLOR_ORANGE," /c2 pour aller à circuit 2 de drift ");
return 1;
}
if(strcmp(cmdtext, "/g1", true) == 0)
{
if(!IsPlayerInAnyVehicle(playerid))
{
SetPlayerPos(playerid,2272.0701,1390.8223,42.8203);
GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
}
else
{
SetVehiclePos(GetPlayerVehicleID(playerid),2272.0701,1390.8223,42.8203);
GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
}
return 1;
}
if (strcmp("/g2", cmdtext, true, 10) == 0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),2260.7776,1941.5385,31.7797);
GameTextForPlayer(playerid,"Bienvenue a G2",2000,5);
}
if (strcmp("/c1", cmdtext, true, 10) == 0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),-2532.1960,-612.2008,132.5625);
GameTextForPlayer(playerid,"Bienvenue a C1",2000,5);
}
if (strcmp("/c2", cmdtext, true, 10) == 0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),-312.0705,1568.2906,75.3594);
GameTextForPlayer(playerid,"Bienvenue a C2",2000,5);
return 1;
}
return 0;
}
-
Regarde, tu un probleme d'acolade dans ton /cmds
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/cmds", true) == 0)
{
SendClientMessage(playerid, COLOR_ORANGE," /g1 pour aller à parking 1 ");
SendClientMessage(playerid, COLOR_ORANGE," /g2 pour aller à parking 2 ");
SendClientMessage(playerid, COLOR_ORANGE," /c1 pour aller à circuit 1 de drift ");
SendClientMessage(playerid, COLOR_ORANGE," /c2 pour aller à circuit 2 de drift ");
return 1;
}
if(strcmp(cmdtext, "/g1", true) == 0)
{
if(!IsPlayerInAnyVehicle(playerid))
{
SetPlayerPos(playerid,2272.0701,1390.8223,42.8203);
GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
}
else
{
SetVehiclePos(GetPlayerVehicleID(playerid),2272.0701,1390.8223,42.8203);
GameTextForPlayer(playerid,"Bienvenue a G1",2000,5);
}
return 1;
}
if (strcmp("/g2", cmdtext, true, 10) == 0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),2260.7776,1941.5385,31.7797);
GameTextForPlayer(playerid,"Bienvenue a G2",2000,5);
}
if (strcmp("/c1", cmdtext, true, 10) == 0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),-2532.1960,-612.2008,132.5625);
GameTextForPlayer(playerid,"Bienvenue a C1",2000,5);
}
if (strcmp("/c2", cmdtext, true, 10) == 0)
{
SetVehiclePos(GetPlayerVehicleID(playerid),-312.0705,1568.2906,75.3594);
GameTextForPlayer(playerid,"Bienvenue a C2",2000,5);
return 1;
}
return 0;
}
++
nikko
-
Si je ne me trompe, un des problême est que tu as mis
(playerid) comme sa alors que c'est
(playerid, ..... comme sa
-
Ca depend, regarde
le "(playerid)" c'est pour un "if(!IsPlayerInAnyVehicle(playerid))"
le "(playerid," c'est pour un "SendClientMessage(playerid, COLOR_ORANGE," /g1 pour aller à parking 1 ");"
Il ont la meme fonction, mais il ne s'utilisent pas de la meme facon...
++
nikko
-
YOUHOU
merci Nikko merci ... :cheers
-
ya pas de quoi, mais sert toi de ca quand tu veu creer des commande. Pcq si tu copie betement, ca aura servi a rien ^^
++
nikko
-
re j'ai eu un probleme mes jai reussi a le mettre bien et encore merci Nikko et jvoulai savoir comment vous fete pr avoir une signature en image ??? je ses aucun raport mais je demande quand meme et je voulais aussi savoir si il y avait un endroit sur le fofo avec tout les server FR et si jpourrais mettre le mien dans la liste ?? .... merci encore Nikko :cheers
Double post: 03 Mars 2009, 16:27:15
A et encore un truc je voulais savoir comment faire la Commande /r et /s ??? merci encore
-
Salut,
assure toi de bien comprendre les autres commandes avant,
sinon, je te donne un truc:
- tu dois créer trois variables (X, Y, Z) par joueur (un array)
- tu dois enregistrer la position du joueur (GetPlayerPos) dans cette variable avec /s
- la charger (SetPlayerPos) de la variable avec /r
++Sim++
-
Lu pas trop compris ton expliquation Sim si tu pourai expliquer par image merci ...
-
A savoir aussi que ce que tu demande, a déjà été traité dans un autre sujet ;) cherche un p'yi peu tu verra :laugh
-
ok mais fau trouver aussi et je voulais savoir comment mettre de la musique o debut kud on choisit son perso parce que jai regarder un truc mes sa ne marche pas donc je vous demande ... merci