Como unir los rangos de kikizon y admin prefix de m0skVi4a mediante natives?
#1
amigos me gustaria unir estos dos excelentes plugins mediante natives pero intento hacerlos como dice el tutorial pero no me funciona alguien que me diga como hay que hacer ya intente de todo y estoy desesperado en una solucion  Cutecry  ayudenme por favor adjuntos los codigos  Rainbow

el chat seria algo asi
[Admin](Soldado)-> Pedrito: blabla


Código PHP:
/*

ChangeLog:

1.0 = Version inicial
2.0 = 
 * Correccion de errores
 * Cambio deathmsg por ham killed
 * Reescritura parcial de codigo
 * Soporte AMX 1.8.2 hasta 1.9.0
 * Cvar para activar/desactivar la modificacion del chat

*/

#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <adv_vault>


#if AMXX_VERSION_NUM < 183
 #define client_disconnected client_disconnect

 #define print_team_default 0

 
stock client_print_color(indexfakevar, const input[], any:...)
 {
 
#pragma unused fakevar
 
static szMsg[191], g_iMsgSayText;
 if(!
g_iMsgSayTextg_iMsgSayText get_user_msgid("SayText");

 
vformat(szMsg190input3);

 
message_begin(index MSG_ONE_UNRELIABLE MSG_BROADCASTg_iMsgSayText, .player index);
 
write_byte(index index 33);
 
write_string(szMsg);
 
message_end();
 }
#endif


#define VERSION "2.0"

new const Web[] = "HTTPS://KIKIZON.XYZ/";  // Se Muestra en HUD
new const Prefijo[] = "^4[CS:GO] ^1"// Prefijo en say
new const Sonido[] = "rango/up.wav"// Sonido Rango UP
new const DataBase[] = "csgoranks"// Nombre de la base de datos
new const CHAT_FLAG ADMIN_KICK// Acceso requerido para el chat de admins

enum _:DATA
{
 
NOMBRE[30],
 
FRAGS
}

new const 
Rangos[][DATA] =
{
 { 
"Sin Rango"100 },
 { 
"Silver I"200 },
 { 
"Silver II"300 },
 { 
"Silver III"500 },
 { 
"Silver IV"700 },
 { 
"Silver Elite"800 },
 { 
"Silver Elite Master"900 },
 { 
"Gold Nova I"1000 },
 { 
"Gold Nova II"1200 },
 { 
"Gold Nova III"1300 },
 { 
"Gold Nova Master"1400 },
 { 
"Master Guardian I",1500 },
 { 
"Master Guardian II"1700 },
 { 
"Master Guardian Elite"1800 },
 { 
"Distinguished Master Guardian"1900 },
 { 
"Legendary Eagle"2000 },
 { 
"Legendary Eagle Master"2100 },
 { 
"Supreme Master First Class"2200 },
 { 
"The Global Elite"2500 }
}

new 
g_rango[33], g_frags[33];
new 
SyncHUDg_maxplayersg_playername[33][32];

#define TASK_HUD 67521
#define ID_HUD (taskid - TASK_HUD)
#define is_valid_player(%0) is_user_connected(%0) || !is_user_bot(%0) || !is_user_hltv(%0)

new g_vaultg_iField_Rankg_iField_Frags;
new 
cvar_Hudcvar_knifex2cvar_hsx2cvar_hooksay;

public 
plugin_init()
{
 
register_plugin("Rangos CS:GO"VERSION"kikizon / HTTPS://KIKIZON.XYZ/");
 
 
RegisterHam(Ham_Killed"player""ham_PlayerKilledPost"true);
 
register_logevent("logevent_round_end"2"1=Round_End");
 
 
register_clcmd("say""message_saytext");
 
register_clcmd("say_team""message_sayteam");
 
 
cvar_Hud register_cvar("rangos_hud""1"); // 1 - Mostrar HUD | 0 - No Mostrar
 
cvar_knifex2 register_cvar("rangos_knifex2""1"); // 1 - x2 frags con knife | 0 - Ã‘O :v
 
cvar_hsx2 register_cvar("rangos_hsx2""1"); // 1 - x2 frags de HeadShot | 0 - Ã‘O :v
 
cvar_hooksay register_cvar("rangos_hooksay""1"); // 1 - Modifica el say | 0 Ã‘O :v
 
 
SyncHUD CreateHudSyncObj();
 
g_maxplayers get_maxplayers();
 
 
g_vault adv_vault_open(DataBasefalse);
 
g_iField_Rank adv_vault_register_field(g_vault"RANGOS");
 
g_iField_Frags adv_vault_register_field(g_vault"FRAGS");
 
adv_vault_init(g_vault);
}

public 
plugin_precache() 
{
 
precache_sound(Sonido);
}

public 
HUD(taskid)
{
 new 
id ID_HUD;
    
 
if (!is_user_alive(id)) 
 
id pev(idpev_iuser2);
  
 
if(id != ID_HUD)
 {
 
set_hudmessage(2552552550.600.6716.01.0);
 
ShowSyncHudMsg(ID_HUDSyncHUD"Frags: %d  ||  Rango: %s"g_frags[id], Rangos[g_rango[id]][NOMBRE])
 }
 else
 {
 
set_hudmessage(025500.00.2016.01.0);

 if(
g_rango[id] == charsmax(Rangos))
 {
 
ShowSyncHudMsg(
 
ID_HUD,
 
SyncHUD,
 
"=======================^n\
 Frags: %d^n\
 Rango: %s^n\
 =======================^n\
 TIENES EL RANGO MAXIMO!!!^n\
 =======================^n\
 %s"
,
 
g_frags[id],
 
Rangos[g_rango[id]][NOMBRE], 
 
Web
 
);
 }
 else 
 {
 
ShowSyncHudMsg(
 
ID_HUD,
 
SyncHUD,
 
"=======================^n\
 Frags: %d^n\
 Rango: %s^n\
 =======================^n\
 Sig. Rango: %s^n\
 Frags Restantes: %d^n\
 =======================^n\
 %s"

 
g_frags[id],
 
Rangos[g_rango[id]][NOMBRE],
 
Rangos[g_rango[id]+1][NOMBRE],
 
Rangos[g_rango[id]][FRAGS] - g_frags[id],
 
Web
 
);
 }
 }
 
}

public 
client_putinserver(id)
{
 
get_user_name(idg_playername[id], 31);
 
g_rango[id] = g_frags[id] = 0;
 
 
Cargar(id);
 
 if(
get_pcvar_num(cvar_Hud)) 
 
set_task(1.0"HUD"id+TASK_HUD__"b");
}

public 
client_disconnected(id)
{
 if(
is_valid_player(id))
 
Guardar(id);
 
 
remove_task(id+TASK_HUD)
}

public 
logevent_round_end()
{
 static 
id;
 for(
id 1id <= g_maxplayers; ++id)
 {
 if(
is_valid_player(id))
 
Guardar(id);
 }
}

public 
ham_PlayerKilledPost(victimattackersg)
{
 if(!
is_user_connected(victim) || !is_user_connected(attacker) || !attacker || attacker == victim)
 return 
HAM_IGNORED;

 
SetFrags(attacker1);

 if(
get_pcvar_num(cvar_knifex2) == && get_user_weapon(attacker) == CSW_KNIFE)
 
SetFrags(attacker1);

 if(
get_pcvar_num(cvar_hsx2) == && get_pdata_int(victim755) == HIT_HEAD)
 
SetFrags(attacker1);

 return 
HAM_IGNORED;
}

SetFrags(indexfrags)
{
 
g_frags[index] += frags;

 static 
iRankiRank g_rango[index];
 while( 
g_frags[index] >= Rangos[g_rango[index]][FRAGS] && g_rango[index] < charsmax(Rangos))
 ++
g_rango[index];

 if(
iRank g_rango[index])
 {
 
client_print_color(indexprint_team_default"%s Felicidades subiste al rango: ^4%s"PrefijoRangos[g_rango[index]][NOMBRE]);
 
client_cmd(index"spk ^"%s^""Sonido);
 }
}

public 
message_saytext(id)
{
 if(!
get_pcvar_num(cvar_hooksay)) 
 return 
PLUGIN_CONTINUE;

 static 
said[192]; read_args(saidcharsmax(said)); remove_quotes(said);
    
 
if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said""))
 return 
