Русское сообщество по скриптингу

Leap: смена кнопок активации

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Leap: смена кнопок активации

Сообщение jigore » 21 июл 2018, 01:53

Решил изменить один плагин для зм сервера, чтобы был leap и у людей, но хочу сделать его активацию после нажатия 3 раз +forward (вперед). Т.е. чтобы мог просто ходить, но если нажал три раза юзался leap.
Код: Выделить всё

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

#define PLUGIN "[ZP] WWWLeap"
#define VERSION "0.1"
#define AUTHOR "gore"

/*based on zp_leap*/

#define TASK_ID 1337

new www_leap
new www_time
new bool:g_hasLeap[33]
new Float:g_lastLeaptime[33]
new g_Leap_force
new g_Leap_height
new g_Leap_cooldown

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   g_Leap_force = register_cvar("www_force", "550")
   g_Leap_height = register_cvar("www_height", "255")
   g_Leap_cooldown = register_cvar("www_cooldown", "5.0")
   www_leap = register_cvar("www_leap","1")
   www_time = register_cvar("www_leap_time","15.0")
   
   register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
   
   register_event("DeathMsg", "death", "a")
   register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public client_disconnect(id)
{
    g_hasLeap[id] = false;
    if ( task_exists(TASK_ID+id) )
        remove_task(TASK_ID+id)
}

public death()
{
   g_hasLeap[read_data(2)] = false
}

public zp_user_humanized_pre(id)
{
   if (is_user_alive(id) && zp_get_user_zombie(id))
   {
   if (get_pcvar_num(www_leap))
   {
      set_task(1.00, "CountDown", id + 1337, "", 0, "", 0);
      new Float:leap_float = get_pcvar_float(www_time);
      set_task(leap_float, "leap_begin", id, "", 0, "", 0);
      }
   }
   return PLUGIN_HANDLED
}   

public event_round_start()
{
   for (new i = 1; i <= 32; i++)
      g_hasLeap[i] = true
}

public zp_user_infected_post(id, infector)
{
      g_hasLeap[id] = false
}

public leap_begin(id)
{
   if (!is_user_alive(id))
      return PLUGIN_HANDLED
   
   if (zp_get_user_zombie(id))
   {
      g_hasLeap[id] = true
      remove_task(TASK_ID+id)
   }
   return PLUGIN_HANDLED
}

public fw_PlayerPreThink(id)
{
   if (!is_user_alive(id))
      return FMRES_IGNORED
   
   if (leap_longjump(id))
   {
      static Float:velocity[3]
      velocity_by_aim(id, get_pcvar_num(g_Leap_force), velocity)
      
      velocity[2] = get_pcvar_float(g_Leap_height)
      
      set_pev(id, pev_velocity, velocity)
      
      g_lastLeaptime[id] = get_gametime()
   }
   
   return FMRES_IGNORED
}

leap_longjump(id)
{
   if (!g_hasLeap[id])
      return false
   
   if (!(pev(id, pev_flags) & FL_ONGROUND) || fm_get_speed(id) < 80)
      return false
   
   static buttons
   buttons = pev(id, pev_button)
   
   if (!is_user_bot(id) && (!(buttons & IN_JUMP) || !(buttons & IN_DUCK)))
      return false
   
   if (get_gametime() - g_lastLeaptime[id] < get_pcvar_float(g_Leap_cooldown))
      return false
   
   return true
}

stock fm_get_speed(entity)
{
   static Float:velocity[3]
   pev(entity, pev_velocity, velocity)
   
   return floatround(vector_length(velocity))
}

can do nothing with PAWN.
Аватара пользователя
jigore
 
Сообщения: 2
Зарегистрирован: 21 июл 2018, 01:44
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Я ничего не знаю

Re: Leap: смена кнопок активации

Сообщение NoPM_N1Ck » 22 июл 2018, 01:43

Я так понимаю, что исходник от leap для зомби?
Аватара пользователя
NoPM_N1Ck
 
Сообщения: 99
Зарегистрирован: 06 июл 2018, 18:56
Откуда: Русь
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
Опыт программирования: Меньше месяца
Языки программирования: Java

Re: Leap: смена кнопок активации

Сообщение jigore » 22 июл 2018, 12:46

NoPM_N1Ck писал(а):Я так понимаю, что исходник от leap для зомби?

да, так и есть
can do nothing with PAWN.
Аватара пользователя
jigore
 
Сообщения: 2
Зарегистрирован: 21 июл 2018, 01:44
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Я ничего не знаю


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6