Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Полезные ссылки

Редактирование плагина

Статус пользователя DumoH4uk
сообщение 3.7.2013, 19:40
Сообщение #1


Стаж: 14 лет

Сообщений: 188
Благодарностей: 81
Полезность: 122

Ищу человека который сможет подредактировать плагин и исправить небольшой баг.
1. Нужно исправить баг при покупке гравитации, если нажимаешь на парашют, то гравитация исчезает.
Нужно отловить когда покупают гравитацию и отбирать парашют, а после смерти отнимать гравитацию и возвращать парашют.
2. Сделать, чтобы при покупке гравитации, скорости и еще пару "плюх" нельзя было выбирать еще раз этот пункт (гравитацию, скорость...) Но, именно после покупки, а не просто нажал на пункт, денег нет, но и второй раз ты не можешь нажать на пункт.

Благодарю денюшкой.(Свои косяки) boast.gif

Парашют
Код:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new para_ent[33]

public plugin_init()
{
register_plugin("Parachute", "1.3 Fixed", "KRoT@L/JTP10181 & Fixed sector")

register_event("ResetHUD", "newSpawn", "be")
register_event("DeathMsg", "death_event", "a")
}

public plugin_natives()
{
set_native_filter("native_filter")
}

public native_filter(const name[], index, trap)
{
if (!trap) return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_model("models/parachute.mdl")
}

public client_connect(id)
{
parachute_reset(id)
}

public client_disconnect(id)
{
parachute_reset(id)
}

public death_event()
{
new id = read_data(2)
parachute_reset(id)
}

parachute_reset(id)
{
if(para_ent[id] > 0)
{
if (is_valid_ent(para_ent[id]))
{
remove_entity(para_ent[id])
}
}

if(is_user_alive(id)) set_user_gravity(id, 1.0)
para_ent[id] = 0
}

public newSpawn(id)
{
if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return

new Float:fallspeed = 100 * -1.0
new Float:frame
new button = get_user_button(id)
new oldbutton = get_user_oldbutton(id)
new flags = get_entity_flags(id)
if(para_ent[id] > 0 && (flags & FL_ONGROUND))
{
if(get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)
{
if(entity_get_int(para_ent[id],EV_INT_sequence) != 2)
{
entity_set_int(para_ent[id], EV_INT_sequence, 2)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
return
}
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if(frame > 254.0)
{
remove_entity(para_ent[id])
para_ent[id] = 0
}
else
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
return
}
}
if (button & IN_USE)
{
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
if(velocity[2] < 0.0)
{
if(para_ent[id] <= 0)
{
para_ent[id] = create_entity("info_target")
if(para_ent[id] > 0)
{
entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
entity_set_edict(para_ent[id], EV_ENT_aiment, id)
entity_set_edict(para_ent[id], EV_ENT_owner, id)
entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_model(para_ent[id], "models/parachute.mdl")
entity_set_int(para_ent[id], EV_INT_sequence, 0)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
if(para_ent[id] > 0)
{
entity_set_int(id, EV_INT_sequence, 3)
entity_set_int(id, EV_INT_gaitsequence, 1)
entity_set_float(id, EV_FL_frame, 1.0)
entity_set_float(id, EV_FL_framerate, 1.0)
set_user_gravity(id, 0.1)
velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
entity_set_vector(id, EV_VEC_velocity, velocity)
if(entity_get_int(para_ent[id],EV_INT_sequence) == 0)
{
frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
entity_set_float(para_ent[id],EV_FL_fuser1,frame)
entity_set_float(para_ent[id],EV_FL_frame,frame)
if (frame > 100.0)
{
entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
entity_set_int(para_ent[id], EV_INT_sequence, 1)
entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
entity_set_float(para_ent[id], EV_FL_frame, 0.0)
entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
}
}
}
}
else if(para_ent[id] > 0)
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}
else if((oldbutton & IN_USE) && para_ent[id] > 0 )
{
remove_entity(para_ent[id])
set_user_gravity(id, 1.0)
para_ent[id] = 0
}
}


Куски гравитации.

Меню
Код:
public shop_gravity(id)
{

new szText[512]

formatex(szText, charsmax(szText), "%L", id, "GRAVITY_TITLE", cs_get_user_money(id))
new buy_gravity = menu_create(szText, "buy_gravity_submenu")

if(cs_get_user_money(id) < get_pcvar_num(shop_cvar[5]))
{
formatex(szText, charsmax(szText), "%L", id, "GRAVITY_UN", get_pcvar_num(shop_cvar[5]), get_pcvar_float(shop_cvar[9]))
menu_additem(buy_gravity, szText, "1", 0)
}else{
formatex(szText, charsmax(szText), "%L", id, "GRAVITY_BUY", get_pcvar_num(shop_cvar[5]), get_pcvar_float(shop_cvar[9]))
menu_additem(buy_gravity, szText, "1", 0)
}


Кейс
Код:
public buy_gravity_submenu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED;
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_Key = str_to_num(s_Data)

switch(i_Key)
{
case 1:
if( is_user_alive( id ) && cs_get_user_money(id) >= get_pcvar_num(shop_cvar[5]) && is_user_connected(id))
{
new Float:float_gravity_1
float_gravity_1 = get_pcvar_float(shop_cvar[9])
set_user_gravity(id, float_gravity_1)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(shop_cvar[5]))
ColorChat(id, NORMAL, "%L", 0, "BOUGHT_GRAVITY", PREFIX, get_pcvar_float(shop_cvar[9]), get_pcvar_num(shop_cvar[5]), cs_get_user_money(id))
}else{
ColorChat(id, NORMAL, "%L", 0, "ENOUGH_MONEY_GRAVITY", PREFIX, cs_get_user_money(id), get_pcvar_num(shop_cvar[5]))
}


Надеюсь достаточно когда pardon.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: