#include #include #include #include new const String:nazwaKlasy[] = "ProCień [Premium]"; new const String:opisKlasy[] = "1/4 z Auto Shotgun'a, na kosie jest niewidzialny."; new const intKlasy = 0; new const conKlasy = 45; new const strKlasy = 45; new const dexKlasy = 45; new Handle:bronieKlasy; new bool:active[MAXPLAYERS+1]; public Plugin:myinfo = { name = "CmodClass: ProCień [Premium]", author = "Lucifer", description = "1/4 z Auto Shotgun'a, na kosie jest niewidzialny.", version = "1.0", url = "http://steamcommunity.com/profiles/76561197960680254" } public OnPluginStart(){ bronieKlasy = CreateArray(32); PushArrayString(bronieKlasy, "weapon_xm1014"); PushArrayString(bronieKlasy, "weapon_glock"); Cmod_RegisterClass(nazwaKlasy, opisKlasy, intKlasy, conKlasy, strKlasy, dexKlasy, bronieKlasy); } public OnClientPutInServer(client){ SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); } public Cmod_OnClassEnabled(client){ if(!GetAdminFlag(GetUserAdmin(client), Admin_Custom1)){ PrintToChat(client, "x01x0Bx01 x07%s x06Klasa dostępna tylko dla posiadaczy premium!", MOD_TAG); return CMOD_DISABLE; } active[client] = true; return CMOD_CONTINUE; } public Cmod_OnClassDisabled(client){ active[client] = false; } public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype) { if(!IsValidClient(attacker)) return Plugin_Continue; if(GetClientTeam(attacker) == GetClientTeam(victim)) return Plugin_Continue; if(active[attacker]){ decl String:sWeapon[32]; GetClientWeapon(attacker, sWeapon, sizeof(sWeapon)); if(StrEqual(sWeapon, "weapon_xm1014")){ if(!GetRandomInt(0,3)){ damage = 99999999.0; return Plugin_Changed; } } } return Plugin_Continue; } public OnGameFrame(){ for(new client = 1; client <= MaxClients; client++){ if(IsClientConnected(client) && IsClientInGame(client)){ if(active[client]){ decl String:sWeapon[32]; GetClientWeapon(client, sWeapon, sizeof(sWeapon)); if(StrEqual(sWeapon, "weapon_knife")){ SetEntityRenderMode(client , RENDER_NONE); }else{ SetEntityRenderMode(client, RENDER_NORMAL); } } } } } bool:IsValidClient( client ) { if ( !( 1 <= client <= MaxClients ) || !IsClientInGame(client) ) return false; return true; }