Tutorial MoveObject Dupa cum stiti, a aparut versiunea de SA:MP 0.3d, care ne-a adus niste modificari in functia MoveObject. In versiunea 0.3c aceasta functie este mai 'greoaie', dupa cum a-ti observat obiectele care erau pe baza de mutat s-au bug-uit asa ca va v-oi prezenta un mic tutorial de a repara acest BUG. Cu acest programel puteti sa va creati obiectul: http://forum.sa-mp.com/showthread.php?t=282801 Parametrii functiei: (objectid, Float:X, Float:Y, Float:Z, Float:Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0)
objectid ID-ul obiectului care dorim sa mutam
Float:X Cordonata X
Float:Y Cordonata Y
Float:Z Cordonata Z
Float:Speed Viteza de mutare a obiectului (unitati pe secunda)
Float:RotX Rotatia X a obiectului
Float:RotY Rotatia Y a obiectului
Float:RotZ Rotatia Z a obiectului
Sa incepem:
Pentru prima data trebuie sa definim obiectul, la inceputul script-ului:
new obiect;
Dupa care la OnGameModeInit cream obiectul:
obiect = CreateObject(ModelObiect, Xinchis, Yinchis, Zinchis, RotatiaXinchis, RotatiaYinchis, RotatiaZinchis);
Nota: Xinchis, Yinchis, Zinchis, RotatiaXinchis, RotatiaYinchis, RotatiaZinchis = ne va trebui cordonatele obiectului cand bariera/poarta este inchisa.
Iar acum ca sa mutam obiectul (o puneti la o comanda sau unde doriti voi):
MoveObject(obiect, Xdeschis, Ydeschis, Zdeschis, 1, RotXdeschis, RotYdeschis, RotZdeschis)
Nota: Xdeschis, Ydeschis, Zdeschis, 1, RotXdeschis, RotYdeschis, RotZdeschis = ne va trebui cordonatele obiectului cand bariera/poarta este deschisa. Sa nu uitam, 1 este viteza de mutare a obiectului (unitati pe secunda)
Iar daca doriti sa se inchida automat bariera/poarta ne va trebui un timer:
forward BariraSeInchide() // La inceputul script-ului;
SetTimer("BariraSeInchide", 5000, false);// O punem la o comanda sau unde doriti voi
"BariraSeInchide" - Numele functiei pentru a apela un string.
5000 - Intervalul in milisecunde (1000 = o secunda)
false - Daca doriti sa se repete acest timer scrieti true daca doriti sa nu se repete scrieti false
Iar acum cream callback-ul forward-at 'BariraSeInchide':
public BariraSeInchide()
{
MoveObject(obiect, Xinchis, Yinchis, Zinchis, 1, RotatiaXinchis, RotatiaYinchis, RotatiaZinchis)
return 1;
} La MoveObject(obiect, Xinchis, Yinchis, Zinchis, 1, RotatiaXinchis, RotatiaYinchis, RotatiaZinchis) folosim cordonatele din OnGameModeInit (ceea ce creaza obiectul)