Dinamicno Rotiranje Objekta
Zasto ?
Trebala mi je jednostavna skripta za server koja ce mi dinamicno pomicati rampu...
Kako ?
Skirpta je jednostavna, treba postovati pravilo 90 stupnjeva...
S cim ?
Nemam pojma, ovo pitanje ni meni nije jasno xD
Znaci ovako, napravio sam skriptu jako jednostavnu koja pomice rampu.
Posto neki skripteri, pocetnici i nazalost malo bolji, neznaju napraviti eto ja sam napravio.
Skripta i nije nesto za ponositi se ali dobro dode.
Ovo sam radio jedno 10tak minuta, jer sam napravio greskicu, inace sveukupno 5 🙂
Jedino sto morate postivati je pravilo 90 stupnjeva sto znaci...
Kada radite objekt dode vam ovako:
CreateObject(model, posx, posy, posz, rotx, roty, rotz);
Znaci kada radite poziciju objekta ROTY mora biti 90.
Posto zvaka nije za seljaka 🙂
Odete u mta, pod "Fences, Walls, Gates and Berriers" odete i nadete rampu, bijelo crvene naizmjenicne kose trake...
Spawnate ju...
Dvaput kliknete na nju i pod ROTY stavite 90...
Igrate se sa ROTZ, znaci namjestate brojeve od 1 do 359 dok vam se rampa ne dode kako vam pase...
Znaci radimo kako rampa izgleda kada je zatvorena...
Kada ste to napravili namjestite je lijepo da bude zatvorena...
Dvaput kliknete na prazno i odete save...
Convertate u delux host i stanete...
Ukoliko zelite da vam sve radi molio bi vas da mjenajte ovo sto sam vam ja napisao, ostalo ne !
Zasto ?
Trebala mi je jednostavna skripta za server koja ce mi dinamicno pomicati rampu...
Kako ?
Skirpta je jednostavna, treba postovati pravilo 90 stupnjeva...
S cim ?
Nemam pojma, ovo pitanje ni meni nije jasno xD
Znaci ovako, napravio sam skriptu jako jednostavnu koja pomice rampu.
Posto neki skripteri, pocetnici i nazalost malo bolji, neznaju napraviti eto ja sam napravio.
Skripta i nije nesto za ponositi se ali dobro dode.
Ovo sam radio jedno 10tak minuta, jer sam napravio greskicu, inace sveukupno 5 🙂
Jedino sto morate postivati je pravilo 90 stupnjeva sto znaci...
Kada radite objekt dode vam ovako:
CreateObject(model, posx, posy, posz, rotx, roty, rotz);
Znaci kada radite poziciju objekta ROTY mora biti 90.
Posto zvaka nije za seljaka 🙂
Odete u mta, pod "Fences, Walls, Gates and Berriers" odete i nadete rampu, bijelo crvene naizmjenicne kose trake...
Spawnate ju...
Dvaput kliknete na nju i pod ROTY stavite 90...
Igrate se sa ROTZ, znaci namjestate brojeve od 1 do 359 dok vam se rampa ne dode kako vam pase...
Znaci radimo kako rampa izgleda kada je zatvorena...
Kada ste to napravili namjestite je lijepo da bude zatvorena...
Dvaput kliknete na prazno i odete save...
Convertate u delux host i stanete...
Ukoliko zelite da vam sve radi molio bi vas da mjenajte ovo sto sam vam ja napisao, ostalo ne !
#include
#define ROTATE_OBJECTS 2 // Broj rampi koliko ih koristimo, samo ovo mjenjajte kada dodate neku
forward NeedRotate();
forward Rotate(model);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
new Ramp, ObjectRotate;
public OnGameModeInit() {
SetTimer("NeedRotate", 1000, 1);
for(new i=0;i Ramp = CreateObject(968, 1585.1472167969, -1637.3728027344, 13.145803451538, 0, 90, 0);
Ramp = CreateObject(968, 1544.6740722656, -1630.8465576172, 13.1328125, 0, 90, 90);
//Ovo su dva primjera kako stavljati rampu, to sam ja napravio, vidite da je na ROTY 90 u oba slucaja
//Dolje u 2 slucaju je i ROTZ 90 ali to je zato sto je trebala biti okrenuta drugacije
//Ovdje dodajte dalje svoje rampe, znaci
//npr. Ramp = CreateObject...
//I tako dalje koliko ih god hocete samo gore nemojte zaboraviti dodati koliko rampa koristite
return 1; }
public NeedRotate() {
for(new i=0;i if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)) {
for(new o=0;o new Float:posx, Float:posy, Float:posz; GetObjectPos(Ramp, posx, posy, posz);
if(PlayerToPoint(10.0, i, posx, posy, posz) && ObjectRotate == 0) { Rotate(o); } } } }
return 1; }
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z) {
if(IsPlayerConnected(playerid)) {
new Float:oldposx, Float:oldposy, Float:oldposz, Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); tempposx = (oldposx -x); tempposy = (oldposy -y); tempposz = (oldposz -z);
if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } }
return 0; }
public Rotate(model) {
new Float:posx, Float:posy, Float:posz, Float:minus = 1; GetObjectRot(Ramp, posx, posy, posz); ObjectRotate++;
if(ObjectRotate < 90) { SetObjectRot(Ramp, posx, posy-minus, posz); SetTimerEx("Rotate", 20, 0, "d", model);
}else if(ObjectRotate == 90) { SetTimerEx("Rotate", 3000, 0, "d", model);
}else if(ObjectRotate > 90 && ObjectRotate < 180) { SetObjectRot(Ramp, posx, posy+minus, posz); SetTimerEx("Rotate", 20, 0, "d", model);
}else{ SetObjectRot(Ramp, posx, 90, posz); ObjectRotate = 0; }
return 1; }
I dosli smo do kraja,
nadam se da ce vam pomoci 😉
Zasluge za ulozen veliki trud i mozganje: BalkanNation
Uzivajte 😉
