gyorsan megkerestem neked:
Kód: #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <fun> #include <zombieplague>
new SayText, g_maxplayers, g_class[33], g_speed[33]
/* Настройка текста */ #define ZP_PREFIX "!g[ZP]" // (ex. "[ZP] Text") #define ZP_CHOOSE "!yTe a !t[%s] nevu emberi fajt valasztottad!" // (ex. "[ZP] You choose [Gerrard]") #define ZP_NOT_ADMIN "!yYou have no access." // (ex. "[ZP] You have no access.")
#define PLUGIN_NAME "[ZP] Human Classes (1.0)" #define PLUGIN_VERSION "1.0 - 29.08.2014" #define PLUGIN_AUTHOR "TERKECOREJZ"
enum { CLASS_GERRARD, CLASS_DAVIDBLACK, CLASS_ARA, CLASS_SPADE, CLASS_YURI2, CLASS_ALICE2, CLASS_GUNSMITH, CLASS_CHOIJIYOON2, CLASS_NULL }
/* Флаг , чтобы взять "Spade" или "Choi Ji Yoon Limited" */ #define ADMIN_FLAG ADMIN_LEVEL_A
/* Названия классов */ #define HUMAN_GERRARD "Gerrard" #define HUMAN_DAVIDBLACK "David Black" #define HUMAN_ARA "Asia Red Army" #define HUMAN_SPADE "Spade" #define HUMAN_YURI2 "Yuri Limited" #define HUMAN_ALICE2 "Alice Limited" #define HUMAN_GUNSMITH "Gunsmith" #define HUMAN_CHOIJIYOON2 "Choi Ji Yoon Limited"
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) register_clcmd("say /hc", "open_menu") register_event("HLTV", "Event_RoundNew", "a", "1=0", "2=0") RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") RegisterHam(Ham_Spawn, "player", "Spawn_post", 1) register_menucmd(register_menuid("Menu Classes"), 1023, "menu_handler") SayText = get_user_msgid("SayText") ;}
public zp_user_humanized_post(id) open_menu(id)
public Spawn_post(id){ if(is_user_alive(id) && is_user_connected(id) && !zp_get_user_zombie(id) && !zp_get_user_survivor(id) && zp_has_round_started()){ open_menu(id) return PLUGIN_HANDLED;} return PLUGIN_HANDLED;} /* Прикеш моделей */ public plugin_precache(){ engfunc(EngFunc_PrecacheModel, "models/player/gerrard/gerrard.mdl") engfunc(EngFunc_PrecacheModel, "models/player/davidblack/davidblack.mdl") engfunc(EngFunc_PrecacheModel, "models/player/jra/jra.mdl") engfunc(EngFunc_PrecacheModel, "models/player/spade/spade.mdl") engfunc(EngFunc_PrecacheModel, "models/player/yuri2/yuri2.mdl") engfunc(EngFunc_PrecacheModel, "models/player/alice2/alice2.mdl") engfunc(EngFunc_PrecacheModel, "models/player/gunsmith/gunsmith.mdl") engfunc(EngFunc_PrecacheModel, "models/player/choijiyoon2/choijiyoon2.mdl");} public client_connect(id) if(is_user_connected(id)) g_class[id] = CLASS_GERRARD public open_menu(id) { new menu[512], len, keys = MENU_KEY_0 len += formatex(menu[len], charsmax(menu) - len, "\wValassz \yember fajtat!^n^n") len += formatex(menu[len], charsmax(menu) - len, "\yFerfi \wfajok:^n") len += formatex(menu[len], charsmax(menu) - len, "\r1. \w%s\w^n", HUMAN_GERRARD) keys += MENU_KEY_1 len += formatex(menu[len], charsmax(menu) - len, "\r2. \w%s\w^n", HUMAN_DAVIDBLACK) keys += MENU_KEY_2 len += formatex(menu[len], charsmax(menu) - len, "\r3. \w%s\w^n", HUMAN_ARA) keys += MENU_KEY_3 if(get_user_flags(id) & ADMIN_FLAG){ len += formatex(menu[len], charsmax(menu) - len, "\r4. \w%s \d- \y[DAMAGE x1.1] \d- \r[VIP]\w\^n", HUMAN_SPADE) keys += MENU_KEY_4 } else { len += formatex(menu[len], charsmax(menu) - len, "\r4. \d%s - \y[DAMAGE x1.1] \d- \r[VIP]\w\^n", HUMAN_SPADE) keys += MENU_KEY_4;} len += formatex(menu[len], charsmax(menu) - len, "^n^n\yNoi \wfajok:^n") len += formatex(menu[len], charsmax(menu) - len, "\r5. \w%s^n", HUMAN_YURI2) keys += MENU_KEY_5 len += formatex(menu[len], charsmax(menu) - len, "\r6. \w%s^n", HUMAN_ALICE2) keys += MENU_KEY_6 len += formatex(menu[len], charsmax(menu) - len, "\r7. \w%s^n", HUMAN_GUNSMITH) keys += MENU_KEY_7 if(get_user_flags(id) & ADMIN_FLAG){ len += formatex(menu[len], charsmax(menu) - len, "\r8. \w%s \d- \y[JUMP x1.1] \d- \r[VIP]\w^n", HUMAN_CHOIJIYOON2) keys += MENU_KEY_8 } else { len += formatex(menu[len], charsmax(menu) - len, "\r8. \d%s - \y[JUMP x1.1] \d- \r[VIP]\w^n", HUMAN_CHOIJIYOON2) keys += MENU_KEY_8;} len += formatex(menu[len], charsmax(menu) - len, "^n\r0. \wKilepes a menubol!", id, "ZB3_MENU_EXIT") if (pev_valid(id) == 2) set_pdata_int(id, 205, 0, 5) show_menu(id, keys, menu, -1, "Menu Classes") return PLUGIN_HANDLED;}
public menu_handler(id, key){ if(!is_user_alive(id)) return; switch (key) { case 0: classGerrard(id) case 1: classDavid(id) case 2: classAra(id) case 3: classSpade(id) case 4: classYuri2(id) case 5: classAlice2(id) case 6: classGunsmith(id) case 7: classChoiJiYoon2(id);} return;} public fw_TakeDamage(victim, inflictor, attacker, Float:damage) if (victim != attacker && is_user_connected(attacker)) if(g_class[attacker] == CLASS_SPADE) SetHamParamFloat(4, damage * 1.1) public fw_CS_Player_ResetMaxSpeed(id) { if(!is_user_alive(id) || !g_speed[id]) return HAM_IGNORED; return HAM_SUPERCEDE;} public Event_RoundNew() for(new id = 1; id <= g_maxplayers; id++) g_class[id] = CLASS_NULL
public classGerrard(id){ g_class[id] = CLASS_GERRARD print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_GERRARD) zp_override_user_model(id, "gerrard");} public classDavid(id){ g_class[id] = CLASS_DAVIDBLACK print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_DAVIDBLACK) zp_override_user_model(id, "davidblack");} public classAra(id){ g_class[id] = CLASS_ARA print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_ARA) zp_override_user_model(id, "jra");} public classSpade(id){ if(get_user_flags(id) & ADMIN_FLAG){ g_class[id] = CLASS_SPADE zp_override_user_model(id, "spade") print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_SPADE) } else { open_menu(id) print_col_chat(id, "%s %s", ZP_PREFIX, ZP_NOT_ADMIN);} } public classYuri2(id){ g_class[id] = CLASS_YURI2 print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_YURI2) zp_override_user_model(id, "yuri2");} public classAlice2(id){ g_class[id] = CLASS_ALICE2 print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_ALICE2) zp_override_user_model(id, "alice2");} public classGunsmith(id){ g_class[id] = CLASS_GUNSMITH print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_GUNSMITH) zp_override_user_model(id, "gunsmith");} public classChoiJiYoon2(id){ if(get_user_flags(id) & ADMIN_FLAG){ g_class[id] = CLASS_CHOIJIYOON2 zp_override_user_model(id, "choijiyoon2") set_user_gravity(id, 0.9) print_col_chat(id, "%s %s", ZP_PREFIX, ZP_CHOOSE, HUMAN_CHOIJIYOON2) } else { open_menu(id) print_col_chat(id, "%s %s", ZP_PREFIX, ZP_NOT_ADMIN);} } stock print_col_chat(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, "!t", "^3") if (id) players[0] = id; else get_players(players, count, "ch");{ for ( new i = 0; i < count; i++ ) { if ( is_user_connected(players[i]) ) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]); write_byte(players[i]); write_string(msg); message_end();} } } }
persze ez zombiera volt, de átalakítani nem nagy kunszt meg átírni pár dolgot, viszont egy csapatlekérdezés még elférne benne. amit én valahogy így képzelek el:
Kód: if( is_user_alive(id) && is_user_connected(id)) { if(cs_get_user_team == CS_TEAM_T) { //párszkin } elseif(cs_get_user_team == CS_TEAM_CT) { //megint pár szkin } } else client_print(id, print_chat, "Nem tudsz modellt valasztani!")
|