PLUGIN_HANDLED;

 if (!
ValidMessage(said1)) return PLUGIN_CONTINUE;
    
 
static color[11], iteam[11];
 
get_user_team(id,color,charsmax(color));
 
 if (
get_user_flags(id) & CHAT_FLAG)
 {
 
format(saidcharsmax(said), "^x01%s^x04%s ^x03%s ^x01: ^x04%s",
 
is_user_alive(id) ? "" "[MUERTO]",
 
Rangos[g_rango[id]][NOMBRE],
 
g_playername[id],
 
said);
 }
 else
 {
 
format(saidcharsmax(said), "^x01%s^04%s ^x03%s ^x01: %s",
 
is_user_alive(id) ? "" "[MUERTO]",
 
Rangos[g_rango[id]][NOMBRE],
 
g_playername[id],
 
said);
 }
    
 
for (1<= g_maxplayersi++)
 {
 if (!
is_user_connected(i)) continue;
        
 
if(get_user_flags(i) & CHAT_FLAG || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i))
 {
 
get_user_team(iteamcharsmax(team));
 
changeTeamInfo(icolor);
 
writeMessage(isaid);
 
changeTeamInfo(iteam);
 }
 }

 return 
PLUGIN_HANDLED_MAIN;
}

public 
message_sayteam(id)
{
 if(!
get_pcvar_num(cvar_hooksay)) 
 return 
PLUGIN_CONTINUE;

 static 
said[192]; read_args(saidcharsmax(said)); remove_quotes(said);
    
 
if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said""))
 return 
PLUGIN_HANDLED;

 if (!
ValidMessage(said1)) return PLUGIN_CONTINUE
    
 
static playerTeamplayerTeamName[19]; playerTeam get_user_team(id);
 switch (
playerTeam)
 {
 case 
1copy (playerTeamName6"TE")
 case 
2copy (playerTeamName8"CT"
 default: 
copy (playerTeamName11"SPEC"
 }

 static 
color[11], iteam[11];
 
get_user_team(id,color,charsmax(color));

 if (
get_user_flags(id) & CHAT_FLAG)
 {
 
format(saidcharsmax(said), "^x01%s [ %s ] ^x04%s ^x03%s ^x01: ^x04%s",
 
is_user_alive(id) ? "" "[MUERTO]",
 
playerTeam,
 
Rangos[g_rango[id]],
 
g_playername[id],
 
said);
 }
 else
 {
 
format(saidcharsmax(said), "^x01%s [ %s ] ^04%s ^x03%s ^x01: %s",
 
is_user_alive(id) ? "" "[MUERTO]",
 
playerTeam,
 
Rangos[g_rango[id]],
 
g_playername[id],
 
said);
 }

 for (
1<= g_maxplayersi++)
 {
 if (!
is_user_connected(i)) continue;
        
 
if (get_user_team(i) == playerTeam || get_user_flags(i) & CHAT_FLAG)
 {
 if (
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i))
 {
 
get_user_team(iteamcharsmax(team));
 
changeTeamInfo(icolor);
 
writeMessage(isaid);
 
changeTeamInfo(iteam);
 }
 }
 }

 return 
PLUGIN_HANDLED_MAIN;
}

