- | Afiseaza codul
// zp_ExtraHuman #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <hamsandwich> #include <engine> #include <fakemeta_util> #include <dhudmessage> #include <zombiecrown> native zp_override_user_model(id, const model[]) #define ID_AURA (taskid - TASK_AURA) #define TASK_AURA 2500 #define ID_SKILL (taskid - TASK_SKILL) #define TASK_SKILL 3499 #define SPAWN_TASK 9965 #define DHUD // Mesajul Dhud despre zombi #define EXTRAHUMANCOUNT 4 // Cât de mult din maximul unui Hero va fi într-o rundă #define EXTRAHUMANHEALTH 300 // Cât de multă sănătate va avea un erou #define EXTRAHUMANARMOR 250 // Cât de mult are rezervarea Eroul? #define EXTRAHUMANDAMAGE 1.0 // Cât de mult se înmulteste eroul #define SPAWNTIME 20.0 // Dupa cate secunde va aparea Eroul. #define WIN_KILLED 100 // Cat ammo Pack primeste cel ce a ucis Eroul #define SPAWNCHANSE 100.0 // ?ansă (în%), pentru fiecare jucător, pentru a ob?ine un Hero în runda (scădere, astfel încât răspândirea jucătorilor este mai mică) // Dacă reduceTi Sansa, există o ?ansă că nu va fi nici un erou în rundă. #define KILLCOUNT 1 // Cate zombie trebuie ucise pentru a ob?ine un bonus #define BONUS_AMMO_GIFT 5 // Cât de mult ar trebui acordată armă suplimentară pentru uciderea zombiilor pentru un bonus AMMO_GIFT #define BONUS_SUPER_DAMAGE 1.5 // Cât de multă daună se înmul?e?te pentru bonusul SUPER_DAMAGE #define BONUS_BONUS_AMMO 100 // Cât de mult să dai Ammo pentru un bonus BONUS_AMMO #define BONUS_MEGA_SKILL 3.0 // După ce ve?i deveni din nou umană pentru bonusul MEGA_SKILL #define BONUS_MEGA_DAMAGE 300 // Pentru cat de mult daune pentru a da amoniului suplimentar pentru bonusul MEGA_DAMAGE #define BONUS_MEGA_DAMAGE_AMMO_GIVE 1 // Cât cantitate de amoniu trebuie dată pentru BONUS_MEGA_DAMAGE enum BONUS { NONE = 0, // нет ŃпоŃобноŃти AMMO_GIFT, // + Đş Đ°ĐĽĐĽĐľ Đ·Đ° ŃбийŃтва SUPER_DAMAGE, // Ńвеличеный Ńрон BONUS_AMMO, // проŃŃ‚Đľ подарок в виде Đ°ĐĽĐĽĐľ MEGA_SKILL, // ĐľŃобенная ŃпоŃобноŃŃ‚ŃŚ ( MEGA_DAMAGE // полŃчение дополнительного Đ°ĐĽĐĽĐľ Đ·Đ° Ńрон } //native GetWeapon(index); new bool:g_ExtraHuman[33], bool:g_NonExtraHuman[33], g_KillCount[33], g_PlayerBonus[33], g_PlayerDamage[33] new g_ExtraHumanCount, Sprite new const HeroSprite[] = "HeroSprite" new const g_HeroModel[] = "extrahuman" new const g_HeroSprite[] = "sprites/zombie_plague/hero_sprite.spr" public plugin_init() { register_plugin("[ZP]Extra-Human", "1.0", "Dambas"); register_event("HLTV", "RoundStart", "a", "1=0", "2=0"); register_logevent("RoundEnd", 2, "1=Round_End") register_clcmd("drop", "clcmd_drop") RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1); RegisterHam(Ham_Killed, "player", "fw_PlayerKilled"); RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon") RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon") RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon") register_think(HeroSprite, "Think_Sprite") } public plugin_precache() { new szModel[64] formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", g_HeroModel, g_HeroModel) engfunc(EngFunc_PrecacheModel, szModel) precache_model(g_HeroSprite) } public RoundStart() { g_ExtraHumanCount = 0; for( new k = 0; k < 33; k++) { g_PlayerBonus[k] = 0; g_KillCount[k] = 0; g_ExtraHuman[k] = false; g_NonExtraHuman[k] = false; } } public RoundEnd() { remove_task(SPAWN_TASK) } public clcmd_drop(iPlayer) { if (g_ExtraHuman[iPlayer]) return PLUGIN_HANDLED; return PLUGIN_CONTINUE; } public fw_TouchWeapon(weapon, iPlayer) { if(!is_user_connected(iPlayer)) return HAM_IGNORED; if(g_ExtraHuman[iPlayer]) return HAM_SUPERCEDE; return HAM_IGNORED; } public fw_TakeDamage(iVictim, iInflictor, iAttacker, Float:Damage, DamageType) { if(iVictim == iAttacker || !is_user_connected(iAttacker)) return HAM_IGNORED; if(DamageType & 1<<24) return HAM_SUPERCEDE; if(zp_get_user_zombie(iAttacker) == zp_get_user_zombie(iVictim)) return HAM_SUPERCEDE; if(g_ExtraHuman[iAttacker] && g_PlayerBonus[iAttacker] == 5) { g_PlayerDamage[iAttacker] += Damage if(g_PlayerDamage[iAttacker] >= BONUS_MEGA_DAMAGE) { zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + BONUS_MEGA_DAMAGE_AMMO_GIVE) g_PlayerDamage[iAttacker] = 0; } } if(g_ExtraHuman[iAttacker] && !zp_get_user_zombie(iAttacker)) { Damage *= EXTRAHUMANDAMAGE; if(g_PlayerBonus[iAttacker] == 2) Damage *= BONUS_SUPER_DAMAGE; SetHamParamFloat(4, Damage) } return HAM_IGNORED; } public fw_PlayerKilled(iVictim, iAttacker, iShouldgib) { if(!is_user_connected(iAttacker) && !is_user_connected(iVictim)) return HAM_HANDLED; if(g_ExtraHuman[iAttacker] && zp_get_user_zombie(iVictim)) { g_KillCount[iAttacker]++; if(g_PlayerBonus[iAttacker] == 1) zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + BONUS_AMMO_GIFT) if(g_KillCount[iAttacker] >= KILLCOUNT) { g_PlayerBonus[iAttacker] = random_num(1, 5) g_KillCount[iAttacker] = 0; if(g_PlayerBonus[iAttacker] == 1) ChatColor(iAttacker, "!g[ZC] TEST 1 !yĐ’Ń‹ полŃчили бонŃŃ! ПолŃчайте больŃе Đ°ĐĽĐĽĐľ Đ·Đ° ŃбийŃтва!") if(g_PlayerBonus[iAttacker] == 2) ChatColor(iAttacker, "!g[ZC] TEST 2 !yĐ’Ń‹ полŃчили бонŃŃ! Увеличенный Ńрон!") if(g_PlayerBonus[iAttacker] == 3) { ChatColor(iAttacker, "!g[ZC] TEST 3 !yĐ’Ń‹ полŃчили бонŃŃ, ввиде %d Đ°ĐĽĐĽĐľ!", BONUS_AMMO_GIFT) zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + BONUS_AMMO_GIFT) } if(g_PlayerBonus[iAttacker] == 4) ChatColor(iAttacker, "!g[ZC] TEST 4 !yĐ’Ń‹ полŃчили бонŃŃ! Đ’Ń‹ Ńтанете человеком поŃле заражения!") if(g_PlayerBonus[iAttacker] == 5) ChatColor(iAttacker, "!g[ZC] TEST 5 !yĐ’Ń‹ полŃчили бонŃŃ! Đ’Ń‹ полŃчаете больŃе Đ°ĐĽĐĽĐľ Đ·Đ° Ńрон!") } } if(g_ExtraHuman[iVictim] && zp_get_user_zombie(iAttacker)) { g_ExtraHuman[iVictim] = false; g_ExtraHumanCount--; fm_set_rendering(iVictim) remove_task(iVictim+TASK_AURA) zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + WIN_KILLED) ChatColor(iAttacker, "!g[ZC] TEST 6 !yĐ’Ń‹ Ńбили Героя, и полŃчили !g%d ĐĐĽĐĽĐľ!", WIN_KILLED) } else return HAM_IGNORED; return PLUGIN_HANDLED; } public fw_PlayerSpawn_Post(iPlayer) { if (!is_user_alive(iPlayer)) return HAM_IGNORED; remove_task(iPlayer+TASK_AURA) return PLUGIN_HANDLED; } public zp_user_infected_pre(iPlayer, iInfector) { if(is_user_alive(iPlayer) && is_user_connected(iPlayer)) { if(g_ExtraHuman[iPlayer]) { g_ExtraHuman[iPlayer] = false; g_NonExtraHuman[iPlayer] = false; g_ExtraHumanCount--; fm_set_rendering(iPlayer) remove_task(iPlayer+TASK_AURA) zp_set_user_ammo_packs(iInfector, zp_get_user_ammo_packs(iInfector) + WIN_KILLED) ChatColor(iInfector, "!g[ZC] TEST 7 !yĐ’Ń‹ Ńбили Героя, и полŃчили !g%d ĐĐĽĐĽĐľ!", WIN_KILLED) if(g_PlayerBonus[iPlayer] == 4) { ChatColor(iPlayer, "!g[ZC] TEST 8 !yСкоро вы Ńтанете человеком!") set_task(BONUS_MEGA_SKILL, "MegaSkill", iPlayer+TASK_SKILL) } } } } public MegaSkill(taskid) { if(is_user_connected(ID_SKILL) && zp_get_user_zombie(ID_SKILL) && zp_get_human_count() >= 2) { zp_disinfect_user(ID_SKILL, 0) ChatColor(ID_SKILL, "!g[ZC] TEST 9 !yĐ’Ń‹ Ńнова Ńтали человеком!") } else return; } public zp_round_started(gamemode, id) { switch(gamemode) { case MODE_INFECTION: { set_task(SPAWNTIME, "SpawnHuman", SPAWN_TASK) } case MODE_MULTI: { set_task(SPAWNTIME, "SpawnHuman", SPAWN_TASK) } } return PLUGIN_HANDLED; } public SpawnHuman() { if(g_ExtraHumanCount >= EXTRAHUMANCOUNT) return PLUGIN_HANDLED; static iPlayers[32], iNum, i, id, Float:iMakeHuman; get_players(iPlayers, iNum, "ah"); for( i = 0; i < iNum; i++ ) { id = iPlayers; iMakeHuman = random_float(0.0, (100.0 / SPAWNCHANSE)); if(iMakeHuman <= 1.0 && !g_ExtraHuman[id] && !g_NonExtraHuman[id]) { g_ExtraHuman[id] = true; g_ExtraHumanCount++; MakeExtraHuman(id); break; } } return PLUGIN_HANDLED; } public MakeExtraHuman(iPlayer) { if(!is_user_connected(iPlayer) && !is_user_alive(iPlayer)) { g_NonExtraHuman[iPlayer] = true; g_ExtraHuman[iPlayer] = false; SpawnHuman() return PLUGIN_HANDLED; } if(g_ExtraHuman[iPlayer]) { if(!zp_get_user_zombie(iPlayer)) { new PlayerName[32]; get_user_name(iPlayer, PlayerName, 31) #if defined DHUD set_dhudmessage(100, 0, 0, -1.0, 0.4, 0, 0.0, 3.0, 1.0, 1.0, false) show_dhudmessage(0," TEST 10 На землю прибыл герой %s!", PlayerName) #else ChatColor(0, "!g[ZC] TEST 11 На землю прибыл герой %s!", PlayerName) #endif ChatColor(iPlayer, "!g[ZC] TEST 12 Đ’Ń‹ Ńтали героем! !yУбейте !g%d !yзомби, чтобы полŃчить ŃĐ»Ńчайный бонŃŃ!", KILLCOUNT) fm_set_user_health(iPlayer, EXTRAHUMANHEALTH) fm_set_user_armor(iPlayer, EXTRAHUMANARMOR) zp_override_user_model(iPlayer, g_HeroModel) SetSprite(iPlayer) message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0, 0, 0}, iPlayer) write_short(1<<11) write_short(1<<11) write_short(0x0001) write_byte(255) write_byte(255) write_byte(255) write_byte(110) message_end() //SetWeapon(iPlayer) set_task(SPAWNTIME, "SpawnHuman", SPAWN_TASK) set_task(0.1, "HeroAura", iPlayer+TASK_AURA, _, _, "b") } else { g_ExtraHumanCount--; g_ExtraHuman[iPlayer] = false; g_NonExtraHuman[iPlayer] = true; SpawnHuman() } } else return PLUGIN_HANDLED; return PLUGIN_HANDLED; } /*public SetWeapon(iPlayer) { //native }*/ public SetSprite(id) { if(g_ExtraHuman[id]) { Sprite = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); static Origin[3]; pev(id, pev_origin, Origin); Origin[2] += 60; engfunc(EngFunc_SetOrigin, Sprite, Origin); engfunc(EngFunc_SetModel, Sprite, g_HeroSprite); entity_set_float(Sprite, EV_FL_scale, 0.2); set_pev(Sprite, pev_classname, HeroSprite); set_pev(Sprite, pev_euser1, id); set_pev(Sprite, pev_solid, SOLID_NOT); set_pev(Sprite, pev_movetype, MOVETYPE_NOCLIP); set_pev(Sprite, pev_frame, 10.0); set_pev(Sprite, pev_nextthink, get_gametime()+0.1); } } public Think_Sprite(Ent) { if(is_valid_ent(Ent)) { new id = pev(id, pev_euser1) static Float:Origin[3] pev(id, pev_origin, Origin) Origin[2] += 60; if(g_ExtraHuman[id]) { engfunc(EngFunc_SetOrigin, Ent, Origin) set_pev(Ent, pev_nextthink, get_gametime() + 0.1) } else { engfunc(EngFunc_RemoveEntity, Ent) return PLUGIN_CONTINUE; } } return PLUGIN_CONTINUE; } public HeroAura(taskid) { if(!g_ExtraHuman[ID_AURA]) { remove_task(taskid) return; } static origin[3] get_user_origin(ID_AURA, origin) message_begin(MSG_PVS, SVC_TEMPENTITY, origin) write_byte(TE_DLIGHT) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_byte(20) write_byte(255) write_byte(255) write_byte(255) write_byte(2) write_byte(0) message_end() } stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!r", "^3") replace_all(msg, 190, "!b", "^0") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players)) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), {0,0,0}, players) write_byte(players) write_string(msg) message_end() } } } }
Problema plugin zm
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
- ALEXVL
- Membru, skill +1
- Posts: 243
- Joined: 22 Jul 2015, 00:01
- Detinator Steam: Da
- CS Status: Online
- Detinator server CS: ZMX.LSEPLAY.COM
- SteamID: Da
- Fond eXtream: 0
- Contact:
Salut am un plugin si nu vrea sa nu ruleze deloc apare unknown nu e compatibil sau ii puteti face ceva ? E de mod zombie , eu am tot zombie
- A k c 3 n 7
- Super moderator
- Posts: 5139
- Joined: 25 Aug 2014, 21:31
- Detinator Steam: Da
- CS Status: who dares wins
- SteamID: Jandarmeria
- Reputatie: Super moderator
Moderatorul anului 2023
Fost Membru Club eXtreamCS ( o luna )
Fost eXtream Mod
Fost Intermediar
Nume anterior: Sorinel - Fond eXtream: 0
- Location: Unknown
- Discord: remusakcent
- Has thanked: 4 times
- Been thanked: 46 times
l ai compilat cu aceeasi versiune amxx?
sau poate codul este scris incorect, cauta altul la fel
sau poate codul este scris incorect, cauta altul la fel
- ALEXVL
- Membru, skill +1
- Posts: 243
- Joined: 22 Jul 2015, 00:01
- Detinator Steam: Da
- CS Status: Online
- Detinator server CS: ZMX.LSEPLAY.COM
- SteamID: Da
- Fond eXtream: 0
- Contact:
O sa vad revin cu edit daca e
T/c
T/c