Allied Modders en español
Ayuda con este plugins WinByFrags - Versión para impresión

+- Allied Modders en español (https://amxmodx-es.com)
+-- Foro: AMX Mod X - Scripting (https://amxmodx-es.com/Forum-AMX-Mod-X-Scripting)
+--- Foro: Scripting (https://amxmodx-es.com/Forum-Scripting)
+--- Tema: Ayuda con este plugins WinByFrags (/Thread-Ayuda-con-este-plugins-WinByFrags)



Ayuda con este plugins WinByFrags - rosario - 17/05/2019

Alguien me podría ayudar a modificar este plugins lo del mapchooser, para que trabaje con el galileo normal? uso version de compilacion 1.9.0

CODIGO SMA
Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <fun>

#define VERSION "0.3"

new g_firstleaderg_secondleaderg_thirdleaderg_winner
new g_votemapg_leaderfrags
new g_connected

const MaxPlayers 32;

new 
g_playername[MaxPlayers+1][32]

new 
cvar_maxfragscvar_enablecvar_lastfragscvar_winnertimecvar_steal

#define is_player_connected(%0)    (g_connected & (1 << %0-1))

enum (+= 111)
{
    
TASK_SHOWFRAGS 987,
    
TASK_SHOWLEADER
}

public 
plugin_init() 
{
    
register_plugin("Win by Frags"VERSION"Mario AR.")
    
    
register_event("DeathMsg""RegisterDeath""a")
    
    
cvar_maxfrags register_cvar("wbf_max_frags""50");
    
cvar_enable register_cvar("wbf_enable""1");
    
cvar_winnertime register_cvar("wbf_winner_time""10");
    
cvar_lastfrags register_cvar("wbf_frags_left_to_vote""10");
    
cvar_steal register_cvar("wbf_knife_steal""1");
    
    
set_task(3.0"StartTasks");
}

public 
plugin_precache()
{
    
precache_sound("gungame/gg_brass_bell.wav");
    
precache_sound("wbf/box_ring.wav");
}

public 
client_putinserver(id)
{
    if(!
get_pcvar_num(cvar_enable))
        return;
    
    
get_user_name(idg_playername[id], 31);
    
g_connected |= (<< id-1)
    
    if(!
is_user_bot(id))
    {
        
set_task(3.0"ShowFrags"id TASK_SHOWFRAGS);
        
set_task(3.0"ShowTheLeader"id TASK_SHOWLEADER);
    }
}

public 
client_disconnect(id)
{
    if(!
get_pcvar_num(cvar_enable))
        return;
    
    if(
task_exists(id TASK_SHOWLEADER))
        
remove_task(id TASK_SHOWLEADER);
        
    if(
task_exists(id TASK_SHOWFRAGS))
        
remove_task(id TASK_SHOWFRAGS);
    
    
g_connected &= ~(<< id-1)
}

public 
StartTasks()
{
    if(!
get_pcvar_num(cvar_enable))
        return;
    
    
set_cvar_num("mp_timelimit"0);
    
    
GetTheLeader();
}

public 
ShowFrags(id)
{
    
id -= TASK_SHOWFRAGS
    
    
if(!is_player_connected(id))
        return;
    
    static 
Frags
    Frags 
get_user_frags(id);
    
    if(!
g_winner)
    {
        
set_hudmessage(255255255, -1.00.8400.01.10.00.04);
        
show_hudmessage(id"Tienes %i frags.^nNecesitas %i mas para ganar."Fragsget_pcvar_num(cvar_maxfrags) - Frags);
    }
    else if(
g_winner != id)
    {
        
set_hudmessage(255255255, -1.00.4300.01.10.00.03);
        
show_hudmessage(id"El ganador es %s!^nSu ultima victima fue %s^nFelicitaciones, %s!^n^nTe faltaron %d frags para ganar.^nMas suerte la proxima vez!^n^nCambio de mapa en %d segundos.",
        
g_playername[g_winner], g_playername[g_secondleader], g_playername[g_winner], get_pcvar_num(cvar_maxfrags) - Fragsg_firstleader);
    }
    else
    {
        
set_hudmessage(255255255, -1.00.4600.01.10.00.03);
        
show_hudmessage(id"Has Ganado!^nFuiste el primero en llegar a los %d frags.^nFelicitaciones, %s!^n^nTu ultima victima fue %s^n^nCambio de mapa en %d segundos.",
        
Fragsg_playername[g_winner], g_playername[g_secondleader], g_firstleader);
    }
    
    
set_task(1.0"ShowFrags"id TASK_SHOWFRAGS);
}

public 
GetTheLeader()
{
    if(
g_winner)
        return;
    
    if(!
g_votemap && get_pcvar_num(cvar_maxfrags) - g_leaderfrags <= get_pcvar_num(cvar_lastfrags))
    {
        
g_votemap true
        VoteForMap
();
    }
    
    static 
frags[33], i
    
    g_leaderfrags 
= -99 // BUGFIX
    
g_secondleader g_thirdleader 0
    
    
for(1<= MaxPlayersi++)
    {
        if(!
is_player_connected(i)) continue;
        
        
frags[i] = get_user_frags(i)
        
        if(
frags[i] > g_leaderfrags)
        {
            
g_firstleader i
            g_leaderfrags 
frags[i];
        }
    }
    
    for(
1MaxPlayersi++)
    {
        if(!
is_player_connected(i) || == g_firstleader) continue;
        
        if(
frags[i] == g_leaderfrags)
        {
            if(!
g_secondleader)
                
g_secondleader i
            
else if(!g_thirdleader)
            {
                
g_thirdleader i
                
break;
            }
        }
    }
    
    
set_task(0.2"GetTheLeader");
}

public 
ShowTheLeader(id)
{
    
id -= TASK_SHOWLEADER
    
    
if(!is_player_connected(id))
        return;
    
    
set_hudmessage(255255255, -1.00.1200.01.10.00.03);
        
    static 
fragsfrags get_user_frags(id);
    
    if(!
g_secondleader)
    {
        if(
g_firstleader == id)
            
show_hudmessage(id"Eres el unico lider.");
        else
            
show_hudmessage(id"Lider: %s con %d frags.^nEstas a %i frags de alcanzarlo."g_playername[g_firstleader], g_leaderfragsg_leaderfrags frags);
    }
    else if(!
g_thirdleader)
    {
        if(
frags == g_leaderfrags)
            
show_hudmessage(id"Eres el lider y compartes el titulo con:^n%s"g_playername[(id == g_firstleader) ? g_secondleader g_firstleader]);
        else
            
show_hudmessage(id"Lideres: %s y %s con %d frags.^nEstas a %d frags de alcanzarlos."g_playername[g_firstleader], g_playername[g_secondleader], g_leaderfragsg_leaderfrags frags);
    }
    else
    {
        if(
frags == g_leaderfrags)
        {
            if(
id == g_firstleader)
                
show_hudmessage(id"Eres el lider y compartes el titulo con:^n%s y %s"g_playername[g_secondleader], g_playername[g_thirdleader]);
            else if(
id == g_secondleader)
                
show_hudmessage(id"Eres el lider y compartes el titulo con:^n%s y %s"g_playername[g_firstleader], g_playername[g_thirdleader]);
            else
                
show_hudmessage(id"Eres el lider y compartes el titulo con:^n%s y %s"g_playername[g_firstleader], g_playername[g_secondleader]);
        }
        else
            
show_hudmessage(id"Lideres: %s, %s y %s con %d frags.^nEstas a %d frags de alcanzarlos."g_playername[g_firstleader], g_playername[g_secondleader], g_playername[g_thirdleader], g_leaderfragsg_leaderfrags frags);
    }
    
    if(!
g_winner)
        
set_task(1.0"ShowTheLeader"id TASK_SHOWLEADER);
}

public 
RegisterDeath()
{
    if(!
get_pcvar_num(cvar_enable) || g_winner)
        return;
    
    static 
idvic
    id 
read_data(1);
    
vic read_data(2);
    
    if(
id == vic)
    {
        
client_print(idprint_chat"Pierdes un frag por suicidio.");
        return;
    }
    
    static 
weapon[3], stealfrags;
    
read_data(4weapon2);
    
steal get_pcvar_num(cvar_steal)
    
frags get_user_frags(id)
    
    if(
steal && weapon[0] == 'k')
    {
        
set_user_frags(idfrags steal 1);
        
        
set_user_frags(vicget_user_frags(vic) - steal);
        
        
client_print(idprint_chat"Robaste %i frag%s de %s por acuchillarlo."stealsteal == "" "s"g_playername[vic]);
        
client_print(vicprint_chat"%s te robo %i frag%s por acuchillarte."g_playername[id], stealsteal == "" "s");
    }
    
    if(!
g_winner && frags >= get_pcvar_num(cvar_maxfrags))
    {
        
g_winner id;
        
// We'll use these variables so we don't need to create new ones
        
g_firstleader get_pcvar_num(cvar_winnertime)
        
g_secondleader vic
        
        client_cmd
(0"spk wbf/box_ring.wav");
    
        for(
id 1id <= MaxPlayersid++)
        {
            if(!
is_player_connected(id)) continue;
            
            
set_user_godmode(id,1);
            
set_pev(idpev_flagspev(id,pev_flags) | FL_FROZEN);
            
set_pev(idpev_viewmodel2"");
        }
        
        
PrepareToChangeMap()
    }
}
    
public 
PrepareToChangeMap()
{
    
g_firstleader--
    
    if(!
g_firstleader)
    {
        new 
NextMap[65]
        
get_cvar_string("amx_nextmap"NextMap64);
        
server_cmd("changelevel %s"NextMap);
    }
    else
        
set_task(1.0"PrepareToChangeMap")
}

//Code from GunGame, made by Avalanche.
stock VoteForMap()
{
    if(
find_plugin_byfile("mapchooser.amxx") == INVALID_PLUGIN_ID)
        return;
    
    new 
oldWinLimit get_cvar_num("mp_winlimit"), oldMaxRounds get_cvar_num("mp_maxrounds");
    
set_cvar_num("mp_winlimit",0);
    
set_cvar_num("mp_maxrounds",-1);
    
client_cmd(0"spk gungame/gg_brass_bell.wav");

    if(
callfunc_begin("voteNextmap","mapchooser.amxx") == 1)
        
callfunc_end();

    
set_cvar_num("mp_winlimit",oldWinLimit);
    
set_cvar_num("mp_maxrounds",oldMaxRounds);