sacar native a los rangos solucionado - Forever123 - 09/09/2019
buenas alguien me podria ayudar a como le puedo sacar la native a esto
Código PHP: Rangos[g_rango[id]][NOMBRE]
para poder llamar el rango en otro plugin
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(index, fakevar, const input[], any:...) { #pragma unused fakevar static szMsg[191], g_iMsgSayText; if(!g_iMsgSayText) g_iMsgSayText = get_user_msgid("SayText");
vformat(szMsg, 190, input, 3);
message_begin(index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_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 SyncHUD, g_maxplayers, g_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_vault, g_iField_Rank, g_iField_Frags; new cvar_Hud, cvar_knifex2, cvar_hsx2, cvar_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(DataBase, false); 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(id, pev_iuser2); if(id != ID_HUD) { set_hudmessage(255, 255, 255, 0.60, 0.67, 1, 6.0, 1.0); ShowSyncHudMsg(ID_HUD, SyncHUD, "Frags: %d || Rango: %s", g_frags[id], Rangos[g_rango[id]][NOMBRE]) } else { set_hudmessage(0, 255, 0, 0.0, 0.20, 1, 6.0, 1.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(id, g_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 = 1; id <= g_maxplayers; ++id) { if(is_valid_player(id)) Guardar(id); } }
public ham_PlayerKilledPost(victim, attacker, sg) { if(!is_user_connected(victim) || !is_user_connected(attacker) || !attacker || attacker == victim) return HAM_IGNORED;
SetFrags(attacker, 1);
if(get_pcvar_num(cvar_knifex2) == 1 && get_user_weapon(attacker) == CSW_KNIFE) SetFrags(attacker, 1);
if(get_pcvar_num(cvar_hsx2) == 1 && get_pdata_int(victim, 75, 5) == HIT_HEAD) SetFrags(attacker, 1);
return HAM_IGNORED; }
SetFrags(index, frags) { g_frags[index] += frags;
static iRank; iRank = 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(index, print_team_default, "%s Felicidades subiste al rango: ^4%s", Prefijo, Rangos[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(said, charsmax(said)); remove_quotes(said); if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, "")) return PLUGIN_HANDLED;
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE; static color[11], i, team[11]; get_user_team(id,color,charsmax(color)); if(get_user_flags(id) & CHAT_FLAG) { format(said, charsmax(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(said, charsmax(said), "^x01%s^04%s ^x03%s ^x01: %s", is_user_alive(id) ? "" : "[MUERTO]", Rangos[g_rango[id]][NOMBRE], g_playername[id], said); } for (i = 1; i <= g_maxplayers; i++) { 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(i, team, charsmax(team)); changeTeamInfo(i, color); writeMessage(i, said); changeTeamInfo(i, team); } }
return PLUGIN_HANDLED_MAIN; }
public message_sayteam(id) { if(!get_pcvar_num(cvar_hooksay)) return PLUGIN_CONTINUE;
static said[192]; read_args(said, charsmax(said)); remove_quotes(said); if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, "")) return PLUGIN_HANDLED;
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE; static playerTeam, playerTeamName[19]; playerTeam = get_user_team(id); switch (playerTeam) { case 1: copy (playerTeamName, 6, "TE") case 2: copy (playerTeamName, 8, "CT") default: copy (playerTeamName, 11, "SPEC") }
static color[11], i, team[11]; get_user_team(id,color,charsmax(color));
if (get_user_flags(id) & CHAT_FLAG) { format(said, charsmax(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(said, charsmax(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 (i = 1; i <= g_maxplayers; i++) { 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(i, team, charsmax(team)); changeTeamInfo(i, color); writeMessage(i, said); changeTeamInfo(i, team); } } }
return PLUGIN_HANDLED_MAIN; }
public changeTeamInfo(player, team[]) { static g_msgTeamInfo; if(!g_msgTeamInfo) g_msgTeamInfo = get_user_msgid("TeamInfo");
message_begin(MSG_ONE, g_msgTeamInfo, _, player); write_byte(player); write_string(team); message_end(); }
public writeMessage(player, message[]) { static g_msgSayText; if(!g_msgSayText) g_msgSayText = get_user_msgid("SayText"); message_begin(MSG_ONE, g_msgSayText, {0, 0, 0}, player); write_byte(player); write_string(message); message_end(); }
Guardar(id) { adv_vault_set_start(g_vault);
adv_vault_set_field(g_vault, g_iField_Rank, g_rango[id]); adv_vault_set_field(g_vault, g_iField_Frags, g_frags[id]); adv_vault_set_end(g_vault, 0, g_playername[id]); }
Cargar(id) { if(!adv_vault_get_prepare(g_vault, _, g_playername[id])) return; g_rango[id] = adv_vault_get_field(g_vault, g_iField_Rank); g_frags[id] = adv_vault_get_field(g_vault, g_iField_Frags); }
stock ValidMessage(text[], maxcount) { static len, i, count; len = strlen(text);count = 0; if (!len) return false; for (i = 0; i < len; i++) { if (text[i] != ' ') { count++; if (count >= maxcount) return true; } } return false; }
RE: sacar native a los rangos - kikizon2 - 09/09/2019
Código PHP: public plugin_natives() register_native("csgo_get_rankname", "native_get_rankname", 1);
public native_get_rankname(index, const szRank[], len) { if(!is_user_connected(index)) return 0;
formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); return 1; }
RE: sacar native a los rangos - Forever123 - 09/09/2019
(09/09/2019, 03:02 AM)kikizon2 escribió: Código PHP: public plugin_natives() register_native("csgo_get_rankname", "native_get_rankname", 1);
public native_get_rankname(index, const szRank[], len) { if(!is_user_connected(index)) return 0;
formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); return 1; }
me tira este error al copilar
Cita:error 035: argument type mismatch (argument 1)
Código PHP: formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]);
cree la variable dentro del a funcion y me dejo copilar no se si sea esa la forma de arreglarlo
Código PHP: public native_get_rankname(index, const szRank[], len) { new szRank[33] if(!is_user_connected(index)) return 0;
formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); return 1; }
tengo un problema en el menu donde pongo para que salga el rango me sale otra cosa hay subire una imagen
RE: sacar native a los rangos - kikizon2 - 09/09/2019
(09/09/2019, 03:02 AM)kikizon2 escribió: Código PHP: public plugin_natives() register_native("csgo_get_rankname", "native_get_rankname", 1);
public native_get_rankname(index, szRank[], len) { if(!is_user_connected(index)) return 0;
formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); return 1; }
se usa:
Código PHP: new szRank[32]; csgo_get_rankname(index, szRank, charsmax(szRank));
RE: sacar native a los rangos - Forever123 - 09/09/2019
(09/09/2019, 04:03 AM)kikizon2 escribió: (09/09/2019, 03:02 AM)kikizon2 escribió: Código PHP: public plugin_natives() register_native("csgo_get_rankname", "native_get_rankname", 1);
public native_get_rankname(index, szRank[], len) { if(!is_user_connected(index)) return 0;
formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); return 1; }
se usa:
Código PHP: new szRank[32]; csgo_get_rankname(index, szRank, charsmax(szRank));
no entiendo que tengo que hacer con esto
Código PHP: new szRank[32]; csgo_get_rankname(index, szRank, charsmax(szRank));
me puedes explicar
RE: sacar native a los rangos - kikizon2 - 09/09/2019
Se usa como get_user_name o get_user_authid
RE: sacar native a los rangos - Forever123 - 09/09/2019
lo coloque a si
Código PHP: new szRank[32]; csgo_get_rankname(id, szRank, charsmax(szRank));
new menu = menu_create(fmt("\y[\rTEST\y] \wMenu Principal^n\r• \wTu Rango: \y[\r%s\y]", szRank), "ctf_handler")
pero en el menu no me sale el rango no sale nada hay dejo la foto
RE: sacar native a los rangos - kikizon2 - 09/09/2019
Código PHP: public plugin_natives() register_native("csgo_get_rankname", "native_get_rankname", 1);
public native_get_rankname(index, szRank[], len) { if(!is_user_connected(index)) return;
param_convert(2); formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); }
se usa:
Código PHP: new szRank[32]; csgo_get_rankname(index, szRank, charsmax(szRank));
Prueba ahi, tiene rato que no toco amx
RE: sacar native a los rangos - Forever123 - 09/09/2019
(09/09/2019, 06:50 PM)kikizon2 escribió: Código PHP: public plugin_natives() register_native("csgo_get_rankname", "native_get_rankname", 1);
public native_get_rankname(index, szRank[], len) { if(!is_user_connected(index)) return;
param_convert(2); formatex(szRank, len, Rangos[g_rango[index]][NOMBRE]); }
se usa:
Código PHP: new szRank[32]; csgo_get_rankname(index, szRank, charsmax(szRank));
Prueba ahi, tiene rato que no toco amx
ya muchas gracias
|