VIP Plugin išimkit vieną kodą
Posted: 2012 Apr 02 16:09
Galit išimt, kad vip nevaiksčiotų kiaurai savo tm, nes pastoviai susibugina ir, kad per kitą kiaurai vaikšto..
Code: Select all
#include <amxmodx> #include <engine> #include <hamsandwich> #include <cstrike> #define VIP_FLAG ADMIN_LEVEL_H #define SetPlayerBit(%1,%2) (%1 |= (1 << (%2 & 31))) #define ResetPlayerBit(%1,%2) (%1 &= ~(1 << (%2 & 31))) #define GetPlayerBit(%1,%2) (%1 & (1 << (%2 & 31))) new AliveAndVip; new Team[33][16]; public plugin_precache() precache_model("models/player/dusk_ct_vip/dusk_ct_vip.mdl"); public plugin_init() { register_plugin("VIP", "1.1", "hleV"); register_event("TeamInfo", "OnTeamInfo", "a"); RegisterHam(Ham_Spawn, "player", "OnSpawn", 1); RegisterHam(Ham_Killed, "player", "OnKilled", 1); } public client_PreThink(client) if (GetPlayerBit(AliveAndVip, client)) SetSemiclip(client, SOLID_NOT); public client_PostThink(client) if (GetPlayerBit(AliveAndVip, client)) SetSemiclip(client, SOLID_SLIDEBOX); public OnTeamInfo() read_data(2, Team[read_data(1)], charsmax(Team[])); public OnSpawn(client) { if (!is_user_alive(client) || ~get_user_flags(client) & VIP_FLAG) { ResetPlayerBit(AliveAndVip, client); return; } SetPlayerBit(AliveAndVip, client); entity_set_float(client, EV_FL_gravity, 750.0 / 800.0); if (cs_get_user_team(client) == CS_TEAM_CT) cs_set_user_model(client, "dusk_ct_vip"); } public OnKilled(client) if (!is_user_alive(client)) ResetPlayerBit(AliveAndVip, client); SetSemiclip(id, solidType) { static players[32], num, i, player; get_players(players, num, "ae", Team[id]); for (i = 0; i < num; i++) { player = players[i]; if (player != id) entity_set_int(player, EV_INT_solid, solidType); } }