[Include] Измнение гравитации для игрока - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Include] Измнение гравитации для игрока
Herro[CM] Дата: Среда, 09.09.2015, 22:56 | Сообщение # 1
Бывалый
Сообщений: 425
Статус: Offline
Данный include позволит изменить гравитацию для конкретного игрока.
Код

#include <a_samp>
   
#if defined _setgravity_included
   #endinput
#endif
#define _setgravity_included
   
static bool:moving[MAX_PLAYERS char];
static falltime[MAX_PLAYERS];
static Float:velZ[MAX_PLAYERS];
static Float:gravity[MAX_PLAYERS];
static bool:setgravity[MAX_PLAYERS char];
   
SetGravity_OnPlayerConnect(playerid)
{
     moving{playerid} = false;
     velZ{playerid} = 0.0;
     gravity[playerid] = 0.0;
     setgravity{playerid} = false;
}
   
SetGravity_OnPlayerUpdate(playerid)
{
     if(setgravity{playerid} && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
     {
         new Float:x, Float:y, Float:z;
         GetPlayerVelocity(playerid, x, y, z);
         new anim = GetPlayerAnimationIndex(playerid);
         if(anim == 1130 || anim == 1132 || anim == 1195)
         {
             if(!moving{playerid} || z == 0.0)
             {
                 velZ[playerid] = z;
                 moving{playerid} = true;
                 falltime[playerid] = GetTickCount();
             }
             new time = GetTickCount()-falltime[playerid];
             z = (gravity[playerid]*time)/1000.0;
             if(z > 1.17) z = 1.17;
             SetPlayerVelocity(playerid, x, y, velZ[playerid]-z);
         }else{
             moving{playerid} = false;
         }
     }
}
   
stock SetPlayerGravity(playerid, Float:newgravity)
{
     setgravity{playerid} = true;
     gravity[playerid] = newgravity*50.0;
     moving{playerid} = false;
}
   
stock ResetPlayerGravity(playerid)
{
     setgravity{playerid} = false;
     gravity[playerid] = 0.0;
     moving{playerid} = false;
}


Установка:
Код

#include <setgravity>   - Кидаем в начало мода.  
SetGravity_OnPlayerConnect(playerid);   - кидаем в public OnPlayerConnect(playerid)
SetGravity_OnPlayerUpdate(playerid);   - кидаем в public OnPlayerUpdate(playerid)



Пример:
Код
public OnPlayerCommandText(playerid, cmdtext[])
{
     if(!strcmp(cmd,"/sgravity",true))
     {
         if(!IsPlayerAdmin(playerid)) return 1;
     tmp = strtok(cmdtext, idx);
     if(!strlen(tmp) || !isNumeric(tmp)) return SendClientMessage(playerid,CGRAY,"/sgravity [ID игрока] [gravity]");
     new id = strval(tmp);
     if(!IsPlayerConnected(id)) return SendClientMessage(playerid,CGRAY,"Вы ввели не верный ID");
     tmp = strtok(cmdtext, idx);
     new Float:gravity;
     gravity = floatstr(tmp);
         SetPlayerGravity(id,gravity);
     return 1;
     }
     return 1;
}  




Когда нет знания, есть мнение.
Surex Дата: Суббота, 02.07.2016, 14:04 | Сообщение # 2
Боец
Сообщений: 137
Статус: Offline
полезно

Плисс Дата: Вторник, 19.07.2016, 20:40 | Сообщение # 3
Боец
Сообщений: 70
Статус: Offline
Кросс
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
aprilez9 [15:57]

am9350450 [14:36]

dcvfre [11:04]

Sheroz [10:38]

dominiquevp60 [08:59]

derrickuy11 [05:48]

leannaaw60 [04:45]

nonaxn11 [23:52]

arbuzikkks [17:38]

gwendolyngd2 [16:08]

Drywallwje [11:38]

TronAccs [05:11]

danilka05cher [03:05]