99wudi
|
分享:
▼
x0
|
[1.6][插件] 关于掉钱留到下局的问题,急求助
各位高手,请问掉的钱留到下局的源码怎么写?? #include <amxmodx> #include <fakemeta> #define PLUGIN "Players Drop Money" #define AUTHOR "Sh!nE*" #define VERSION "1.7" #if cellbits == 32 #define OFFSET_CSMONEY 115 #else #define OFFSET_CSMONEY 140 #endif #define OFFSET_LINUX 5 #define MAXENTS 1500 new moneybox[MAXENTS] new model[] = "models/p_knife.mdl" new method, ison, m_amount, ran_money, random_nums, money_drop, money_drop_a, fadeon, divide, force //new method6 new g_msgScreenFade new bool:can_pickup[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) ison = register_cvar("amx_dropmoney","1") method = register_cvar("amx_dropmethod","2") divide = register_cvar("amx_moneydivide","2") m_amount = register_cvar("amx_dropamount","300") ran_money = register_cvar("amx_droprandom","300 500 700") random_nums = register_cvar("amx_droprandomnums","300 9000000") money_drop = register_cvar("amx_playerdrop","1") money_drop_a = register_cvar("amx_playerdropamount","1000") fadeon = register_cvar("amx_moneyfade","1") force = register_cvar("amx_dropforce","10") g_msgScreenFade = get_user_msgid("ScreenFade") register_clcmd("drop","hook_drop") register_event("DeathMsg", "deatha", "a") register_forward(FM_Touch,"player_Touch") register_logevent("round_start", 2, "1=Round_Start") } public client_connect(id) can_pickup[id]=true public client_disconnect(id) can_pickup[id]=false public plugin_precache() { precache_model(model) } public hook_drop(id) { if(!get_pcvar_num(ison) || !get_pcvar_num(money_drop)) return PLUGIN_CONTINUE new weapon,clip,ammo,money,Float:velo[3] weapon = get_user_weapon(id,clip,ammo) if(weapon == CSW_KNIFE) { if(cs_get_user_money2(id) < get_pcvar_num(money_drop_a)) money = cs_get_user_money2(id) else money = get_pcvar_num(money_drop_a) cs_set_user_money2(id,cs_get_user_money2(id) - money) can_pickup[id] = false set_task(0.3,"reset_pick",id) new start_velo = get_pcvar_num(force) * 15 new end_velo = get_pcvar_num(force) * 50 velocity_by_aim(id,random_num(start_velo,end_velo),velo) make_money(id,money,velo) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public reset_pick(id) can_pickup[id] = true public deatha() { if(!get_pcvar_num(ison)) return PLUGIN_CONTINUE new money, Float:velo[3] new victim = read_data(2) new killer = read_data(1) if(killer && killer != victim) cs_set_user_money2(killer,cs_get_user_money2(killer) - 300) switch(get_pcvar_num(method)) { case 1:{ money = get_pcvar_num(m_amount) if(cs_get_user_money2(victim) < money) { money = cs_get_user_money2(victim) cs_set_user_money2(victim,0) } else cs_set_user_money2(victim,cs_get_user_money2(victim) - get_pcvar_num(m_amount)) } case 2:{ new tempmoney = cs_get_user_money2(victim) if(money != 1) { money = (tempmoney / get_pcvar_num(divide)) cs_set_user_money2(victim,cs_get_user_money2(victim) - money) } else { cs_set_user_money2(victim,0) money = 1 } } case 3:{ new maxmoney = cs_get_user_money2(victim) money = random_num(1,maxmoney) cs_set_user_money2(victim,cs_get_user_money2(victim) - money) } case 4:{ new tempmoney2[32] get_pcvar_string(ran_money,tempmoney2,31) new tempmoney[3][6] parse(tempmoney2, tempmoney[0], sizeof tempmoney[] - 1,tempmoney[1], sizeof tempmoney[] - 1,tempmoney[2], sizeof tempmoney[] - 1) new num = random_num(1,3) switch(num) { case 1:{ money = str_to_num(tempmoney[0]) } case 2:{ money = str_to_num(tempmoney[1]) } case 3:{ money = str_to_num(tempmoney[2]) } } if(cs_get_user_money2(victim) < money) { cs_set_user_money2(victim,0) money = cs_get_user_money2(victim) } else cs_set_user_money2(victim,cs_get_user_money2(victim) - money) } case 5:{ new tempmoney22[32], num_from, num_to get_pcvar_string(random_nums,tempmoney22,31) new tempmoney1[2][6] parse(tempmoney22, tempmoney1[0], sizeof tempmoney1[] - 1,tempmoney1[1], sizeof tempmoney1[] - 1) num_from = str_to_num(tempmoney1[0]) num_to = str_to_num(tempmoney1[1]) if(num_from < 0) num_to = 0 money = random_num(num_from,num_to) if(cs_get_user_money2(victim) < money) { cs_set_user_money2(victim,0) money = cs_get_user_money2(victim) } else cs_set_user_money2(victim,cs_get_user_money2(victim) - money) } } make_money(victim,money,velo) return PLUGIN_CONTINUE } public round_start() { new money_ent while((money_ent=engfunc(EngFunc_FindEntityByString,money_ent,"classname","pdm_money")) != 0){ engfunc(EngFunc_RemoveEntity,money_ent) } }
public make_money(id,money,Float:velo[]) { new moneybags = money/1000 new moneyleft = money new Float:origin[3] new Float:angles[3] new Float:mins[3] = {-2.79, -0.0, -6.14} new Float:maxs[3] = {2.42, 1.99, 6.35} if((moneybags * 1000) < money) moneybags++ for(new i = 0; i < moneybags; ++i) { new newent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target")) if(!is_user_alive(id)) { velo[0] = random_float(1.0,150.0) velo[1] = random_float(1.0,150.0) velo[2] = random_float(1.0,150.0) } else velo[2] += 100 pev(newent,pev_angles,angles) angles[1] += random_num(1,360) pev(id,pev_origin,origin) set_pev(newent, pev_origin, origin) set_pev(newent, pev_classname, "pdm_money") engfunc(EngFunc_SetModel, newent, model) engfunc(EngFunc_SetSize,newent,mins,maxs) set_pev(newent,pev_angles,angles) set_pev(newent, pev_solid, SOLID_TRIGGER) set_pev(newent,pev_movetype,MOVETYPE_TOSS) set_pev(newent, pev_velocity,velo) engfunc(EngFunc_DropToFloor,newent) if(moneyleft == 0) return FMRES_IGNORED if(moneyleft < 1000) { moneybox[newent]=moneyleft moneyleft = 0 return FMRES_IGNORED } moneyleft -= 1000 moneybox[newent]=1000 } return FMRES_IGNORED } public player_Touch(touched, toucher) { if (!pev_valid(touched) || !is_user_alive(toucher) || !get_pcvar_num(ison) || !can_pickup[toucher]) return FMRES_IGNORED new classname[32] pev(touched, pev_classname, classname, sizeof classname - 1) if (equali(classname, "pdm_money")) { if(cs_get_user_money2(toucher) == 16000) return FMRES_IGNORED else cs_set_user_money2(toucher,cs_get_user_money2(toucher) + moneybox[touched]) if(pev_valid(touched)) engfunc(EngFunc_RemoveEntity,touched) if(get_pcvar_num(fadeon)) screen_fade(toucher) } return FMRES_IGNORED }
public screen_fade(id) { message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id) write_short(1<<12) write_short(1<<12) write_short(1<<12) write_byte(0) write_byte(200) write_byte(0) write_byte(20) message_end() } 万分感激===================
|