GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: natsu00 le 21 Février 2013, 16:13:26
-
salut,
je decouvre pleins de choses en ce moment,
j'ai compris les variables,les musiques...
d'ailleurs c'est grâce à vous merci x)
mais maintenant j'aimerai changer l'allure d'un arme,
je ne sais pas si c'est possible mais je voudrai transformer la canne en pieddebiche c'est possible?
si oui comment? je n'y connais pas grand chose
merci
-
C'est uniquement le client qui peut modifié ses skins (pour l'instant).
MTA lui peut faire celà.
-
ok tant pis...
merci quand même :biggrin:
-
je viens d'avoir une idée encore et surement improbable
j'aimerai que lorsqu'un joueur est tout près d'un autres joueur ( je sais pas environ 100 pas ^^ )
bhen une musique épique se déclenche, je sais mettre un musique mais pour la distance...
merci
-
Tu dois faire un timer qui se répète toutes les 1 secondes (1000 ms), et tu vérifiera à l'aide de deux boucles for si un joueur est proche d'un autre.
Petit exemple :
forward EPICMUSIC();
public EPICMUSIC()
{
for(new p1; p1 <= MAX_PLAYERS; p1++)
{
for(new p2; p2 <= MAX_PLAYERS; p2++)
{
if(IsPlayerConnected(p1)&&IsPlayerConnected(p2))
{
new Float:p1x, Float:p1y, Float:p1z, Float:p2x, Float:p2y, Float:p2z;
GetPlayerPos(p1, p1x, p1y, p1z);
GetPlayerPos(p2, p2x, p2y, p2z);
//Je te laisse te débrouiller tout seul pour comparer les deux positions
}
}
}
}
public OnGameModeInit()
{
SetTimer("EPICMUSIC", 1000, true); //true pour que le timer se répète
}
Des questions ? :)
(Je parie que tu as tiré ça de Skyrim :p)
-
oui bien sur x)
donc si je met ta commande des que quelqu'un est proche d'un autres bhen une musique arrive?
si oui merci
je met ta commande deux fois? avec p1 et p2?
je suis désolé je suis nul j'ai lu le tuto, j'ai compris des trucs mais certaines choses non ^^
-
Oulah, j'ai eu un petit bug qui a fait que mon message a été posté sans que je le finisse. Relit-le.
-
ok merci donc au lieu de mettre epic musique je met l'url de la musique?
et pour les positions je sais pas ^^
désolé...
sur le wiki c'est ecrit en exemple x, y et z ?
-
Euh, j'ai pas trop compris ta question, tu veux parler du nom du timer ?
-
//Je te laisse te débrouiller tout seul pour comparer les deux positions
tu m'as écrit ça je suis d'accord pour chercher un peu j'ai plein de bonne volonté mais je vois pas dutout ^^
j'insere juste la fonction?
-
En gros il t'as créer le timer.
Dedans, il faut que tu compares la position de ton joueur à un autre joueur. Et donc si ils sont pas loin il y aura ta musique épic.
-
voila ce que tu doit apprendre pour faire ce que tu veut http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint (http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint)
-
ok merci de vos reponse
je vais chercher mais je sent que je vais galerer ^^
je cherche toujours compliqué^^
-
[spoiler]
forward EPICMUSIC();
public EPICMUSIC()
{
for(new p1; p1 <= MAX_PLAYERS; p1++)
{
for(new p2; p2 <= MAX_PLAYERS; p2++)
{
if(IsPlayerConnected(p1)&&IsPlayerConnected(p2))
{
new Float:p1x, Float:p1y, Float:p1z, Float:p2x, Float:p2y, Float:p2z;
GetPlayerPos(p1, p1x, p1y, p1z);
GetPlayerPos(p2, p2x, p2y, p2z);
if(IsPlayerInRangeOfPoint(playerid, 10, 10, 10, 10)
//pour les coordonnées je n'ai aucune idée pour que ca soit environ a 100m
{
PlayAudioStreamForPlayer(playerid, "url de la musique");
}
return 1;
}
}
}
}
}
public OnGameModeInit()
{
SetTimer("EPICMUSIC", 1000, true); //true pour que le timer se répète
}
[/spoiler]
c'est ça ?
je suis désolé je fais de mon mieux ...
-
#DEFINE DISTANCE 25
forward EPICMUSIC();
public EPICMUSIC()
{
for(new P1; P1 <= MAX_PLAYERS; P1++)
{
for(new P2; P2 <= MAX_PLAYERS; P2++)
{
if(IsPlayerConnected(P1) && IsPlayerConnected(P2))
{
new Float:P1X, Float:P1Y, Float:P1Z, Float:P2X, Float:P2Y, Float:P2Z;
GetPlayerPos(P1, P1X, P1Y, P1Z);
GetPlayerPos(P2, P2X, P2Y, P2Z);
if(IsPlayerInRangeOfPoint(P1, P2X, P2Y, P2Z, DISTANCE)
{
PlayAudioStreamForPlayer(playerid, "http://www.urlmusique.mp3");
}
}
}
}
return 1;
}
public OnGameModeInit()
{
SetTimer("EPICMUSIC", 1000, true);
}
Ca doit ressembler a ça je pense.
-
oh merci tu me sauve la vie ^^
je test tout de suite merci merci merci !!
-
N'oublions pas que le timer se répète toutes les secondes et que donc, la musique se répète toutes les secondes tant que le joueur est proche de l'autre (et inversement).
Il faudrait à l'aide de variable, empêcher de jouer la musique si elle a déjà été jouée.
-
Pas faux ça c'est assé simple je te laisse faire...
Une booléen fais l'affaire. ( true/false ).
-
Ne pas oublier de créer une condition si P1 == P2 , ce qui est possible dans ce code, et donc la distance sera de 0, donc tous les joueurs entendront une musique.
if (P1 == P2) {
continue;
}
-
Ton code est un peu faussé, car il ne faut pas continuer si les ids correspondent, mais plutôt si elles ne correspondent pas ^^
Et il faudrait aussi vérifier si p2 est connecté car si il ne l'est pas, il me semble que la position xyz récupérée sera 0, 0 et 0, donc si p1 se trouve assez près de cette même position (0, 0, 0), il entendra une musique sans même qu'un joueur soit proche.
Je te conseille aussi de jouer des musiques différentes si trois joueurs cette fois-ci se trouvent dans la même zone.
-
continue permet de sauter un tour, la boucle sera sauter seulement une fois.
Mon code est correct.
-
Salut
cela fait plusieurs jour que je bosse dessus à mon rythme et je suis content du resultat ^^
je sais pas comment j'ai fait mais j'ai reussi, j'ai recherché les conditions... et ça marche, musique de skyrim mhawawawawa
sinon j'ai un autres probleme, un ami ne peut toujours pas jouer, en effet il a desactivé son parefeu et ouvert ses ports 7777 de sa free, mon frere peut venir ( il est sur la même box que moi ) mais mon ami voit :
"serveur didn't respond"
je sais pas quoi faire ^^
merci
-
Ce n'est pas à tes potes d'ouvrir leur ports, mais à toi :smile:
Mais il faut faire gaffe que les ports ouverts soient les mêmes que ceux dans le fichier de configuration du serveur.
-
je les ai ouvert aussi...
mais je sais pas d'ou ça viens
quelqu'un a une idée?
-
Dans ton server.cfg, le port ouvert est bien 7777 ?
port 7777
Le port est bien redirigé vers ton ip LOCALE ? (Si non, la première partie de ce tuto (http://wiki.sa-mp.com/wiki/Ouvrir_Ses_Ports_Freebox) montre comment faire pour la connaitre)
-
pou ta question sur le port 7777 ca c'est bon,
pour la suite j'ai pas compris :huh:
-
ha si je viens de comprendre bha si il a fait comme ça j'étais avec
-
Gné ? Tu étais avec ... ? Qui a fait comme quoi ?
-
il a fait comme le lien que tu m'as filé pour ouvrir ses ports,
j'étais avec pour lui expliquer ( on habite à moins de 30m )
-
moi je doit activer une option DMZ pour que cela fonctionne l'astu? si oui active la.
-
il a fait comme le lien que tu m'as filé pour ouvrir ses ports,
j'étais avec pour lui expliquer ( on habite à moins de 30m )
Ce n'est pas à lui d'ouvrir ses ports, mais à toi, ensuite il n'aura qu'a indiquer ton ip accompagnée du port (ip:port) pour se connecter (mais ça tu dois déjà le savoir je suppose)
-
dmz?
dans la freebox?
-
Comment ça "dans la freebox" ? :lipsrsealed:
Je pige pas ta question :laugh:
-
En gros il a une freebox et il veut savoir comment faire une DMZ, tout simplement.
-
je vient de remarquer que l'option dmz sont dans casi toute les box tu l'active et tu entre ton ip local par contre le plus simple est que tu passe en ip local fixe par default elle sont aléatoire
-
ok merci à toi il viens de se co pas de soucis,
enfin si un nouveau (je sais je suis chiant ^^ )
bha j'ai voulu mettre une commande admin, en cherchant j'en ai trouvé un pour envoyer quelqu'un en prison,
je l'ai fait et pas de soucis de compilation, je le met dans mon fichier serveur.cfg
mais que je fait /jail id
il m'ouvre le magasin de voiture --'
c'est pas incompatible quand même?
faut il reunir les deux?
merci
signer le chiant x)
-
montre la commande en question
-
la commande de la prison ok x)
mais je viens de remarquer que lorsque je tape par exemple
/a ou /b ou /c
cela m'ouvre tout de même le magasin :lipsrsealed: :lipsrsealed:
sinon voici la prison :
[spoiler]// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_ORED 0xFF0000FF
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x9EC73DAA
#define COLOR_GROVE 0x00FF00FF
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xDABB3EAA
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_FADE1 0xE6E6E6E6
#define COLOR_FADE2 0xC8C8C8C8
#define COLOR_FADE3 0xAAAAAAAA
#define COLOR_FADE4 0x8C8C8C8C
#define COLOR_FADE5 0x6E6E6E6E
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_ALLDEPT 0xFF8282AA
#define COLOR_NEWS 0x458E1DAA
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Hello");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" jérémy");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/jail", true, 5))
{
if (IsPlayerAdmin(playerid))
{
if(!strlen(cmdtext[6]))
{
SendClientMessage(playerid, COLOR_ORED, "Usage: /jail [playerid]");
return 1;
}
new ID = strval(cmdtext[6]);
new strv[170];
if(IsPlayerConnected(ID))
{
format(strv, 170, "~ You have been jailed");
SendClientMessage(ID,COLOR_ORANGE, strv);
SetPlayerPos(ID, 264.8763,81.9862,1001.0390);
SetPlayerInterior(ID, 6);
}
}
return SendClientMessage(playerid, COLOR_RED, "Your not rcon admin!");
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}[/spoiler]
désolé j'ai laissé les commande inutile ^^
sinon voici mon magasin
[spoiler]#include <a_samp>
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_BLUE 0x0000BBAA
#if defined FILTERSCRIPT
#else
main(){}
#endif
////////////////////////////////////////////////////////////////////////////////
public OnPlayerCommandText(playerid, cmdtext[]){
if(strcmp(cmdtext,"/v", true)){
ShowPlayerDialog(playerid,5,DIALOG_STYLE_LIST,"Shop","1.choisit :\r\n2. Lot d'arme n°1(200)\r\n3. Lot d'arme n°2(200)\r\n4. Lot d'arme n°3(200)\r\n5.voiture basique(free)\r\n3. Dodo(100)\r\n4. karting(100)\r\n5. Squale(100)\r\n6. Nrg500(100)\r\n7. Sanchez(100)\r\n8. Patriot(100)\r\n9. hélico(200)\r\n10. monster(200)\r\n11. bullet(200)\r\n12. helico avec mitralleuse(500)\r\n13. hydra(500)\r\n14. hunter(700)\r\n15. Tank(800)\r\n16. Gilet par balle(300)","ok", "quitter");
return 1;}
return 0;}
////////////////////////////////////////////////////////////////////////////////
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(dialogid == 5){
if(!response){
SendClientMessage(playerid, -1, "You canceled");}
switch(listitem)
{
case 1:{
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 200");
PlayAudioStreamForPlayer(playerid, "http://www.universal-soundbank.com/mp3/sounds/3573.mp3");
GivePlayerWeapon(playerid, 5,1 );
GivePlayerWeapon(playerid, 22, 500);
GivePlayerWeapon(playerid, 27, 300);
GivePlayerWeapon(playerid, 32, 500);
GivePlayerWeapon(playerid, 30, 500);
GivePlayerWeapon(playerid, 35, 3);
GivePlayerWeapon(playerid, 46, 1);
GivePlayerWeapon(playerid, 39, 10);
GivePlayerWeapon(playerid, 40, 1);
GivePlayerMoney(playerid,-200);
SendClientMessage(playerid,COLOR_RED,"t'as le lot d'arme n°1");}
case 2:{
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 200");
PlayAudioStreamForPlayer(playerid, "http://www.universal-soundbank.com/mp3/sounds/3577.mp3");
GivePlayerWeapon(playerid, 8, 1);
GivePlayerWeapon(playerid, 16, 10);
GivePlayerWeapon(playerid, 23, 500);
GivePlayerWeapon(playerid, 26, 500);
GivePlayerWeapon(playerid, 28, 500);
GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 37, 200);
GivePlayerWeapon(playerid, 46, 1);
SendClientMessage(playerid,COLOR_RED,"t'as le lot d'arme n°2");
GivePlayerMoney(playerid,-200);}
case 3:{
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 200");
PlayAudioStreamForPlayer(playerid, "http://www.universal-soundbank.com/mp3/sounds/3563.mp3");
GivePlayerWeapon(playerid, 9, 1);
GivePlayerWeapon(playerid, 18, 10);
GivePlayerWeapon(playerid, 24, 500);
GivePlayerWeapon(playerid, 25, 500);
GivePlayerWeapon(playerid, 29, 500);
GivePlayerWeapon(playerid, 30, 500);
GivePlayerWeapon(playerid, 34, 20);
GivePlayerWeapon(playerid, 46, 1);
SendClientMessage(playerid,COLOR_RED,"t'as le lot d'arme n°3");
GivePlayerMoney(playerid,-200);}
case 4:{
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Regina = CreateVehicle(479, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PlayAudioStreamForPlayer(playerid, "http://download.nnover.ru/data/uf2/3468314/87/33/5873379_TrollFace_-_Trololo.mp3");
PutPlayerInVehicle(playerid, Regina, 0);
SendClientMessage(playerid,COLOR_BLUE,"bravo t'as une voiture de merde!");}
case 5:{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 100");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Dodo = CreateVehicle(593, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Dodo, 0);
SendClientMessage(playerid,COLOR_BLUE,"Vole!!");
GivePlayerMoney(playerid,-100);}
case 6:{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 100");
new Float:Pos[4];
PlayAudioStreamForPlayer(playerid, "http://www.mariomayhem.com/downloads/sound_tracks/Super_Mario_64_Original_Soundtrack/01%20%27%27It%27s%20a%20me,%20Mario!%27%27.mp3");
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Karting = CreateVehicle(571, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Karting, 0);
SendClientMessage(playerid,COLOR_BLUE,"it's me mario!!!");
GivePlayerMoney(playerid,-100);}
case 7:{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 100");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Squale = CreateVehicle(446, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Squale, 0);
SendClientMessage(playerid,COLOR_BLUE,"Vas-y vole!!");
GivePlayerMoney(playerid,-100);}
case 8:{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 100");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Nrg500 = CreateVehicle(522, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Nrg500, 0);
SendClientMessage(playerid,COLOR_BLUE,"roule ma poule x) !!");
GivePlayerMoney(playerid,-100);}
case 9:{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 100");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Sanchez = CreateVehicle(468, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Sanchez, 0);
SendClientMessage(playerid,COLOR_BLUE,"roule ma poule!!");
GivePlayerMoney(playerid,-100);}
case 10:{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 100");
new Float:Pos[4];
PlayAudioStreamForPlayer(playerid, "http://www.sub.wz.cz/downloads/sounds/alert.mp3");
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Patriot = CreateVehicle(470, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Patriot, 0);
SendClientMessage(playerid,COLOR_BLUE,"let's go!!!");
GivePlayerMoney(playerid,-100);}
case 11:{
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,0xEE3B3B, "You do not have $ 200");
PlayAudioStreamForPlayer(playerid, "http://soundfxnow.com/soundfx/VideoGame-CaptainFalcon-FalconPunch.mp3");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Helico= CreateVehicle(487, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Helico, 0);
SendClientMessage(playerid,COLOR_BLUE,"vole!!!");
GivePlayerMoney(playerid,-200);}
case 12:{
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,0xEE3B3B, "You do not have $200");
PlayAudioStreamForPlayer(playerid, "http://www.soundboard.com/handler/DownLoadTrack.ashx?cliptitle=I%27ve+Got+Balls+Of+Steel&filename=ODQ1Mzk2ODM4NDUzODg_Rj_2bPliVe4LM.mp3");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Monsterb= CreateVehicle(557, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Monsterb, 0);
SendClientMessage(playerid,COLOR_BLUE,"écrase les tous!!");
GivePlayerMoney(playerid,-200);}
case 13:{
if(GetPlayerMoney(playerid) < 200) return SendClientMessage(playerid,0xEE3B3B, "You do not have $200");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Bullet= CreateVehicle(541, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
SendClientMessage(playerid,COLOR_BLUE,"Voilà pour toi :-)");
GivePlayerMoney(playerid,-200);}
case 14:{
if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,0xEE3B3B, "You do not have $500");
PlayAudioStreamForPlayer(playerid, "http://www.k-netweb.net/blog/datas/2005/07/02/LOTR_GollumMyPreciousVO.mp3");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Seasparow= CreateVehicle(447, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Seasparow, 0);
SendClientMessage(playerid,COLOR_BLUE,"firefire!!!!");
GivePlayerMoney(playerid,-500);}
case 15:{
if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,0xEE3B3B, "You do not have $500");
PlayAudioStreamForPlayer(playerid, "http://www.universal-soundbank.com/mp3/sounds/12655.mp3");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Hydra= CreateVehicle(520, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Hydra, 0);
SendClientMessage(playerid,COLOR_BLUE,"boum!!");
GivePlayerMoney(playerid,-500);}
case 16:{
if(GetPlayerMoney(playerid) < 700) return SendClientMessage(playerid,0xEE3B3B, "You do not have $700");
PlayAudioStreamForPlayer(playerid, "http://content.ytmnd.com/content/5/1/4/514f4e09e6caa105565182841fba4fad.mp3");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Hunter= CreateVehicle(425, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Hunter, 0);
SendClientMessage(playerid,COLOR_BLUE,"Mwhahahaha!!");
GivePlayerMoney(playerid,-700);}
case 17:{
if(GetPlayerMoney(playerid) < 800) return SendClientMessage(playerid,0xEE3B3B, "You do not have $800");
PlayAudioStreamForPlayer(playerid, "http://199.91.153.227/bc87kdskg5ig/982h1p8m7asgch8/Lord+of+the+Rings+Battle+scene+With+epic+music.mp3");
new Float:Pos[4];
GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
new Tank= CreateVehicle(432, Pos[0],Pos[1],Pos[2],Pos[3], 0, 1, 60);
PutPlayerInVehicle(playerid, Tank, 0);
SendClientMessage(playerid,COLOR_BLUE,"Mwhahahaha!!");
GivePlayerMoney(playerid,-800);}
case 18:{
if(GetPlayerMoney(playerid) < 300) return SendClientMessage(playerid,0xEE3B3B, "You do not have $300");
PlayAudioStreamForPlayer(playerid, "http://66.90.118.45/ost/pokemon-gameboy-sound-collection/xsqkjgqemm/111-pokemon-recovery.mp3");
SetPlayerAttachedObject( playerid, 5, 19142, 1, 0.1, 0.039999, 0.000000, 2.459999, 0.0, -3.100000, 1, 1, 1);
SetPlayerArmour(playerid, 100);
GivePlayerMoney(playerid,-300);}}
return 1;}
return 0;}
////////////////////////////////////////////////////////////////////////////////[/spoiler]
voila merci x)
-
Codes + de 20 lignes => Pastebin.com :)
Sinon, donner ça était amplement suffisant:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/jail", true, 5))
{
if (IsPlayerAdmin(playerid))
{
if(!strlen(cmdtext[6]))
{
SendClientMessage(playerid, COLOR_ORED, "Usage: /jail [playerid]");
return 1;
}
new ID = strval(cmdtext[6]);
new strv[170];
if(IsPlayerConnected(ID))
{
format(strv, 170, "~ You have been jailed");
SendClientMessage(ID,COLOR_ORANGE, strv);
SetPlayerPos(ID, 264.8763,81.9862,1001.0390);
SetPlayerInterior(ID, 6);
}
}
return SendClientMessage(playerid, COLOR_RED, "Your not rcon admin!");
}
return 0;
}
Ensuite regarde bien le code, il est mal indenté. Tu fermes la condition if(strcmp..) à l'endroit même où la callback doit être fermée...
++ Espérant avoir résolu le problème. Ensuite, il se peut que si tes commandes utilises des boîtes de dialogue il y ait une interférence.
Vérifies que si tu en utilises bien que tes DIALOG aient bien un ID précis.
du genre:
new DIALOG_COUCOU;
ShowPlayerDialog(playerid, DIALOG_COUCOU, DIALOG_STYLE_LIST, "What is it that you want?", "Sprunk ($1)\nBeer ($2)\nWine ($3)", "Purchase", "Cancel"); // Source: SA:MP
Et en prenant le code de base donné par le wiki SA:MP, le dialog ID est 1. Et si plusieurs FS utilisent l'ID 1 alors il y a interférence.
Espérant n'avoir pas été trop barbant dans mes explications :p
-
Je trouve ça un peu abusif 20 lignes max, geshi a été mis exprès pour que les membres postent leur code sur le forum avec de belle couleur, puis la plupart des bouts de code font largement plus, que ça soit une commande ou autre.
De plus, le règlement est un peu erroné comme le lien vers notre pastebin qui n'existe plus maintenant, ça serait mieux de dire de mettre 100 lignes max ou alors poster uniquement du code qui n'est pas un filterscript ou gamemode complet.
-
salut merci d'avoir pris ta plume :laugh:
j'avais pas pensé à pastebin désolé ....
mais j'y penserai à l'avenir, j'ai preferé mettre tout le code on sait jamais je débute hein ^^
je vais regarder ce soir pour regler le probleme je suis pas sur de tout comprendre mais je chercherais x)
mais je remarque que même sans le mode prison bha lorsque je rentre une commande en "/..." bha ca m'ouvre automatiquement le magasin, donc cela viens de ce filescript
quelqu'un y voit l'erreur?
merci
-
C'est pas pour les couleurs qu'on demande que ce soit sur pastebin, c'est pour éviter d'avoir une page qui prend 5 min à scroller.
-
C'est pas pour les couleurs qu'on demande que ce soit sur pastebin, c'est pour éviter d'avoir une page qui prend 5 min à scroller.
Et à charger, même en 2013, les connexions ne sont pas très rapides.
-
salut,
j'ai lu ce que tu m'as envoyé, merci mais cela ne resous rien,
"Ensuite regarde bien le code, il est mal indenté. Tu fermes la condition if(strcmp..) à l'endroit même où la callback doit être fermée..."
je ne voit pas ce que tu veut dire, le logiciel compile bien...
j'ai ensuite deux probleme :
- quand je retire le mode prison, bha qu'importe ce que je tape en /.. cela m'ouvre le magasin
-ensuite mon codage sur la prison ne fonctionne pas (en retirant le magasin), quand je met /jail [l'id du joueur ] bha il me met commande non valide
je comprend pas....
merci
-
ok j'ai strictement rien dit je viens de comprendre ^^
je pense pouvoir me débrouiller tout seul maintenant, je vais en profiter pour mettre des commande rcon admin aussi merci je relance si jamais x)
-
ceci était une question inutile resolue ^^
-
Edit ton post la prochaine fois, ça évitera les doubles postes :p
-
ok d'acc j'y pense jamais x)
merci infu tu m'as bien aidé là ^^
j'ai un petit soucis, j'ai reussi a faire une mode prison mais quand je veux qu'il quitte la prison bha je suis tp mais je ne vois rien, pas de route, batiment, vehicule..
voici mon code
[spoiler] }
case 7:
{
if(Jailed[playerid] == 1)
{
GameTextForPlayer(playerid,"t'es en prison!!",4000,3);
return 1;
}
new strv[170];
format(strv, 170, "~ You have been jailed");
SendClientMessage(SelectedPlayer[playerid],COLOR_WHITE, strv);
SetPlayerPos(SelectedPlayer[playerid], 264.8763,81.9862,1001.0390);
SetPlayerInterior(SelectedPlayer[playerid], 6);
}[/spoiler]
ca c'est pour qu'il soit en prison
et maintenant pour qu'il n'y soit plus je l'ai fait tp
[spoiler]case 22:
{
new PName[MAX_PLAYER_NAME],string[128];
SendClientMessage(playerid,0x00ff00ff,"");
GetPlayerName(SelectedPlayer[playerid],PName,sizeof PName);
format(string,sizeof string,"t'es parti ouf {FF002B}%s",PName);
SendClientMessage(playerid,COLOR_WHITE,string);
SendClientMessage(playerid,0x00ff00ff,"");
SetPlayerPos(playerid, 1934.8811,-2305.5283,13.5469);
GameTextForPlayer(SelectedPlayer[playerid],"ouf enfin libre!",4000,3);
}[/spoiler]
mais je suis bien a l'endoir defini mais je vois rien...
si vous avez une idée, mais je voudrait aussi ajouter un timer, c'est à dire que au bout de 60 seconde, le joueur est tp
c'est possible avec settimer mais avec mon soucis ca risque pas de marcher ^^
-
Après ton SetPlayerPos dans le deuxième bout de code tu dois rajouter ceci :
SetPlayerInterior(SelectedPlayer[playerid], ID_Interieur );
En remplaçant ID_Interieur par l'ID de l'intérieur dans lequel le joueur est téléporté. Dans ton cas, puisque ton joueur sort de prison, je pense que le joueur est téléporté "dehors" donc l'ID sera 0.
-
cela ne fonctionne pas j'ai mis 0 en id et rien c'est pareil...
-
Et bien remplace SelectedPlayer[playerid] par playerid.
Sinon où est-ce censé te téléporter ?
-
re,
bhen en prison et pour sortir je m'en fous ^^
j'ai mis l'aeroport de los santos
par contre j'i fait une gaff ^^
je me suis banni --' vous moquez pas c'est vrai je voulais test ma command et j'avais pas pensez ^^
elle est ou la ban list comme dans minecraft ^^?
parce que là je peux plus y aller ^^
-
samp.ban
Dans ton fichier serveur, supprime la ligne où y a ton pseudo.
-
je n'ai pas ce fichier....
et dans le fichier serveur je ne vois pas mon pseudo
-
Normalement le fichier samp.ban existe, sinon tu pourrais te connecter.
-
je sais j'ai rentré son nom dans la barre de recherche windows mais rien
et quand je me co il me dit que je suis banni --'
-
Dans la console de ton serveur tape la commande suivante :
unbanip [IP]
avec ton IP (et sans les crochets)
Si ça ne fonctionne pas fait :
reloadbans
Ceci devrait débannir toutes les IP.
-
merci de ton aide j'ai reussi :biggrin:
bon revenons à nos moutons, je ne peux toujours pas quitter la prison; il se tp mais je vois rien...
voila à quoi ca ressemble
http://t1.gstatic.com/images?q=tbn:ANd9GcQ7Eu0YUsO_KX7KJoIsvc9Ve7UMnh3LaE89FVNBDh0YStuM8yL1Mu4mE46W (http://t1.gstatic.com/images?q=tbn:ANd9GcQ7Eu0YUsO_KX7KJoIsvc9Ve7UMnh3LaE89FVNBDh0YStuM8yL1Mu4mE46W)
(c'est pas mon serveur :king:)
-
SetPlayerInterior(playerid, 0);
-
ok je l'ai deja fait mais pas avec 0 je le met en remplacant playerid pas selectplayer[playerid]
vu que c'est une command admin
c'est bon ça marche je suis trop content, je commence à me debrouiller ^^
merci je pense avoir fini merci
je vais maintenant ajouter une commande admin pour le jetpack c'est ça?
[spoiler]// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("jetpackmod");
print("--------------------------------------\n");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(IsPlayerAdmin(playerid))
{
if(!strcmp(cmdtext, "/jetpack", true))
{
SendClientMessage(playerid, 1, "tu as un jetpack!");
SetPlayerSpecialAction(playerid,2);
return 1;
}
}
return 0;
}
#endif
[/spoiler]
? merci
-
Je pense que tu devrais compiler et/ou tester ça en jeu (si la compilation a fonctionné) avant de poser des questions.
-
je viens de tester mais il me dit commande invalide :dry:
edit : resolu x)
Maintenant (oui je sais mais j'ai plein d'idées ) ça fait vivre le forum :happy:
je souhaiterai comme je viens de le voir sur un serveur
afficher les mort, et le tueur sur l'ecran, en dessous de la barre de vie, et avec la cause de la mort
ex
trolol kill trolololol
ou
trolol c'est suicidé
par exemple x)
-
Voilà ce que tu cherches :
http://wiki.sa-mp.com/wiki/SendDeathMessage_FR (http://wiki.sa-mp.com/wiki/SendDeathMessage_FR)
-
merci à toi
je vais me debrouiller x)
édit (j'y pense maintenant :cool:)
c'est tout bête ^^c'est bon merci !
je viens de comprendre l'utilité de SAMP debug pour les positions c'est trop pratique :thumbup: :thumbup:
merci à vous x) c'est vrai que c'est mieux en codant une ae blanche x)
je vais a present me lancer tranquillement dans un mode de gangwar avec les base et puis tout x)
par contre je ne peux pas modifier une map?
j'ai vu des serveurs avec une map qui change?
je peux pas?
j'ai trouvé un lien pour editer les map mais il est mort....
on peut encore?? j'aimerai modifier un peu ma map?
merci à vous tous!!!
-
par contre je ne peux pas modifier une map?
j'ai vu des serveurs avec une map qui change?
je peux pas?
j'ai trouvé un lien pour editer les map mais il est mort....
on peut encore?? j'aimerai modifier un peu ma map?
Toutes ses questions ont une seule réponse: Oui tu peux modifer les maps.
Cadeau: http://www.solidfiles.com/d/202f8748b0/ (http://www.solidfiles.com/d/202f8748b0/) (Je viens de le réupload rien que pour toi :happy: )
-
t es serieu la o0
merci fallait pas tu es trop sympa je test ca demain trop cool merci bro !
-
Y a pas de soucis :p
-
encore merci por le logiciel c'est exactement ce que je cherchais merci beaucoup infu x)
depuis le temps que je cherche ...
Par contre je n'ai pas trouvé de tuto sur son utilisation?
c'est assez compliqué ^
j'ai trouvé le deplacement, et pour suprimmer un objet
quelqu'un aurait il u tuto?
et comment on insere un objet? Parce que je fais insere object mais il me demande un id ou se trouve l'id des objets?
et enfin comment je sauvegarde? sachant que j'aimerai pouvoir revenir à la premiere map, par default ?
-
Ici: tu trouves l'id des objets http://www.movieserv.net/forum/index.php?topic=1712.0 (http://www.movieserv.net/forum/index.php?topic=1712.0)
De base, la touche pour ajouter un objet c'est "INSER". L'object apparaîtra au bout de la souris ;)
-
Alors pour la liste d'ID d'objet :
http://wiki.sa-mp.com/wiki/Model_ID (http://wiki.sa-mp.com/wiki/Model_ID) (Officiel, mais sans image)
http://www.cvdr-rp.com/t22536-tutoriel-info-listing-des-objets-de-gta-san-andreas-et-de-sa-mp (http://www.cvdr-rp.com/t22536-tutoriel-info-listing-des-objets-de-gta-san-andreas-et-de-sa-mp) (Pas officiel, mais avec image)
Les objets n'y sont pas tous, mais une grande majorité.
Pour ce qui est de sauvegarder, tu ne peux pas, mais par contre tu peux exporter le code donné dans un script.
Pour ça c'est simple, il suffit de voir ShowCode, et tu copie colle tout ce que tu veux dans ton script (dans une callback).
Tu peux aussi importer du code, pour reprendre un mapping là où tu l'avais laissé avec le bouton Import.pwn tout en haut à gauche. Ce bouton se chargera d'importer tout les CreateObject (mais pas les CreateVehicle).
Tu peux aussi importer un code que tu as "clique droit>>copier" grâce au bouton Import Paste.