Cum sa creezi o poarta [ SA:MP 0.3.7 ] + miscarea acesteia -
QuizakaBeto - 17.12.2017
Acest tutorial este facut , pentru incepatori ( cum am fost si eu candva, dar pe mine nu m-a invatat nimeni , a trebuit sa invat singur ) asa ca, o sa va las mai jos cativa pasi. Daca nu intelegeti pute-ti sa-mi dati un mesaj pe skype ( beto.alberto25 ) sau aici printr-un reply / PM !
Pasii:
PASUL 1 :
Код:
Asigurati-va ca aveti urmatorul public:
public OnPlayerConnect
La acest public v-eti adauga mapping-ul
PASUL 2 :
Creeati poarta in mapping, un exemplu de code ar fi:
Код:
CreateDynamicObject(968, 1126.96619, -1291.97839, 13.45620, 0.00000, 90.00000, 0.00000);
PASUL 3 :
Pune-ti obiectul ca sa fie citit, de catre script
Pune-ti urmatorea linie:
Код:
new numeleobiecutlui;
new numeleobiectuluistatus = 0;
PASUL 4 :
Modificati la linia cu CreateDynamicObject astfel:
Код:
numeleobiectului = CreateDynamicObject(968, 1126.96619, -1291.97839, 13.45620, 0.00000, 90.00000, 0.00000);
PASUL 5:
Faceti comanda de miscare a gate-ului
Aici aveti doua optiuni:
1) Cu statusul portii ( pentru scripteri umpic mai avansati )
2) Cu doua comenzi ( pentru incepatori,
recomandat daca nu ai mai facut asa ceva vreodata )
Eu o sa va arat ambele variante, ramane la laltitudinea voastra pe care o alegeti
Optiunea 1 :
Код:
if(strcmp(cmd, "/comanda", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(numeleobiectuluistatus == 0)
{
MoveDynamicObject(numeleobiectului, 1126.96619, -1291.97839, 13.45620, 0.50, 0.00000,0.00000, 0.00000);
numeleobiectuluistatus = 1;
}
else if(numeleobiectuluistatus == 1)
{
MoveDynamicObject(numeleobiectului, 1126.96619, -1291.97839, 13.45620, 0.50, 0.00000,
90.00000, 0.00000);
numeleobiectuluistatus = 0;
}
}
}
}
Optiunea 2 :
Код:
COMMAND:comanda(playerid, params[])
{
MoveDynamicObject(numeleobiectului, 1126.96619, -1291.97839, 13.45620, 0.50, 0.00000,0.00000, 0.00000);
}
COMMAND:comanda2(playerid, params[])
{
MoveDynamicObject(numeleobiectului, 1126.96619, -1291.97839, 13.45620, 0.50, 0.00000, 90.00000, 0.00000);
}
Re: Cum sa creezi o poarta [ SA:MP 0.3.7 ] + miscarea acesteia -
edyun - 21.12.2017
Te-ai complicat prea mult, codul e indentat prost, nu vad de ce else if, puteai pune doar else, pentru ca daca nu e 0 e clar 1 logic , dar in fine...
Re: Cum sa creezi o poarta [ SA:MP 0.3.7 ] + miscarea acesteia -
BlackGamer04 - 08.01.2018
Alta metoda cu timer
Код:
public OnGameModeInit()
{
new poarta = CreateObject(980, 2720.20020, -2405.67432, 12.53250, 0.00000, 0.00000, 89.00000); //Obiectul
return 1;
CMD:opengate(playerid, params[])
{
if (!IsPlayerInRangeOfPoint(playerid, 10.0, 2720.20020, -2405.67432, 12.53250)) return SendClientMessage(playerid, 0xFFFFFFFF, "You are not at the LS Port Gate!"); // verifica daca esti in apropierea portii
SendClientMessage(playerid, 0xFFFFFFFF, "Los Santos Port Gate has been opened. Closing after 10 seconds!");
SetTimer("closegatelsport", 10000, false);// Incepe un timer de 10 secunde
MoveObject(poarta, 2720.59888, -2395.50293, 12.53250, 00.00000); // muta obiectul
return 1;
}
forward closegatelsport();
public closegatelsport()
{
MoveObject(poarta, 2720.20020, -2405.67432, 12.53250, 00.00000); //inchide poarta dupa 10 secunde
}
}