- Регистрация
- 14 Фев 2019
- Сообщения
- 77
- Лучшие ответы
- 1
- Репутация
- 0
Решил выложить мою систему скейта, похожую на Arizona RP
Нужен streamer
Где нибудь вверху
В OnPlayerConnect
В OnPlayerKeyStateChange
В OnPlayerUpdate
Вниз мода
в OnPlayerDisconnect
Этот скейт был создан для фана. На нем можно летать и проходить сквозь стены
Чтобы поворачивать скейтом, нужно прижимать буквы A и D, чтобы кататься прижмите ПРОБЕЛ
Надеть скейт - /skatetake | Взять скейт в руки - /skate
Нужен streamer
Где нибудь вверху
PHP:
#define KEY_ACCELERATE (8)
new
addskate[MAX_PLAYERS],
SkateWait[MAX_PLAYERS],
takeskate[MAX_PLAYERS],
Skate[MAX_PLAYERS];
PHP:
addskate[playerid] = 0;
takeskate[playerid] = 0;
PHP:
if(newkeys == KEY_ACCELERATE) {
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, !"Нельзя использовать скейт в машине!");
if(addskate[playerid] == 1) CreateSkate(playerid);
}
if oldkeys == KEY_ACCELERATE *then {
if(addskate[playerid] == 2) {
SetPlayerAttachedObject(playerid,6,19878,6,-0.055999,0.013000,0.000000,-84.099983,0.000000,-106.099998,1.000000,1.000000,1.000000);
DestroyDynamicObject(Skate[playerid]);
addskate[playerid] = 1;
SkateWait[playerid] = 1;
ApplyAnimation(playerid, !"PED", "FALL_collapse", 4.1, 0, 1, 0, 0, 0, 1);
SetTimerEx("deleteskateb", 1150, 0, "d", playerid);
}
}
PHP:
if(addskate[playerid] == 2) {
new
Float:X,
Float:Y,
Float:Z;
GetDynamicObjectPos(Skate[playerid], X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z)) return StopDynamicObject(Skate[playerid]);
}
// если не хотите, чтобы игрок поворачивал скейт, то удалите код ниже:
new keys,lr,ud;
GetPlayerKeys(playerid,keys,ud,lr);
if(lr == KEY_LEFT) {
if(addskate[playerid] == 2) {
StopDynamicObject(Skate[playerid]);
new
Float:XXZ,
Float:XXA,
Float:XXC,
Float:A;
GetPlayerPos(playerid, XXZ,XXA,XXC);
GetPlayerFacingAngle(playerid, A);
SetPlayerFacingAngle(playerid, A+1);
A += 360;
XXZ += (60 * floatsin(-A, degrees));
XXA += (60 * floatcos(-A, degrees));
SetDynamicObjectRot(Skate[playerid], 0.0, 0.0, A+270);
MoveDynamicObject(Skate[playerid], XXZ,XXA,XXC-0.9000, 14);
}
}
if(lr == KEY_RIGHT) {
if(addskate[playerid] == 2) {
StopDynamicObject(Skate[playerid]);
new
Float:XXZ,
Float:XXA,
Float:XXC,
Float:A;
GetPlayerPos(playerid, XXZ,XXA,XXC);
GetPlayerFacingAngle(playerid, A);
SetPlayerFacingAngle(playerid, A-1);
A += 360;
XXZ += (60 * floatsin(-A, degrees));
XXA += (60 * floatcos(-A, degrees));
SetDynamicObjectRot(Skate[playerid], 0.0, 0.0, A+270);
MoveDynamicObject(Skate[playerid], XXZ,XXA,XXC-0.9000, 14);
}
}
PHP:
stock onskate(playerid)
{
if(takeskate[playerid] == 0) return SendClientMessage(playerid, -1, "У вас нет скейта!");
if(addskate[playerid] == 0) {
RemovePlayerAttachedObject(playerid, 5);
SetPlayerAttachedObject(playerid,6,19878,6,-0.055999,0.013000,0.000000,-84.099983,0.000000,-106.099998,1.000000,1.000000,1.000000);
SendClientMessage(playerid, 0x42B02CFF, !"Вы взяли скейт в руку, чтобы его использовать зажмите 'КЛАВИШУ ДЛЯ БЕГА'");
addskate[playerid] = 1;
}
else RemovePlayerAttachedObject(playerid, 6), addskate[playerid] = 0;
return 1;
}
stock CreateSkate(playerid)
{
if(SkateWait[playerid] == 1) return 0;
new
Float:XXZ,
Float:XXA,
Float:XXD,
Float:A;
GetPlayerPos(playerid, XXZ,XXA,XXD);
SetPlayerPos(playerid, XXZ,XXA,XXD+0.18);
ApplyAnimation(playerid, !"CLOTHES", "CLO_POSE_LOOP", 4.1, false, false, false, true, 0, true);
RemovePlayerAttachedObject(playerid, 6);
GetPlayerFacingAngle(playerid, A);
Skate[playerid] = CreateDynamicObject(19878, XXZ,XXA,XXD-0.9000, 0.000000,0.000000,A+270, -1, -1, -1, 100.0);
Streamer_Update(playerid);
A += 360;
XXZ += (60 * floatsin(-A, degrees));
XXA += (60 * floatcos(-A, degrees));
MoveDynamicObject(Skate[playerid], XXZ,XXA,XXD-0.9000, 14);
SkateWait[playerid] = 1;
addskate[playerid] = 2;
return 1;
}
forward deleteskateb(playerid);
public deleteskateb(playerid) SkateWait[playerid] = 0;
cmd:skate(playerid)
{
onskate(playerid);
return 1;
}
cmd:skatetake(playerid)
{
if(takeskate[playerid] == 0) {
SetPlayerAttachedObject(playerid,5,19878,1,0.146999,-0.155000,-0.012000,-88.499992,-4.499999,-42.999996,0.607999,0.582000,1.000000);
SendClientMessage(playerid, -1, !"Вы успешно взяли скейт!");
takeskate[playerid] = 1;
}
else {
if(addskate[playerid] == 1) RemovePlayerAttachedObject(playerid, 6);
if(addskate[playerid] == 0) RemovePlayerAttachedObject(playerid, 5);
if(addskate[playerid] == 2) {
DestroyDynamicObject(Skate[playerid]);
ApplyAnimation(playerid, !"PED", "FALL_collapse", 4.1, 0, 1, 0, 0, 0, 1);
}
SendClientMessage(playerid, -1, !"Вы успешно убрали скейт!");
takeskate[playerid] = 0;
addskate[playerid] = 0;
}
return 1;
}
PHP:
if(addskate[playerid] == 2) {
DestroyDynamicObject(Skate[playerid]);
ApplyAnimation(playerid, !"PED", "FALL_collapse", 4.1, 0, 1, 0, 0, 0, 1);
}
Чтобы поворачивать скейтом, нужно прижимать буквы A и D, чтобы кататься прижмите ПРОБЕЛ
Надеть скейт - /skatetake | Взять скейт в руки - /skate
Последнее редактирование: