כנסו לMTA שימו אובג'קט שער.. [מי שלא יודע שיקרא מדריכים על הMTA]
עכשיו שימו את הXYZA שיצא לכם מהשער בפאבליק
PHP Code:
public OnGameModeInit()
ועכשיו שימו במוד למעלה כל ניו שאתם רוצים:
ותעשו בהתחלה של הXYZA = XXX
דוגמא:
PHP Code:
public OnGameModeInit()
{
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
XXX = CreateObject(988,2052.997,843.7755,6.703125,0.000000,0.000000,89.448699);
return 1;
}
יופי,עכשיו נבנה את הפקודה.
נלך לפאבליק
PHP Code:
public OnPlayerCommandText(playerid, cmdtext[])
והנה פקודה מוכנה:
PHP Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/open" ,true)==0)
{
MoveObject(XXX,2070.997,843.7755,6.703125,2);
return 1;
}
if(strcmp(cmdtext ,"/close" ,true)==0)
{
MoveObject(XXX,2052.997,843.7755,6.703125,2);
return 1;
}
return 0;
}
עכשיו שנו את הXYZ לאובג'קט שעשיתם בMTA רק משו קטן:אל תמחקו את הסוף של הMOVEONBJECT
,2
זה המהירות של האובג'קט..
עכשיו תשנו בפקודה OPEN את הXYZ קצת כמו בדוגמא..
יופי,עכשיו אם אתם רוצים שהשער יזוז רק כשהשחקן יהיה באזור של האובג'קט צריכים את הפונקציה ONPLAYERPOINT
למעלה במוד
PHP Code:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
למטה במוד
PHP Code:
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
עכשיו אותו פקודה רק אם הפונקציה:
PHP Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/open" ,true)==0)
{
if (PlayerToPoint(30, playerid,2052.997,843.7755,6.703125))
{
MoveObject(XXX,2070.997,843.7755,6.703125,2);
}
else { SendClientMessage(playerid, COLOR_GREY,"Destination is too far."); }
}
return 1;
}
if(strcmp(cmdtext ,"/close" ,true)==0)
{
if (PlayerToPoint(30, playerid,2052.997,843.7755,6.703125))
{
MoveObject(XXX,2052.997,843.7755,6.703125,2);
}
else { SendClientMessage(playerid, COLOR_GREY,"Destination is too far."); }
}
return 1;
}
return 0;
}
פשוט,לא?מקווה שהבנתם
תהנו...