Am sa va explic cu sa faceti o poarta cu un timer ca sa se inchida automat.
In primul rand trebuie sa cream poarta si functia in care va fi timerul
La inceputul scriptului oriunde adaugati
Code: [Select]
new poarta;
new poartatimer;
Cu astea am definit existenta portii si timerului ei.
Acum la forward facem :
Code: [Select]
forward poartatimer;
Asa am creat functia timerului
La OnGameModeInit adaugam
Code: [Select]
poarta = CreateObject(id,x,y,z,rx,ry,rz);
Asta e poarta
Asa arata o poarta la mine
Code: [Select]
pgate = CreateObject(980, -883.455811, -768.902161, 150.396255, 354.8434, 354.8434, 341.8745);
Acum sa ne ocupam de comanda care sa deschida poarta:
la OnPlayerCommandText
Adaugi ceva in genul asta :
Code: [Select]
if(strcmp(cmdtext, "/deschide", true) == 0)
{
MoveObject(poarta,x, y, z,viteza);// deci asta misca obiectul la coordonatele selectate de dv.
SetTimer("poartatimer",30000,false);//aici este timerul in sine cu 30 de secunde pana la inchiderea portii
return 1;
}
Asa acum sa punem timerul sa inchide poarta:
Oriunde in gm punem randurile urmatoare:
Code: [Select]
public poartatimer()
{
MoveObject(poarta,x,y,z,viteza);// coordonatele de inchidere ale portii de obicei coordonatele originale ale portii
return 1;
}// aceasta este timerul nu sunt multe de explicat la el timerul poate fi folosit la mai mult decat la inchiderea portilor poate fi folosit la vitezometre,rank sistem multe lucruri trebuie doar sa stii cum sa il folosesti
Acum sa vad ce a-si putea sa mai explic sa o fac mai simplu pentru voi:
x = coordonata x ca la pgate a mea x = -883.455811
y = coordonata y ca la pgate y = -768.902161
z = coordonata z ca la pgate z = 150.396255
rx = coordonata de rotatie x la pgate rx = 354.8434
ry = coordoanta de rotatie y de la pgate ry = 354.8434
rz = coordonata de rotatie z de la pgate rz = 341.8745
viteza = viteza cu care se deplaseaza obiectul de exemplu : 5
Aici este commanda pentru a deschide pgate :
Code: [Select]
if(strcmp("/opengate", cmdtext, true, 10) == 0 && IsPlayerAdmin(playerid))
{
if (pgatevar == 0)
{
MoveObject(pgate,-882.6960,-769.4026,162.5806,5);
SendClientMessage(playerid, COLOR_BLUE,"[Paradise] Porta paradisului este deschisa.");
pgatevar = 1;
}
else
{
MoveObject(pgate,-883.455811, -768.902161, 150.396255,5);
SendClientMessage(playerid, COLOR_BLUE,"[Paradise] Poarta paradisului este inchisa");
pgatevar = 0;
}
return 1;
}
In primul rand trebuie sa cream poarta si functia in care va fi timerul
La inceputul scriptului oriunde adaugati
Code: [Select]
new poarta;
new poartatimer;
Cu astea am definit existenta portii si timerului ei.
Acum la forward facem :
Code: [Select]
forward poartatimer;
Asa am creat functia timerului
La OnGameModeInit adaugam
Code: [Select]
poarta = CreateObject(id,x,y,z,rx,ry,rz);
Asta e poarta
Asa arata o poarta la mine
Code: [Select]
pgate = CreateObject(980, -883.455811, -768.902161, 150.396255, 354.8434, 354.8434, 341.8745);
Acum sa ne ocupam de comanda care sa deschida poarta:
la OnPlayerCommandText
Adaugi ceva in genul asta :
Code: [Select]
if(strcmp(cmdtext, "/deschide", true) == 0)
{
MoveObject(poarta,x, y, z,viteza);// deci asta misca obiectul la coordonatele selectate de dv.
SetTimer("poartatimer",30000,false);//aici este timerul in sine cu 30 de secunde pana la inchiderea portii
return 1;
}
Asa acum sa punem timerul sa inchide poarta:
Oriunde in gm punem randurile urmatoare:
Code: [Select]
public poartatimer()
{
MoveObject(poarta,x,y,z,viteza);// coordonatele de inchidere ale portii de obicei coordonatele originale ale portii
return 1;
}// aceasta este timerul nu sunt multe de explicat la el timerul poate fi folosit la mai mult decat la inchiderea portilor poate fi folosit la vitezometre,rank sistem multe lucruri trebuie doar sa stii cum sa il folosesti
Acum sa vad ce a-si putea sa mai explic sa o fac mai simplu pentru voi:
x = coordonata x ca la pgate a mea x = -883.455811
y = coordonata y ca la pgate y = -768.902161
z = coordonata z ca la pgate z = 150.396255
rx = coordonata de rotatie x la pgate rx = 354.8434
ry = coordoanta de rotatie y de la pgate ry = 354.8434
rz = coordonata de rotatie z de la pgate rz = 341.8745
viteza = viteza cu care se deplaseaza obiectul de exemplu : 5
Aici este commanda pentru a deschide pgate :
Code: [Select]
if(strcmp("/opengate", cmdtext, true, 10) == 0 && IsPlayerAdmin(playerid))
{
if (pgatevar == 0)
{
MoveObject(pgate,-882.6960,-769.4026,162.5806,5);
SendClientMessage(playerid, COLOR_BLUE,"[Paradise] Porta paradisului este deschisa.");
pgatevar = 1;
}
else
{
MoveObject(pgate,-883.455811, -768.902161, 150.396255,5);
SendClientMessage(playerid, COLOR_BLUE,"[Paradise] Poarta paradisului este inchisa");
pgatevar = 0;
}
return 1;
}