
Стаж: 14 лет
Сообщений: 188
Благодарностей: 81
Полезность: 122
|
Ищу человека который сможет подредактировать плагин и исправить небольшой баг. 1. Нужно исправить баг при покупке гравитации, если нажимаешь на парашют, то гравитация исчезает. Нужно отловить когда покупают гравитацию и отбирать парашют, а после смерти отнимать гравитацию и возвращать парашют. 2. Сделать, чтобы при покупке гравитации, скорости и еще пару "плюх" нельзя было выбирать еще раз этот пункт (гравитацию, скорость...) Но, именно после покупки, а не просто нажал на пункт, денег нет, но и второй раз ты не можешь нажать на пункт. Благодарю денюшкой.(Свои косяки)  Код:
#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])) }
Надеюсь достаточно когда
|