#include #include #include #include new const String:nazwaKlasy[] = "Nazwa"; new const String:opisKlasy[] = "opis"; new const intKlasy = 0; new const conKlasy = 80; <-staty new const strKlasy = 0; new const dexKlasy = 20; new Handle:bronieKlasy; public Plugin:myinfo = { name = "CmodClass: Nazwa", author = "Autor", description = "opis", version = "1.0", url = "Link do profilu steam" } public OnPluginStart(){ bronieKlasy = CreateArray(32); # Tutaj masz listę broni, ważne! Nie mozesz dać dwóch karabinów czy dwóch pistoletów klasa będzie wtedy wywalała graczy z gry. Nie dotyczy granatów. PushArrayString(bronieKlasy, "weapon_m4a1_silencer"); PushArrayString(bronieKlasy, "weapon_usp_silencer"); PushArrayString(bronieKlasy, "weapon_flashbang"); PushArrayString(bronieKlasy, "weapon_hegrenade"); PushArrayString(bronieKlasy, "weapon_smokegrenade"); Cmod_RegisterClass(nazwaKlasy, opisKlasy, intKlasy, conKlasy, strKlasy, dexKlasy, bronieKlasy); } public OnClientPutInServer(id){ <- Dotyczy to aktywacji skilla. SDKHook(id, SDKHook_OnTakeDamage, OnTakeDamage); //SDKHook(id, SDKHook_SetTransmit, Hook_SetTransmit); } public Cmod_OnClassEnabled(client){ active[client] = true; active2[client] = true; PushArrayString(Cmod_GetClientWeapons(client), "weapon_hkp2000") <- Dzięki temu klasa ma zamienione hpk na USP PushArrayString(Cmod_GetClientWeapons(client), "weapon_m4a1"); <- To samo tylko że z m4a1-s } } public Cmod_OnClassDisabled(client){ ClearArray(Cmod_GetClientWeapons(client)); <- Jak dajesz klasie USP lub M4-s to musisz dodać obowiązkowo. active[client] = false; active2[client] = false; } public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype) <- skill w tym przypadku niewidzialność po trafieniu przez wroga na 2s { if(!IsValidClient(victim)) return Plugin_Continue; if(active[victim] && active2[victim]){ active2[victim] = false; SetEntityRenderMode(victim , RENDER_NONE); CreateTimer(2.0, vis, victim); } return Plugin_Continue; } public Action:vis(Handle:timer, any:client){ SetEntityRenderMode(client, RENDER_NORMAL); active2[client] = true; } /* public Action:Hook_SetTransmit(entity, client){ if(IsValidClient(entity)){ if(!active2[entity]) return Plugin_Handled; } return Plugin_Continue; } bool:IsValidClient( client ) { if ( !( 1 <= client <= MaxClients ) || !IsClientInGame(client) ) return false; return true; } */ /* public OnGameFrame(){ for(new client = 1; client <= MaxClients; client++){ if(IsClientConnected(client) && IsClientInGame(client)){ if(active2[client]){ SetEntityRenderMode(client, RENDER_NORMAL); }else{ SetEntityRenderMode(client , RENDER_NONE); } } } } */ bool:IsValidClient( client ) { if ( !( 1 <= client <= MaxClients ) || !IsClientInGame(client) ) return false; return true; }