dark228
Умник
Добрый день, сегодня я вам предоставлю сис - му скейтов.На данном форуме нашел ток 1 сис - му, и - то в виде FS.Вобщем я решил сделать свой урок.( Начнем )
Добавим это ко всем define
Ко всем переменным.
А теперь добавим команду /skate( у меня на DC_CMD)
Для обычного команднго процессора. Поменяйте вот это
На это
Продолжим.
Теперь добавим в паблик OnPlayerKeyStateChange
Вот и все. Прошу меня не бить за Быдл - код.
Добавим это ко всем define
PHP:
#define INDEX_SKATE (0)
PHP:
enum Skate
{
bool:Active,
Skatert,
};
new InfoSkate[MAX_PLAYERS][Skate];
new sActive[MAX_PLAYERS];
new skate[MAX_PLAYERS];
PHP:
CMD:skate(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
{
ApplyAnimation(playerid, "CARRY","null",0,0,0,0,0,0,0);
ApplyAnimation(playerid, "SKATE","null",0,0,0,0,0,0,0);
ApplyAnimation(playerid, "CARRY","crry_prtial",4.0,0,0,0,0,0);
SetPlayerArmedWeapon(playerid,0);
if(!InfoSkate[playerid][Active])
{
InfoSkate[playerid][Active] = true;
DestroyObject(InfoSkate[playerid][Skatert]);
RemovePlayerAttachedObject(playerid,INDEX_SKATE);
if(skate[playerid] == 0)
{
SetPlayerAttachedObject(playerid,INDEX_SKATE,19878,6,-0.055999,0.013000,0.000000,-84.099983,0.000000,-106.099998,1.000000,1.000000,1.000000);
}
else
{
// the skate is placed in the back
SetPlayerAttachedObject(playerid,INDEX_SKATE,19878,1,0.055999,-0.173999,-0.007000,-95.999893,-1.600010,24.099992,1.000000,1.000000,1.000000);
PlayerPlaySound(playerid,21000,0,0,0);
}
}
else
{
InfoSkate[playerid][Active] = false;
DestroyObject(InfoSkate[playerid][Skatert]);
RemovePlayerAttachedObject(playerid,INDEX_SKATE);
PlayerPlaySound(playerid,21000,0,0,0);
skate[playerid] = 0;
}
}
else
{
SendClientMessage(playerid,-1,"{FFFFFF}INFO: {00B7FF}Чтобы пользоваться скейтом, надо быть не в машине{FFFFFF}!");
}
return true;
}
PHP:
CMD:skate(playerid)
PHP:
if(strcmp(cmd, "/skate", true) == 0)
Теперь добавим в паблик OnPlayerKeyStateChange
PHP:
if(InfoSkate[playerid][Active] && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
static bool:act;
SetPlayerArmedWeapon(playerid,0);
if(newkeys & KEY_HANDBRAKE)
{
if(sActive[playerid] == 0)
{
ApplyAnimation(playerid, "SKATE","skate_run",4.1,1,1,1,1,1,1);
}
else
{
ApplyAnimation(playerid, "SKATE","skate_sprint",4.1,1,1,1,1,1,1);
}
if(!act)
{
act = true;
RemovePlayerAttachedObject(playerid,INDEX_SKATE);
DestroyObject(InfoSkate[playerid][Skatert]);
InfoSkate[playerid][Skatert] = CreateObject(19878,0,0,0,0,0,0);
AttachObjectToPlayer(InfoSkate[playerid][Skatert],playerid, -0.2,0,-0.9,0,0,90);
}
}
}
if(oldkeys & KEY_HANDBRAKE)
{
static bool:act;
ApplyAnimation(playerid, "CARRY","crry_prtial",4.0,0,0,0,0,0);
if(act)
{
act = false;
DestroyObject(InfoSkate[playerid][Skatert]);
RemovePlayerAttachedObject(playerid,INDEX_SKATE);
if(skate[playerid] == 0)
{
SetPlayerAttachedObject(playerid,INDEX_SKATE,19878,6,-0.055999,0.013000,0.000000,-84.099983,0.000000,-106.099998,1.000000,1.000000,1.000000);
}
else
{
SetPlayerAttachedObject(playerid,INDEX_SKATE,19878,1,0.055999,-0.173999,-0.007000,-95.999893,-1.600010,24.099992,1.000000,1.000000,1.000000);
}
}
}
Последнее редактирование:
