-
Üdv. Egy olyan problémával fordulok hozzátok, hogy amikor valahol létrehozok egy objectet
pl:
GetPlayerPos(playerid, LETRAX, LETRAY, LETRAZ);
letraobj[playerid] = CreateObject(1437,LETRAX,LETRAY,LETRAZ-2,0.0,0.0,0,0.0);
Majd editelem, elviszem a létrehozott koordinátától vagy 20méterre.
EditObject(playerid, letraobj[playerid]);
Lementem. Jó, minden rendben.
De mikor fel akarom venni, az object a létrehozott koordinátánál marad. De végülis az object máshol van.
hiába kérem le az object koordinátáját. Nem lesz jó.
GetObjectPos(letraobj[playerid], LETRAX, LETRAY, LETRAZ);
GetPlayerPos(playerid, LETRAX, LETRAY, LETRAZ);
Ha nem értitek hogy mit is akartam kifejezni, írjátok le :D és bõvebben kifejtem.
Aki segít megy a +!
Elõre is köszi!
Hogy lehet SetObjectPos-olni, mikor már lementettem az objectet?
-
hát én elõször a getobjectpos-ra gondoltam, de ahogy olvastam tovább, egyre inkább nem értettem...
mi a célod azzal a létra objecttel?
-
Ez egy kocsog létra ;D
Amúgy az, hogy mikor lementettem az edit objectnél, akkor abban az új koordinátában legyen, ne a létrehozott koordinátában.
-
Ez egy kocsog létra ;D
Amúgy az, hogy mikor lementettem az edit objectnél, akkor abban az új koordinátában legyen, ne a létrehozott koordinátában.
akkor kapizsgálom..
#include <a_samp>
#include <zcmd>
new Float:LETRAX, Float:LETRAY, FLOAT:LETRAZ;
new letraobj[MAX_PLAYERS];
CMD:letra(playerid)
{
GetPlayerPos(LETRAX, LETRAY, LETRAZ);
letraobj[playerid] = CreateObject(1437,LETRAX,LETRAY,LETRAZ-2,0.0,0.0,0,0.0);
return 1;
}
CMD:Edit(playerid)
{
EditObject(playerid, letraobj[playerid]);
return 1;
}
CMD:objectment(playerid)
{
GetObjectPos(letraobj[playerid], LETRAX, LETRAY, LETRAZ);
//ide mondjuk a dini, vagy bármit is akarsz vele...
return 1;
}
nekem ez jött le belõle. ennek így mûködnie kell xd
EDIT:
most gondolkozom, hogy ha te mented a rotálást (forgatást) is, annak kell még plusz 3 változó.....
szóval lehet, hogy eddig is azért nem úgy ment, ahogy te szeretnéd...vagy nem tudom.xd
-
Õõõh, nem teljesen így értem.
A probléma.
Elkezdem editelni
CMD:Edit(playerid)
{
EditObject(playerid, letraobj[playerid]);
return 1;
}
Jó editeltem, rámentem a köcsög Save-ra.
Ott maradt az object, minden rendben.
De mikor fel akar venni a létrát, ugye
if(IsPlayerInRangeOfPoint(playerid, 4.0, LETRAX, LETRAY, LETRAZ))
és ha oda megyek az objecthez, ahova lementettem, akkor azt írja nem vag a létra közelében.
De ahol létrehoztam ott jó.
Fejlesztettem az object ment parancsodat.
CMD:objectment(playerid)
{
GetObjectPos(letraobj[playerid], LETRAX, LETRAY, LETRAZ);
GetObjectRot(letraobj[playerid], LETRARotX, LETRARotY, LETRARotZ);
SetObjectPos(letraobj[playerid], LETRAX, LETRAY, LETRAZ);
SetObjectRot(letraobj[playerid], LETRARotX, LETRARotY, LETRARotZ);
SendClientMessage(playerid, FEHER, \"Izéne, elvileg lementettem!\");
return 1;
}
Hogy legyen ott az object ahol lementettem a save-al.
De mikor beírom, vissza kerül a helyére, ahol létrehoztam.
ÁÁ nem tudom jobban elmagyarázni :-X
-
próbáld meg másik változóra menteni, ne arra, amire létrehoztad..és arra ellenörzöd le az isplayerinrangeofpoint-ot....
-
Az OnPlayerEditObject alatti részt másold be(AZ EGÉSZET).