Управление транспортом:
- L.ALT - Разогнать диск.
- L.ALT - Остановить диск.
- WASD - Передвижения.
Описание
Диск разгоняется, кружится плавно.
Только единственный минус, как только дерево вы срубили , то дерево просто удаляется, можно было и чтобы упало(Но я просто не когда не работал с функция MoveObject).
Работа новичку по pawn не подойдет, ибо это только основа, нужно еще сделать ферму и расставить машину и не много маппинга(Если есть маппер, напиши сделаем вместе)).
Ко всем глобальным переменным:
PHP код:
new gPlayerObject,
gPlayerVehicle,
gTimer[MAX_PLAYERS char],
gTree;
В OnGameModeInit
PHP код:
gPlayerObject = CreateObject(933, -11.27580, -101.37350, 2.0, 0.0, 0.0, 0.0);
gPlayerVehicle = CreateVehicle(574, 0.2742, -108.0702, 2.0, 0.0, -1, -1, 100);
gTree = CreateObject(725,-5.6700,-97.5638,0.0,2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(gPlayerObject, gPlayerVehicle, -0.01, 2.73, -0.62, 0.00, 0.00, 0.00);
В OnPlayerKeyStateChange
PHP код:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(newkeys & KEY_FIRE)
{
if(!GetPVarInt(playerid, "job_logger"))
{
gTimer{playerid} = SetTimerEx("@__UpdateAttachedRotPos", 10, true ,"d", playerid);
SetPVarInt(playerid, "job_logger", 1);
SendClientMessage(playerid, -1, "Включили");
}
else
{
KillTimer(gTimer{playerid});
DeletePVar(playerid,"job_logger");
SendClientMessage(playerid, -1, "Отключили");
}
}
}
Сам Callback
PHP код:
@__UpdateAttachedRotPos(playerid);
@__UpdateAttachedRotPos(playerid)
{
static
rotation_coordinates,
time_logging[MAX_PLAYERS char],
string[8];
if (rotation_coordinates > 360)
rotation_coordinates = 0;
AttachObjectToVehicle(gPlayerObject, gPlayerVehicle, -0.01, 2.73, -0.62, 0.00, 0.00, rotation_coordinates += 20);
new
Float:object_x,
Float:object_y,
Float:object_z;
GetObjectPos(gTree, object_x, object_y, object_z);
if(IsPlayerInRangeOfPoint(playerid, 6.0, object_x, object_y, object_z) && rotation_coordinates == 360)
{
format(string, sizeof string, "%d/200", ++time_logging{playerid});
if(time_logging{playerid} == 200)
{
DestroyObject(gTree);
SendClientMessage(playerid, -1, "Пройдено!");
KillTimer(gTimer{playerid});
time_logging{playerid} = 0;
}
GameTextForPlayer(playerid, string, 10000, 3);
}
}
Команда для TP
PHP код:
CMD:tptrees(playerid)
return SetPlayerPos(playerid, -11.27580, -101.37350, 2.0);
Видео обзор
Открыть/закрыть