public 
changeTeamInfo(playerteam[])
{
 static 
g_msgTeamInfo;
 if(!
g_msgTeamInfog_msgTeamInfo get_user_msgid("TeamInfo");

 
message_begin(MSG_ONEg_msgTeamInfo_player);
 
write_byte(player);
 
write_string(team);
 
message_end();
}

public 
writeMessage(playermessage[])
{
 static 
g_msgSayText;
 if(!
g_msgSayTextg_msgSayText get_user_msgid("SayText");
 
 
message_begin(MSG_ONEg_msgSayText, {000}, player);
 
write_byte(player);
 
write_string(message);
 
message_end();
}

Guardar(id)

 
adv_vault_set_start(g_vault);

 
adv_vault_set_field(g_vaultg_iField_Rankg_rango[id]);
 
adv_vault_set_field(g_vaultg_iField_Fragsg_frags[id]);
 
 
adv_vault_set_end(g_vault0g_playername[id]);
}

Cargar(id)
{
 if(!
adv_vault_get_prepare(g_vault_g_playername[id])) 
 return;
 
 
g_rango[id] = adv_vault_get_field(g_vaultg_iField_Rank);
 
g_frags[id] = adv_vault_get_field(g_vaultg_iField_Frags);


stock ValidMessage(text[], maxcount)
{
 static 
lenicountlen strlen(text);count 0;
 if (!
len) return false;
    
 
for (0leni++)
 {
 if (
text[i] != ' ')
 {
 
count++;
 if (
count >= maxcount) return true;
 }
 }
 return 
false;



Código PHP:
/*  AMX Mod X script
*                              ______                      __                    __          __                              ________
*               / ____ \                      \ \                  / /        /  |                            |______  |
*               / /    \ \                      \ \                / /        /  |                        __        | |
*             | /      \ |                      \ \              / /        / /| |                      |__|        | |
*             | |      | |    ______    _    __ \ \            / /  _      / / | |      ______                      | |
*    _  _____  _____  | |      | |  / ____ \  | |  / /  \ \          / /  |_|    / /  | |      / ____ \                    | |
* | | / __  | / __  |  | |      | |  | /    \_\  | | / /    \ \        / /    _    / /  | |    /_/    \ \                    | |
* | |/ /  | |/ /  | |  | |      | |  | \_____    | |/ /      \ \      / /    | |  / /____| |__    ______| |                  | |
* | | /  | | /  | |  | |      | |  \_____ \  | | /        \ \    / /    | | /_______  |__|  / _____  |                  | |
* | |/    | |/    | |  | |      | |        \ |  | |/\        \ \  / /      | |        | |    / /    | |        __        | |
* | |    | |    | |  | \      / |  __    | |  | |\ \        \ \/ /      | |        | |    | |    /| |      |  |        | |
* | |    | |    | |  \ \____/ /  \ \____/ |  | | \ \        \  /        | |        | |    \ \___/ /\ \      / /    _____| |
* |_|    |_|    |_|    \______/    \______/  |_|  \_\        \/        |_|        |_|      \_____/  \_\    /_/    |_______|
*
*
*
*** Copyright 2011 - 2013, m0skVi4a ;]
*** Plugin created in Rousse, Bulgaria
*
*
*** Plugin thread 1:
* https://forums.alliedmods.net/showthread.php?t=183491
*
*** Plugin thread 2:
* http://amxmodxbg.org/forum/viewtopic.php?t=38972
*
*
*** Description:
*
* With this plugin you can set prefixes to Admins with special flags. Also Admins can put custom prefixes to them or to other players if they want, but only if they have the required flag.
*
*
*** Commands:
*
* ap_reload_prefixes
* Reloads Prefixes' file from console without restarting the server.
*
* ap_reload_badprefixes
* Reloads Bad Prefixes' file from console without restarting the server.
*
* ap_put_player "name" "prefix"
* Puts prefix to the name you type if you have the special flag. Or if there is no prefix typed, removes the prefix which the player has.
*
*
*** CVARS:
*
* "ap_bad_prefixes" - Is the Bad Prefixes option on(1) or off(0).  Default: 1
* "ap_listen" - Is the Admin Listen option on(1) or off(0).  Default: 1
* "ap_listen_flag" - The flag, needed for Listen option.  Default: a
* "ap_custom" - Is the Custom Prefix option for each Admin is on(1) or off(0).  Default: 1
* "ap_custom_flag" - The flag, needed for setting custom prefix.  Default: b
* "ap_say_characters" - Is the Start Say Characters option on(1) or off(0).  Default: 1
* "ap_prefix_characters" - Is the Checker for Characters in Custom Prefixes' Options on(1) or off(0).  Default: 1
*
* All CVARS are without quotes!
*
*
*** Credits:
*
* m0skVi4a ;]    - for the idea, making and testing the plugin
* SpeeDeeR    - for little help with the plugin
* Ant1Lamer    - for testing the plugin
* Vasilii-Zaicev - for testing the plugin
*
*
*** Changelog:
*
* April 22, 2012  -  V1.0:
* -  First Release
*
* May 19, 2012  -  V2.0:
* -  Full optimization
* -  Added Bad Prefixes' file
* -  Added Multi-Lingual file
* -  Added IP and Name support in ap_prefixes.ini
* -  Added Forbidden Say characters
* -  New CVARS for setting the flags for each of the options

* May 29, 2012  -  V2.1:
* -  Fixed bug with some say or say_team commands are not executed
*
* January 17, 2013  -  V3.0:
* -  Full optimization
* -  Fixed bug when typing spaces and in tha chat is showing an empty message
* -  SteamID support
* -  Removed nvault
* -  Removed ap_put_player command
* -  ap_put_player command is combined with ap_put command
* -  Removed some CVARs
*
* August 18, 2013  -  V4.0:
* -  Small code changes and little bug fixes
* -  Added Prefux Toggle command
* -  Fixed bug with the supporting of the plugin on AMXX 1.8.2
* -  AMXX 1.8.2 Supprot! 
* -  SQL Version! 
*
*
*** Contact me on:
* E-MAIL: [email protected]
* SKYPE: pa7ohin
*/


#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#include <cstrike>
#include <rango>


#define VERSION "4.0 WHITE CHAT"
#define FLAG_LOAD ADMIN_CFG
#define MAX_PREFIXES 33
#define MAX_BAD_PREFIXES 100

new g_bad_prefixg_listeng_listen_flagg_customg_custom_flagg_say_charactersg_prefix_characters;
new 
pre_ips_count 0pre_names_count 0pre_steamids_countpre_flags_count 0bad_prefix_count 0itemp_cvar[2];
new 
configs_dir[64], file_prefixes[128], file_bad_prefixes[128], text[128], prefix[32], type[2], key[32], lengthline 0error[256];
new 
g_teaminfog_saytxtg_maxplayersCsTeams:g_team;
new 
g_typed[192], g_message[192], g_name[32];
new 
Trie:pre_ips_collectTrie:pre_names_collectTrie:pre_steamids_collectTrie:pre_flags_collectTrie:bad_prefixes_collectTrie:client_prefix;
new 
str_id[16], temp_key[35], temp_prefix[32], temp_value;
new 
bool:g_toggle[33];
new 
bool:is_admin;

new const 
say_team_info[2][CsTeams][] =
{
 {
"*SPEC* ""*DEAD* ""*DEAD* ""*SPEC* "},
 {
""""""""}
}

new const 
sayteam_team_info[2][CsTeams][] =
{
 {
"(Spectator) ""*DEAD*(Terrorist) ""*DEAD*(Counter-Terrorist) ""(Spectator) "},
 {
"(Spectator) ""(Terrorist) ""(Counter-Terrorist) ""(Spectator) "}
}

new const 
forbidden_say_symbols[] = {
 
"/",
 
"!",
 
"%",
 
"$"
}

new const 
forbidden_prefixes_symbols[] = {
 
"/",
 
"\",
 "
%",
 "
$",
 "
.",
 "
:",
 "
?",
 "
!",
 "
@",
 "
#",
 
"%"
}

new const 
separator[] = "************************************************"
new const in_prefix[] = "[AdminPrefixes]"

new const g_team_names[CsTeams][] = {
 
"",
 
"TERRORIST",
 
"CT",
 
"SPECTATOR"
}

public 
plugin_init()
{
 
register_plugin("Admin Prefixes"VERSION"m0skVi4a ;]")

 
g_bad_prefix register_cvar("ap_bad_prefixes""1")
 
g_listen register_cvar("ap_listen""1")
 
g_listen_flag register_cvar("ap_listen_flag""a")
 
g_custom register_cvar("ap_custom_current""1")
 
g_custom_flag register_cvar("ap_custom_current_flag""b")
 
g_say_characters register_cvar("ap_say_characters""1")
 
g_prefix_characters register_cvar("ap_prefix_characters""1")

 
g_teaminfo get_user_msgid("TeamInfo")
 
g_saytxt get_user_msgid ("SayText")
 
g_maxplayers get_maxplayers()

 
register_concmd("ap_reload_prefixes""LoadPrefixes")
 
register_concmd("ap_reload_badprefixes""LoadBadPrefixes")
 
register_concmd("ap_put""SetPlayerPrefix")
 
register_clcmd("say""HookSay")
 
register_clcmd("say_team""HookSayTeam")

 
pre_ips_collect TrieCreate()
 
pre_names_collect TrieCreate()
 
pre_steamids_collect TrieCreate()
 
pre_flags_collect TrieCreate()
 
bad_prefixes_collect TrieCreate()
 
client_prefix TrieCreate()

 
register_dictionary("admin_prefixes.txt")

 
get_configsdir(configs_dircharsmax(configs_dir))
 
formatex(file_prefixescharsmax(file_prefixes), "%s/ap_prefixes.ini"configs_dir)
 
formatex(file_bad_prefixescharsmax(file_bad_prefixes), "%s/ap_bad_prefixes.ini"configs_dir)

 
LoadPrefixes(0)
 
LoadBadPrefixes(0)
}
 
public 
LoadPrefixes(id)
{
 if(!(
get_user_flags(id) & FLAG_LOAD))
 {
 
console_print(id"%L"LANG_SERVER"PREFIX_PERMISSION"in_prefix)
 return 
PLUGIN_HANDLED
 
}

 
TrieClear(pre_ips_collect)
 
TrieClear(pre_names_collect)
 
TrieClear(pre_steamids_collect)
 
TrieClear(pre_flags_collect)

 
line 0length 0pre_flags_count 0pre_ips_count 0pre_names_count 0;

 if(!
file_exists(file_prefixes)) 
 {
 
formatex(errorcharsmax(error), "%L"LANG_SERVER"PREFIX_NOT_FOUND"in_prefixfile_prefixes)
 
set_fail_state(error)
 }

 
server_print(separator)

 while(
read_file(file_prefixesline++ , textcharsmax(text), length) && (pre_ips_count pre_names_count pre_steamids_count pre_flags_count) <= MAX_PREFIXES)
 {
 if(!
text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
 continue

 
parse(texttypecharsmax(type), keycharsmax(key), prefixcharsmax(prefix))
 
trim(prefix)

 if(!
type[0] || !prefix[0] || !key[0])
 continue

 
replace_all(prefixcharsmax(prefix), "!g""^x04")
 
replace_all(prefixcharsmax(prefix), "!t""^x03")
 
replace_all(prefixcharsmax(prefix), "!n""^x01")

 switch(
type[0])
 {
 case 
'f':
 {
 
pre_flags_count++
 
TrieSetString(pre_flags_collectkeyprefix)
 
server_print("%L"LANG_SERVER"PREFIX_LOAD_FLAG"in_prefixprefixkey[0])
 }
 case 
'i':
 {
 
pre_ips_count++
 
TrieSetString(pre_ips_collectkeyprefix)
 
server_print("%L"LANG_SERVER"PREFIX_LOAD_IP"in_prefixprefixkey)
 }
 case 
's':
 {
 
pre_steamids_count++
 
TrieSetString(pre_steamids_collectkeyprefix)
 
server_print("%L"LANG_SERVER"PREFIX_LOAD_STEAMID"in_prefixprefixkey)
 }
 case 
'n':
 {
 
pre_names_count++
 
TrieSetString(pre_names_collectkeyprefix)
 
server_print("%L"LANG_SERVER"PREFIX_LOAD_NAME"in_prefixprefixkey)
 }
 default:
 {
 continue
 }
 }
 }

 if(
pre_flags_count <= && pre_ips_count <= && pre_steamids_count <= && pre_names_count <= 0)
 {
 
server_print("%L"LANG_SERVER"PREFIX_NO"in_prefix)
 }

 
get_user_name(idg_namecharsmax(g_name))
 
server_print("%L"LANG_SERVER"PREFIX_LOADED_BY"in_prefixg_name)
 
console_print(id"%L"LANG_SERVER"PREFIX_LOADED"in_prefix)

 
server_print(separator)

 for(new 
1<= g_maxplayersi++)
 {
 
num_to_str(istr_idcharsmax(str_id))
 
TrieDeleteKey(client_prefixstr_id)
 
PutPrefix(i)
 }
 
 return 
PLUGIN_HANDLED
}

public 
LoadBadPrefixes(id)
{
 if(!
get_pcvar_num(g_bad_prefix))
 {
 
console_print(id"%L"LANG_SERVER"BADP_OFF"in_prefix)
 return 
PLUGIN_HANDLED
 
}

 if(!(
get_user_flags(id) & FLAG_LOAD))
 {
 
console_print(id"%L"LANG_SERVER"BADP_PERMISSION"in_prefix)
 return 
PLUGIN_HANDLED
 
}

 
TrieClear(bad_prefixes_collect)

 
line 0length 0bad_prefix_count 0;

 if(!
file_exists(file_bad_prefixes)) 
 {
 
console_print(id"%L"LANG_SERVER"BADP_NOT_FOUND"in_prefixfile_bad_prefixes)
 return 
PLUGIN_HANDLED 
 
}

 
server_print(separator)

 while(
read_file(file_bad_prefixesline++ , textcharsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES)
 {
 if(!
text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
 continue

 
parse(textprefixcharsmax(prefix))

 if(!
prefix[0])
 continue

 
bad_prefix_count++
 
TrieSetCell(bad_prefixes_collectprefix1)
 
server_print("%L"LANG_SERVER"BADP_LOAD"in_prefixprefix)
 }

 if(
bad_prefix_count <= 0)
 {
 
server_print("%L"LANG_SERVER"BADP_NO"in_prefix)
 }

 
get_user_name(idg_namecharsmax(g_name))
 
server_print("%L"LANG_SERVER"BADP_LOADED_BY"in_prefixg_name)
 
console_print(id"%L"LANG_SERVER"BADP_LOADED"in_prefix)

 
server_print(separator)

 return 
PLUGIN_HANDLED
}

public 
client_putinserver(id)
{
 
g_toggle[id] = true
 num_to_str
(idstr_idcharsmax(str_id))
 
TrieSetString(client_prefixstr_id"")
 
PutPrefix(id)
}

public 
HookSay(id)
{
 
read_args(g_typedcharsmax(g_typed))
 
remove_quotes(g_typed)

 
trim(g_typed)

 if(
equal(g_typed"") || !is_user_connected(id))
 return 
PLUGIN_HANDLED_MAIN

 
if(equal(g_typed"/prefix"))
 {
 if(
g_toggle[id])
 {
 
g_toggle[id] = false
 client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_OFF"in_prefix)
 }
 else
 {
 
g_toggle[id] = true
 client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_ON"in_prefix)
 }

 return 
PLUGIN_HANDLED_MAIN
 
}

 if(!
g_toggle[id])
 return 
PLUGIN_CONTINUE

 num_to_str
(idstr_idcharsmax(str_id))

 if((
TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
 {
 if(
check_say_characters(g_typed))
 return 
PLUGIN_HANDLED_MAIN
 
}

 
g_team cs_get_user_team(id)

 if(
temp_prefix[0])
 {
 
formatex(g_messagecharsmax(g_message), "^3%s^1%s^3%s^4 %s :^3 %s"say_team_info[is_user_alive(id)][g_team], temp_prefixg_nameg_typed)
 
is_admin true
 
}
 else
 {
 
formatex(g_messagecharsmax(g_message), "^3%s^1%s^3%s :^1 %s"say_team_info[is_user_alive(id)][g_team], g_nameg_typed)
 
is_admin false
 
}

 
get_pcvar_string(g_listen_flagtemp_cvarcharsmax(temp_cvar))

 for(new 
1<= g_maxplayersi++)
 {
 if(!
is_user_connected(i))
 continue

 if(
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
 {
 if(
is_admin)
 {
 
g_team cs_get_user_team(i)
 
change_team_info(ig_team_names[CS_TEAM_SPECTATOR])
 
send_message(g_messageii)
 
change_team_info(ig_team_names[g_team])
 }
 else
 {
 
send_message(g_messageidi)
 }
 }
 }

 return 
PLUGIN_HANDLED_MAIN
}

public 
HookSayTeam(id)
{
 
read_args(g_typedcharsmax(g_typed))
 
remove_quotes(g_typed)

 
trim(g_typed)

 if(
equal(g_typed"") || !is_user_connected(id))
 return 
PLUGIN_HANDLED_MAIN

 
if(equal(g_typed"/prefix"))
 {
 if(
g_toggle[id])
 {
 
g_toggle[id] = false
 client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_OFF"in_prefix)
 }
 else
 {
 
g_toggle[id] = true
 client_print
(idprint_chat"%L"LANG_SERVER"PREFIX_ON"in_prefix)
 }

 return 
PLUGIN_HANDLED_MAIN
 
}

 if(!
g_toggle[id])
 return 
PLUGIN_CONTINUE

 num_to_str
(idstr_idcharsmax(str_id))

 if((
TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefixstr_idtemp_prefixcharsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3)
 {
 if(
check_say_characters(g_typed))
 return 
PLUGIN_HANDLED_MAIN
 
}

 
get_user_name(idg_namecharsmax(g_name))

 
g_team cs_get_user_team(id)

 if(
temp_prefix[0])
 {
 
formatex(g_messagecharsmax(g_message), "^1%s^3%s^4 %s :^3 %s"sayteam_team_info[is_user_alive(id)][g_team], temp_prefixg_nameg_typed)
 
is_admin true
 
}
 else
 {
 
formatex(g_messagecharsmax(g_message), "^1%s^3%s :^1 %s"sayteam_team_info[is_user_alive(id)][g_team], g_nameg_typed)
 
is_admin false
 
}

 
get_pcvar_string(g_listen_flagtemp_cvarcharsmax(temp_cvar))

 for(new 
1<= g_maxplayersi++)
 {
 if(!
is_user_connected(i))
 continue

 if(
get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
 {
 if(
is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar))
 {
 if(
is_admin)
 {
 
g_team cs_get_user_team(i)
 
change_team_info(ig_team_names[CS_TEAM_SPECTATOR])
 
send_message(g_messageii)
 
change_team_info(ig_team_names[g_team])
 }
 else
 {
 
send_message(g_messageidi)
 }
 }
 }
 }

 return 
PLUGIN_HANDLED_MAIN
}

public 
SetPlayerPrefix(id)
{
 if(!
get_pcvar_num(g_custom) || !get_pcvar_string(g_custom_flagtemp_cvarcharsmax(temp_cvar)))
 {
 
console_print(id"%L"LANG_SERVER"CUSTOM_OFF"in_prefix)
 return 
PLUGIN_HANDLED
 
}

 if(!(
get_user_flags(id) & read_flags(temp_cvar)))
 {
 
console_print(id"%L"LANG_SERVER"CUSTOM_PERMISSION"in_prefix)
 return 
PLUGIN_HANDLED
 
}

 new 
input[128], target;
 new 
arg_type[2], arg_prefix[32], arg_key[35];
 new 
temp_str[16];

 
read_args(inputcharsmax(input))
 
remove_quotes(input)
 
parse(inputarg_typecharsmax(arg_type), arg_keycharsmax(arg_key), arg_prefixcharsmax(arg_prefix))
 
trim(arg_prefix)

 if(
get_pcvar_num(g_bad_prefix) && is_bad_prefix(arg_prefix) && !equali(arg_prefix""))
 {
 
console_print(id"%L"LANG_SERVER"CUSTOM_FORBIDDEN"in_prefixarg_prefix)
 return 
PLUGIN_HANDLED
 
}

 if(
get_pcvar_num(g_prefix_characters) && check_prefix_characters(arg_prefix))
 {
 
console_print(id"%L"LANG_SERVER"CUSTOM_SYMBOL"in_prefixarg_prefixforbidden_prefixes_symbols[i])
 return 
PLUGIN_HANDLED
 
}

 switch(
arg_type[0])
 {
 case 
'f':
 {
 
target 0
 temp_str 
"Flag"
 
}
 case 
'i':
 {
 
target find_player("d"arg_key)
 
temp_str "IP"
 
}
 case 
's':
 {
 
target find_player("c"arg_key)
 
temp_str "SteamID"
 
}
 case 
'n':
 {
 
target find_player("a"arg_key)
 
temp_str "Name"
 
}
 default:
 {
 
console_print(id"%L"LANG_SERVER"CUSTOM_INVALID"in_prefixarg_type)
 return 
PLUGIN_HANDLED
 
}
 }

 
get_user_name(idg_namecharsmax(g_name))

 if(
equali(arg_prefix""))
 {
 
find_and_delete(arg_typearg_key)

 if(
target)
 {
 
PutPrefix(target)
 }
 
 
console_print(id"%L"LANG_SERVER"CUSTOM_REMOVE"in_prefixtemp_strarg_key)
 
server_print("%L"LANG_SERVER"CUSTOM_REMOVE_INFO"in_prefixg_nametemp_strarg_key)
 return 
PLUGIN_HANDLED
 
}

 
find_and_delete(arg_typearg_key)

 
formatex(textcharsmax(text), "^"%s^" ^"%s^" ^"%s^""arg_typearg_keyarg_prefix)
 
write_file(file_prefixestext, -1)

 switch(
arg_type[0])
 {
 case 
'f':
 {
 
TrieSetString(pre_flags_collectarg_keyarg_prefix)
 }
 case 
'i':
 {
 
TrieSetString(pre_ips_collectarg_keyarg_prefix)
 }
 case 
's':
 {
 
TrieSetString(pre_steamids_collectarg_keyarg_prefix)
 }
 case 
'n':
 {
 
TrieSetString(pre_names_collectarg_keyarg_prefix)
 }
 }

 if(
target)
 {
 
num_to_str(targetstr_idcharsmax(str_id))
 
TrieSetString(client_prefixstr_idarg_prefix)
 }

 
console_print(id"%L"LANG_SERVER"CUSTOM_CHANGE"in_prefixtemp_strarg_keyarg_prefix)
 
server_print("%L"LANG_SERVER"CUSTOM_CHANGE_INFO"in_prefixg_nametemp_strarg_keyarg_prefix

 return 
PLUGIN_HANDLED
}


public 
client_infochanged(id)
{
 if(!
is_user_connected(id))
 return 
PLUGIN_CONTINUE

 
new g_old_name[32];

 
get_user_info(id"name"g_namecharsmax(g_name))
 
get_user_name(idg_old_namecharsmax(g_old_name))

 if(!
equal(g_nameg_old_name))
 {
 
num_to_str(idstr_idcharsmax(str_id))
 
TrieSetString(client_prefixstr_id"")
 
set_task(0.5"PutPrefix"id)
 return 
PLUGIN_HANDLED
 
}

 return 
PLUGIN_CONTINUE
}

public 
PutPrefix(id)
{
 
num_to_str(idstr_idcharsmax(str_id))
 
TrieSetString(client_prefixstr_id"")

 new 
sflags[32], temp_flag[2];
 
get_flags(get_user_flags(id), sflagscharsmax(sflags))

 for(new 
0<= charsmax(sflags); i++)
 {
 
formatex(temp_flagcharsmax(temp_flag), "%c"sflags[i])

 if(
TrieGetString(pre_flags_collecttemp_flagtemp_prefixcharsmax(temp_prefix)))
 {
 
TrieSetString(client_prefixstr_idtemp_prefix)
 }
 }

 
get_user_ip(idtemp_keycharsmax(temp_key), 1)

 if(
TrieGetString(pre_ips_collecttemp_keytemp_prefixcharsmax(temp_prefix)))
 {
 
TrieSetString(client_prefixstr_idtemp_prefix)
 }

 
get_user_authid(idtemp_keycharsmax(temp_key))

 if(
TrieGetString(pre_steamids_collecttemp_keytemp_prefixcharsmax(temp_prefix)))
 {
 
TrieSetString(client_prefixstr_idtemp_prefix)
 }

 
get_user_name(idtemp_keycharsmax(temp_key))

 if(
TrieGetString(pre_names_collecttemp_keytemp_prefixcharsmax(temp_prefix)))
 {
 
TrieSetString(client_prefixstr_idtemp_prefix)
 }

 return 
PLUGIN_HANDLED
}

send_message(const message[], const id, const i)
{
 
message_begin(MSG_ONEg_saytxt, {000}, i)
 
write_byte(id)
 
write_string(message)
 
message_end()
}

change_team_info(const id, const team[])
{
 
message_begin(MSG_ONEg_teaminfo,_id)
 
write_byte(id)
 
write_string(team)
 
message_end()
}

bool:check_say_characters(const check_message[])
{
 for(new 
0charsmax(forbidden_say_symbols); i++)
 {
 if(
check_message[0] == forbidden_say_symbols[i])
 {
 return 
true
 
}
 }
 return 
false
}

bool:check_prefix_characters(const check_prefix[])
{
 for(
0charsmax(forbidden_prefixes_symbols); i++)
 {
 if(
containi(check_prefixforbidden_prefixes_symbols[i]) != -1)
 {
 return 
true
 
}
 }
 return 
false
}

bool:is_bad_prefix(const check_prefix[])
{
 if(
TrieGetCell(bad_prefixes_collectcheck_prefixtemp_value))
 {
 return 
true
 
}
 return 
false
}

find_and_delete(const arg_type[], const arg_key[])
{
 
line 0length 0;

 while(
read_file(file_prefixesline++ , textcharsmax(text), length))
 {
 if(!
text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/'))
 continue

 
parse(texttypecharsmax(type), keycharsmax(key), prefixcharsmax(prefix))
 
trim(prefix)

 if(!
type[0] || !prefix[0] || !key[0])
 continue
 
 if(!
equal(arg_typetype) || !equal(arg_keykey))
 continue
 
 
write_file(file_prefixes""line 1)
 }
 
 switch(
arg_type[0])
 {
 case 
'f':
 {
 
TrieDeleteKey(pre_flags_collectarg_key)
 }
 case 
'i':
 {
 
TrieDeleteKey(pre_ips_collectarg_key)
 }
 case 
's':
 {
 
TrieDeleteKey(pre_steamids_collectarg_key)
 }
 case 
'n':
 {
 
TrieDeleteKey(pre_names_collectarg_key)
 }
 }

Responder
#2
Con natives..

ej
https://github.com/Chris4589/panel_grip/...aravel.sma

uso

https://github.com/SVLatam/admin_tag/blo..._noobs.sma
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#3
(15/03/2022, 10:34 PM)Hinami escribió: Con natives..

ej
https://github.com/Chris4589/panel_grip/...aravel.sma

uso

https://github.com/SVLatam/admin_tag/blo..._noobs.sma

amigo no entendi esos codigos, si me podrias explicar por favor Cutecry
Responder
#4
(15/03/2022, 10:48 PM)letb055 escribió: amigo no entendi esos codigos, si me podrias explicar por favor  Cutecry

Plugin Rangos
Código PHP:
public native_rango(pluginparams)
{
    set_string(2Rangos[g_rango[get_param(1)]], get_param(3));
    return -1;


Plugin Prefixes

Código PHP:
//al inicio
native get_rango(iddest[], len);
new 
gSzTag33 ][ 32 ]



/
public 
client_putinserver(id)
{

    
gSzTag[id][0] = EOS;

    
get_rango(idgSzTag[id], 31);
}



//en 
public HookSay(id)

//agregas gSzTag[id]

     
formatex(g_messagecharsmax(g_message), "^3%s^1%s^3%s^4 %s :^3 %s"say_team_info[is_user_alive(id)][g_team], temp_prefixgSzTag[id], g_nameg_typed)
 
is_admin true 
prueba si funciona
Responder
#5
(16/03/2022, 03:15 PM)Randro escribió: Plugin Rangos
Código PHP:
public native_rango(pluginparams)
{
    set_string(2Rangos[g_rango[get_param(1)]], get_param(3));
    return -1;


Plugin Prefixes

Código PHP:
//al inicio
native get_rango(iddest[], len);
new 
gSzTag33 ][ 32 ]



/
public 
client_putinserver(id)
{

    gSzTag[id][0] = EOS;

    get_rango(idgSzTag[id], 31);
}



//en 
public HookSay(id)

//agregas gSzTag[id]

    formatex(g_messagecharsmax(g_message), "^3%s^1%s^3%s^4 %s :^3 %s"say_team_info[is_user_alive(id)][g_team], temp_prefixgSzTag[id], g_nameg_typed)
 
is_admin true 
prueba si funciona

no amigo no funciona, alguna otra solucion? Cutecry

me aparece esto


Código:
[ 20] Pause Plugins          1.9.0.5294  AMXX Dev Team    pausecfg.amxx    running 
[ 21] Stats Configuration    1.9.0.5294  AMXX Dev Team    statscfg.amxx    running 
[ 22] StatsX                  1.9.0.5294  AMXX Dev Team    statsx.amxx      running 
[ 23] unknown                unknown    unknown          AdminPrefixes_W  bad load
[ 24] Rangos CS:GO            2.0        kikizon / HTTPS:  FDZ_Rangos.amxx  running 
( 23) Load fails: Plugin uses an unknown function (name "get_rango") - check your modules.ini.
24 plugins, 23 running

Dafuq
Responder
#6
(16/03/2022, 06:51 PM)letb055 escribió: no amigo no funciona, alguna otra solucion?  Cutecry

me aparece esto


Código:
[ 20] Pause Plugins          1.9.0.5294  AMXX Dev Team    pausecfg.amxx    running 
[ 21] Stats Configuration    1.9.0.5294  AMXX Dev Team    statscfg.amxx    running 
[ 22] StatsX                  1.9.0.5294  AMXX Dev Team    statsx.amxx      running 
[ 23] unknown                unknown    unknown          AdminPrefixes_W  bad load
[ 24] Rangos CS:GO            2.0        kikizon / HTTPS:  FDZ_Rangos.amxx  running 
( 23) Load fails: Plugin uses an unknown function (name "get_rango") - check your modules.ini.
24 plugins, 23 running

Dafuq

se te olvido crear la native en el plugin de rangos xD

Asi se crea checa
Código PHP:
public plugin_natives()
    register_native("get_rango""native_rango"0
Responder
#7
(16/03/2022, 07:56 PM)Randro escribió: se te olvido crear la native en el plugin de rangos xD

Asi se crea checa
Código PHP:
public plugin_natives()
    register_native("get_rango""native_rango"0

Listo Bro eres el mejor todo funciona perfectamente MUCHAS GRACIAS Nunca olvidare esto  Rainbow  Rainbow  Rainbow  Rainbow
Responder
#8
de nada
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)