Witam. Jest jakiś sposób na sprawdzenie czy gracz zmienił slot/broń. na razie zrobiłem sprawdzanie czy gracz zmienił slot (broń będę sprawdzać podobnie) i chciałem zapytać czy jest jakiś bardziej optymalny sposób.
/* Plugin Template generated by Pawn Studio */ #include <sourcemod> #include <sdkhooks> #define MAX_SLOTOW 33 #define BRON_KROTKA 1 #define BRON_DLUGA 2 #define NOZ 3 #define GRANATY 4 public Plugin:myinfo = { name = "Zmiana broni gracza", author = "Sniper Elite", description = "Reaguje na zmiane broni oraz zwraca jej slot", version = "1.0", url = "http://csfifka.pl/" } new const String:bronieKrotkie[][] = { "weapon_glock", "weapon_p250", "weapon_fiveseven", "weapon_hkp2000", "weapon_deagle", "weapon_elite", "weapon_tec9", // End of Primary weapons }; new String: bronieDlugie[][] = { "weapon_ssg08", "weapon_mp9", "weapon_mp7", "weapon_awp", "weapon_mag7", "weapon_ump45", "weapon_sawedoff", "weapon_p90", "weapon_nova", "weapon_famas", "weapon_xm1014", "weapon_bizon", "weapon_galilar", "weapon_m4a1", "weapon_ak47", "weapon_aug", "weapon_sg556", "weapon_scar20", "weapon_m249", "weapon_g3sg1", "weapon_negev" // End of Primary weapons } new String: noz[] = "weapon_knife"; new String: granaty[][] = { "weapon_hegrenade", "weapon_incgrenade", "weapon_smokegrenade", "weapon_molotov" } new aktualnySlot[MAX_SLOTOW] public OnClientPutInServer(client) { SDKHook(client, SDKHook_PreThinkPost, OnPreThinkPost) } public OnPreThinkPost(client) { if(IsPlayerAlive(client)) { if(aktualnySlot[client] == -1) aktualnySlot[client] = ZwrocSlot(client) else { new slot = ZwrocSlot(client) if(slot) { if(aktualnySlot[client] != slot) { aktualnySlot[client] = slot PrintToChatAll("Wlasnie zmieniles slot na nr: %i", aktualnySlot[client]); } } } } } public ZwrocSlot(client) { new String: currentWeapon[31] GetClientWeapon(client, currentWeapon, sizeof(currentWeapon)) if(StrEqual(currentWeapon, noz)) { return NOZ; } new i; for(i = 0; i < sizeof(bronieKrotkie); i++) { if(StrEqual(currentWeapon, bronieKrotkie[i])) { return BRON_KROTKA; } } for(i = 0; i < sizeof(bronieDlugie); i++) { if(StrEqual(currentWeapon, bronieDlugie[i])) { return BRON_DLUGA; } } for(i = 0; i < sizeof(granaty); i++) { if(StrEqual(currentWeapon, granaty[i])) { return GRANATY; } } return 0 }
W PreThinku się średnio to sprawdza, wiem, ale nie mam lepszego pomysłu.