Witam
Mam kolejny problem.
Z pluginem: http://amxx.pl/viewt... ... x_niewidka
Otóż gdy jakiś admin nie ma flagi L(rcon) to nie może wejść na niewidkę.
I z racji tej że tą flagą można zrobić dużo prosiłbym kogoś żeby przerobić Flage(L rcon) na flagę C - kick lub D - Ban
Będę bardzo wdzięczny.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
amx_niewidka flaga
Temat rozp.
radek_b11
, 11.05.2009 11:27
4 odpowiedzi w tym temacie
#1
Napisano 11.05.2009 11:27
#2
Napisano 11.05.2009 11:37
Moja pierwsza przeróbka uczę się Sprawdź:
#include <amxmodx> #include <fakemeta> #if AMXX_VERSION_NUM < 180 #define charsmax(%1) sizeof(%1) - 1 #endif #define MAX_PLAYERS 32 #define DEAD_FLAG (1<<0) #define OFFSET_TEAM 114 enum { CS_TEAM_UNASSIGNED, CS_TEAM_T, CS_TEAM_CT, CS_TEAM_SPECTATOR } new bool:g_roundend new pcvar_percent new g_invisible[MAX_PLAYERS+1][2] new gmsgScoreAttrib, gmsgTeamInfo public plugin_init() { register_plugin("Invisible Spectator", "0.2", "ConnorMcLeod") // Spolszczone by Mafia amxx.pl pcvar_percent = register_cvar("amx_inv_dead_percent", "40") register_clcmd("amx_niewidka", "make_invis") gmsgScoreAttrib = get_user_msgid("ScoreAttrib") gmsgTeamInfo = get_user_msgid("TeamInfo") register_message( gmsgScoreAttrib, "msg_ScoreAttrib") register_message( gmsgTeamInfo, "msg_TeamInfo") register_event("HLTV", "eNewRound", "a", "1=0", "2=0") register_logevent("eRoundEnd", 2, "1=Round_End") register_event("ResetHUD", "eResetHUD", "be") register_event("DeathMsg", "eDeathMsg", "a") } public make_invis(id) { if( !(get_user_flags(id) & ADMIN_KICK) ) return PLUGIN_CONTINUE if(g_invisible[id][0]) { client_print(id, print_console, "Obecny status widzialny") g_invisible[id][0] = 0 return PLUGIN_HANDLED } if( is_user_alive(id) ) { client_print(id, print_console, "Musisz wejsc na specta aby uzyc komendy !") return PLUGIN_HANDLED } g_invisible[id][0] = 1 client_print(id, print_console, "Obecny status Niewidzialny") new team = get_pdata_int(id, OFFSET_TEAM) if( CS_TEAM_T <= team <= CS_TEAM_CT ) { g_invisible[id][1] = team set_pdata_int(id, OFFSET_TEAM, CS_TEAM_SPECTATOR) } else { new players[MAX_PLAYERS], tnum, ctnum get_players(players, tnum, "e", "TERRORIST") get_players(players, ctnum, "e", "CT") g_invisible[id][1] = ctnum > tnum ? 1 : 2 } send_ScoreAttrib(id, 0) new teamname[12] switch( g_invisible[id][1] ) { case 1:formatex(teamname, charsmax(teamname), "TERRORIST") case 2:formatex(teamname, charsmax(teamname), "CT") } send_TeamInfo(id, teamname) return PLUGIN_HANDLED } public eDeathMsg() { if(g_roundend) return new players[MAX_PLAYERS], dead, inum, player, Float:percent = get_pcvar_float(pcvar_percent) / 100.0 get_players(players, dead, "bh") get_players(players, inum, "h") if( float(dead) / float(inum) < percent) return for(new i; i < inum; i++) { player = players[i] if( g_invisible[player][0] ) send_ScoreAttrib(player, DEAD_FLAG) } } public eNewRound() { g_roundend = false new players[MAX_PLAYERS], inum, player get_players(players, inum) for(new i; i < inum; i++) { player = players[i] if( g_invisible[player][0] ) send_ScoreAttrib(player, 0) } } public eRoundEnd() { g_roundend = true new players[MAX_PLAYERS], inum, player get_players(players, inum) for(new i; i < inum; i++) { player = players[i] if( g_invisible[player][0] ) send_ScoreAttrib(player, DEAD_FLAG) } } public eResetHUD(id) { if( g_invisible[id][0] ) g_invisible[id][0] = 0 } // Doesn't seem to work so set flag to 0 at NewRound event. public msg_ScoreAttrib(msg_type, msg_dest, target) { if(!g_invisible[get_msg_arg_int(1)][0]) return PLUGIN_CONTINUE new flags = get_msg_arg_int(2) if(flags & DEAD_FLAG) set_msg_arg_int(2, 0, flags & ~DEAD_FLAG) return PLUGIN_CONTINUE } public msg_TeamInfo(msg_type, msg_dest, target) { new id = get_msg_arg_int(1) if(!g_invisible[id][0]) return PLUGIN_CONTINUE new teamname[12] get_msg_arg_string(2, teamname, charsmax(teamname)) if( g_invisible[id][1] == CS_TEAM_T && strcmp(teamname, "TERRORIST") != 0 ) set_msg_arg_string(2, "TERRORIST") else if( g_invisible[id][1] == CS_TEAM_CT && strcmp(teamname, "CT") != 0 ) set_msg_arg_string(2, "CT") return PLUGIN_CONTINUE } send_ScoreAttrib(id, flags) { message_begin(MSG_ALL, gmsgScoreAttrib, _, 0) write_byte(id) write_byte(flags) message_end() } send_TeamInfo(id, teamname[]) { message_begin(MSG_ALL, gmsgTeamInfo, _, 0) write_byte(id) write_string(teamname) message_end() }
#4
Napisano 11.05.2009 15:11
Titus, nie czasem
if (get_user_flags(id) & ADMIN_KICK) return PLUGIN_CONTINUE;?
#5
Napisano 13.05.2009 21:55
Dziękuję za poradnik
+pomógł.
+pomógł.
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych