ZM GUNXP antidote
K1noS 31.07.2012
Witam mam problem z itemem antidotum. Otoz wszystko ladnie smiga ale jak zombie uzyje antidotum to nie moze wybrac broni ;/ Zrobiłem coś takiego do GXM
Lecz wtedy mozna nastap ta bron zmieniac czyli ciagle bedzie sie wpisywac bron i mozna sobie wybierac. A ja chce cośtakiego że tylko ten co uzyje Antidotum bedzie mogl uzyc tego i to tylko raz.
register_clcmd("say /bron","show_main_menu_level"); register_clcmd("say bron","show_main_menu_level");
Lecz wtedy mozna nastap ta bron zmieniac czyli ciagle bedzie sie wpisywac bron i mozna sobie wybierac. A ja chce cośtakiego że tylko ten co uzyje Antidotum bedzie mogl uzyc tego i to tylko raz.
creepMP3 31.07.2012
Pokaz caly public od antidotum bedziesz musial dodac boola, ktory bedzie sprawdzal czy uzyles juz ta bron jezeli tak to wyskoczy Ci info, ze uzyles juz ta bron cos takiego
K1noS 31.07.2012
Mam na serwerze antidotum ze zm moze użyć i bombe antidotum że człowiek może użyć. Jak to pogodzić ? Antidotum jest już Zombie PLague wbudowane
Gość_21977_* 31.07.2012
Automatyczna wiadomość
Ten temat został przeniesiony z forum
AMX Mod X → Problemy
do
AMX Mod X → Problemy z pluginami
Ten temat został przeniesiony z forum
AMX Mod X → Problemy
do
AMX Mod X → Problemy z pluginami
K1noS 31.07.2012
O to Bomba antidotum
Załączam też plik sma zombie plague gdzie jest antidote.
Jak by ktośumiał napisaćten bool byłbym wdzięczny. proszę o szybką pomoc.
Spoiler
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <fakemeta> #include <zombieplague> #include <hamsandwich> #include <fakemeta_util> #define PLUGIN "Nowy Plugin" #define VERSION "1.0" #define AUTHOR "Sn!ff3r" new const NADE_TYPE_ANTIDOTEBOMB = 6969 new const Float:RADIUS = 240.0 new const sprite_grenade_trail[] = "sprites/laserbeam.spr" new const sprite_grenade_ring[] = "sprites/shockwave.spr" new const item_cost = 20 new const item_name[] = "Bomba Antidotum" new const model_grenade_infect[] = "models/zombie_plague/v_grenade_infect.mdl" new item_id new has_bomb[33] new cvar_enabled, cvar_fragsinfect, cvar_ammoinfect, cvar_humanbonushp, cvar_flaregrenades new g_trailSpr, g_exploSpr, g_msgScoreInfo, g_msgDeathMsg, g_msgScoreAttrib public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade") RegisterHam(Ham_Killed, "player", "fw_PlayerKilled") register_forward(FM_SetModel, "fw_SetModel") register_message(get_user_msgid("CurWeapon"), "message_cur_weapon") cvar_enabled = register_cvar("zp_antidote_bomb","1") cvar_fragsinfect = get_cvar_pointer("zp_zombie_frags_for_infect") cvar_ammoinfect = get_cvar_pointer("zp_zombie_infect_reward") cvar_humanbonushp = register_cvar("zp_antidote_bomb_extra_hp","10") cvar_flaregrenades = get_cvar_pointer("zp_flare_grenades") g_msgScoreInfo = get_user_msgid("ScoreInfo") g_msgDeathMsg = get_user_msgid("DeathMsg") g_msgScoreAttrib = get_user_msgid("ScoreAttrib") } public plugin_precache() { g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail) g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring) engfunc(EngFunc_PrecacheModel, model_grenade_infect) item_id = zp_register_extra_item(item_name,item_cost,ZP_TEAM_HUMAN) } public client_disconnect(id) { has_bomb[id] = 0 } public zp_extra_item_selected(player, itemid) { if(itemid == item_id) { has_bomb[player] = 1 fm_strip_user_gun(player,9) fm_give_item(player,"weapon_smokegrenade") } } public fw_PlayerKilled(victim, attacker, shouldgib) { has_bomb[victim] = 0 } public fw_ThinkGrenade(entity) { static Float:dmgtime pev(entity, pev_dmgtime, dmgtime) if (dmgtime > get_gametime()) return HAM_IGNORED if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_ANTIDOTEBOMB) antidote_explode(entity) return HAM_SUPERCEDE } public fw_SetModel(entity, const model[]) { if(!get_pcvar_num(cvar_enabled)) return static Float:dmgtime pev(entity, pev_dmgtime, dmgtime) if (dmgtime == 0.0) return if (equal(model[7], "w_sm", 4)) { new owner = pev(entity, pev_owner) if(!zp_get_user_zombie(owner) && has_bomb[owner]) { set_pcvar_num(cvar_flaregrenades,0) fm_set_rendering(entity, kRenderFxGlowShell, 255, 128, 0, kRenderNormal, 16) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMFOLLOW) // TE id write_short(entity) // entity write_short(g_trailSpr) // sprite write_byte(10) // life write_byte(10) // width write_byte(255) // r write_byte(128) // g write_byte(0) // b write_byte(200) // brightness message_end() set_pev(entity, pev_flTimeStepSound, NADE_TYPE_ANTIDOTEBOMB) } } } public antidote_explode(ent) { if (!zp_has_round_started()) return set_pcvar_num(cvar_flaregrenades,1) static Float:originF[3] pev(ent, pev_origin, originF) create_blast(originF) //engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, grenade_infect[random_num(0, sizeof grenade_infect - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM) static attacker attacker = pev(ent, pev_owner) has_bomb[attacker] = 0 static victim victim = -1 while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, RADIUS)) != 0) { if (!is_user_alive(victim) || !zp_get_user_zombie(victim) || zp_get_user_nemesis(victim) || zp_get_user_first_zombie(victim) || zp_get_user_last_zombie(victim)) continue SendDeathMsg(attacker, victim) FixDeadAttrib(victim) UpdateFrags(attacker, victim, get_pcvar_num(cvar_fragsinfect), 1, 1) zp_disinfect_user(victim) zp_set_user_ammo_packs(attacker,zp_get_user_ammo_packs(attacker) + get_pcvar_num(cvar_ammoinfect)) fm_set_user_health(attacker, pev(attacker, pev_health)+get_pcvar_num(cvar_humanbonushp)) } engfunc(EngFunc_RemoveEntity, ent) } public create_blast(const Float:originF[3]) { engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0) write_byte(TE_BEAMCYLINDER) // TE id engfunc(EngFunc_WriteCoord, originF[0]) // x engfunc(EngFunc_WriteCoord, originF[1]) // y engfunc(EngFunc_WriteCoord, originF[2]) // z engfunc(EngFunc_WriteCoord, originF[0]) // x axis engfunc(EngFunc_WriteCoord, originF[1]) // y axis engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis write_short(g_exploSpr) // sprite write_byte(0) // startframe write_byte(0) // framerate write_byte(4) // life write_byte(60) // width write_byte(0) // noise write_byte(255) // red write_byte(128) // green write_byte(0) // blue write_byte(200) // brightness write_byte(0) // speed message_end() engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0) write_byte(TE_BEAMCYLINDER) // TE id engfunc(EngFunc_WriteCoord, originF[0]) // x engfunc(EngFunc_WriteCoord, originF[1]) // y engfunc(EngFunc_WriteCoord, originF[2]) // z engfunc(EngFunc_WriteCoord, originF[0]) // x axis engfunc(EngFunc_WriteCoord, originF[1]) // y axis engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis write_short(g_exploSpr) // sprite write_byte(0) // startframe write_byte(0) // framerate write_byte(4) // life write_byte(60) // width write_byte(0) // noise write_byte(255) // red write_byte(164) // green write_byte(0) // blue write_byte(200) // brightness write_byte(0) // speed message_end() engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0) write_byte(TE_BEAMCYLINDER) // TE id engfunc(EngFunc_WriteCoord, originF[0]) // x engfunc(EngFunc_WriteCoord, originF[1]) // y engfunc(EngFunc_WriteCoord, originF[2]) // z engfunc(EngFunc_WriteCoord, originF[0]) // x axis engfunc(EngFunc_WriteCoord, originF[1]) // y axis engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis write_short(g_exploSpr) // sprite write_byte(0) // startframe write_byte(0) // framerate write_byte(4) // life write_byte(60) // width write_byte(0) // noise write_byte(255) // red write_byte(200) // green write_byte(0) // blue write_byte(200) // brightness write_byte(0) // speed message_end() } public UpdateFrags(attacker, victim, frags, deaths, scoreboard) { set_pev(attacker, pev_frags, float(pev(attacker, pev_frags) + frags)) fm_set_user_deaths(victim, fm_get_user_deaths(victim) + deaths) if (scoreboard) { message_begin(MSG_BROADCAST, g_msgScoreInfo) write_byte(attacker) // id write_short(pev(attacker, pev_frags)) // frags write_short(fm_get_user_deaths(attacker)) // deaths write_short(0) // class? write_short(fm_get_user_team(attacker)) // team message_end() message_begin(MSG_BROADCAST, g_msgScoreInfo) write_byte(victim) // id write_short(pev(victim, pev_frags)) // frags write_short(fm_get_user_deaths(victim)) // deaths write_short(0) // class? write_short(fm_get_user_team(victim)) // team message_end() } } stock fm_set_user_deaths(id, value) { set_pdata_int(id, 444, value, 5) } stock fm_get_user_deaths(id) { return get_pdata_int(id, 444, 5) } stock fm_get_user_team(id) { return get_pdata_int(id, 114, 5) } public SendDeathMsg(attacker, victim) { message_begin(MSG_BROADCAST, g_msgDeathMsg) write_byte(attacker) // killer write_byte(victim) // victim write_byte(1) // headshot flag write_string("grenade") // killer's weapon message_end() } public FixDeadAttrib(id) { message_begin(MSG_BROADCAST, g_msgScoreAttrib) write_byte(id) // id write_byte(0) // attrib message_end() } public replace_models(id) { if (!is_user_alive(id)) return if(get_user_weapon(id) == CSW_SMOKEGRENADE && has_bomb[id]) { set_pev(id, pev_viewmodel2, model_grenade_infect) } } public message_cur_weapon(msg_id, msg_dest, msg_entity) { replace_models(msg_entity) }
Załączam też plik sma zombie plague gdzie jest antidote.
Jak by ktośumiał napisaćten bool byłbym wdzięczny. proszę o szybką pomoc.
Załączone pliki
- zombie_plague40.sma 334,85 KB 16 Ilość pobrań