Votaciones de Mapas segun nºJugadores
#1
Dedo abajo 
Basicamente es mapchooser.amxx pero modificado para que si la cvar esta activada en vez de funcionar normalmente, verificará cuantos jugadores hay en la partida si hay menos de PLAYERS_FOR_MAP_SMALL (osea 9 jug.)
cargara la lista de mapas de amxmodx\configs\maps_small.ini y si hay mas de amxmodx\configs\maps_big.ini
(es modificado por mi, no 100% mio no se si es el lugar correcto pero me gustaria que comprobaseis el plugin no quiero robar la autoria a nadie gracias)

"amx_loadmap"
0 = carga normal de mapcycle o maps.ini
1 = carga segun jugadores maps_big y maps_small

Código PHP:
#include <amxmodx>
#include <amxmisc>

#define SELECTMAPS  5
#define PLAYERS_FOR_MAP_SMALL 9    //Si hay menos de X jugadores se usara maps_small.ini, sino maps_big. (si amx_loadmap==1)

#define charsof(%1) (sizeof(%1)-1)

new Array:g_mapName;
new 
g_mapNums;

new 
g_nextName[SELECTMAPS]
new 
g_voteCount[SELECTMAPS 2]
new 
g_mapVoteNum
new g_teamScore[2]
new 
g_lastMap[32]

new 
g_coloredMenus
new bool:g_selected false

new mapname_actual[32]
new 
maps_played //Num de mapas recordados para que no aparezcan en la votacion
new mapname_played[5][32//5 = maps_played???
new maps_played_File[128]

public 
plugin_init()
{
    
register_plugin("MapChooserPlayers""1.5""AMX Dev & KWo & WaxinTon")
    
register_dictionary("mapchooser_players.txt")
    
register_dictionary("common.txt")
    
    
g_mapName=ArrayCreate(32);
    
    new 
MenuName[64]
    
    
format(MenuName63"%L""en""CHOOSE_NEXTM")
    
register_menucmd(register_menuid(MenuName), (-1^(-1<<(SELECTMAPS+2))), "countVote")
    
register_cvar("amx_extendmap_max""90")
    
register_cvar("amx_extendmap_step""15")
    
register_cvar("amx_loadmap""1")// 0 = carga normal de mapcycle o maps.ini - 1 = carga segun jugadores maps_big y maps_small

    
if (cstrike_running())
        
register_event("TeamScore""team_score""a")

    
get_localinfo("lastMap"g_lastMap31)
    
set_localinfo("lastMap""")
    
    
//Si amx_loadmap es distinto de 0 o 1 que lo establezca en 0
    
if(get_cvar_num("amx_loadmap") != && get_cvar_num("amx_loadmap") != 1){
        
set_cvar_num("amx_loadmap"0)
    }
    
    
register_event("HLTV""load_ini""a""1=0""2=0")
    
    
register_clcmd("say /map""mapa_actual")
    
register_clcmd("say_team /map""mapa_actual")
    
register_clcmd("say map""mapa_actual")
    
register_clcmd("say_team map""mapa_actual")
    
    
register_clcmd("say /currentmap""mapa_actual")
    
register_clcmd("say_team /currentmap""mapa_actual")
    
register_clcmd("say currentmap""mapa_actual")
    
register_clcmd("say_team currentmap""mapa_actual")
    
    
register_clcmd("say /mapa""mapa_actual")
    
register_clcmd("say_team /mapa""mapa_actual")

    
load_mapas_jugados()
        
}
public 
mapa_actual(id){//para saber el mapa actual cuando el jugador lo pide por say
    
get_mapname(mapname_actualsizeof (mapname_actual))
    
    static 
msg[191]
    
format (msg190"^x03- Estas en el MAPA: ^x04%s"mapname_actual)
    
//^x03 = Color del equipo - ^x04 = Verde
    
message_begin(MSG_ONEget_user_msgid("SayText"), {0,0,0}, id)
    
write_byte(id)
    
write_string(msg)
    
message_end()
}
public 
load_ini(){//Metodo de carga
    
    
new maps_ini_file[64]
    
get_configsdir(maps_ini_file63)
    
    switch(
get_cvar_num("amx_loadmap")){ 
        case 
0:{ 
            
format(maps_ini_file63"%s/maps.ini"maps_ini_file)
        }
        case 
1:{
            if (
get_playersnum() < PLAYERS_FOR_MAP_SMALL){//Si hay menos de 9 jugadores se usara maps_small.ini
                
format(maps_ini_file63"%s/maps_small.ini"maps_ini_file)
            } else{
                if (
get_playersnum() >= PLAYERS_FOR_MAP_SMALL){//Si hay 9 o mas jugadores se usara maps_big.ini
                    
format(maps_ini_file63"%s/maps_big.ini"maps_ini_file)
                }
            }
        }
    }
    
    if (!
file_exists(maps_ini_file)){
        
get_cvar_string("mapcyclefile"maps_ini_file63)
    }
    if (
loadSettings(maps_ini_file)){
        
set_task(15.0"voteNextmap"987456""0"b")
        
server_print("")
        
server_print("###[MCP]### %s --->[OK]"maps_ini_file)
    }
    
g_coloredMenus colored_menus()
    
    
//load_mapas_jugados()
    
}

//########################################################################################################
//########################################################################################################
//########################################################################################################

public load_mapas_jugados(){// Para cargar el archivo de mapas jugados maps_played.ini
    
    
new cfgdir[128]
    
    
get_configsdir(cfgdir127)//para obtener la direccion principal ...cstrike/addons/amxmodx/...
    
format(maps_played_File127"%s/maps_played.ini"cfgdir)//archivo de ultimos mapas jugados
    
    
if (!file_exists(maps_played_File)){
        
server_print("###[MCP]### %s --->[ERROR]"maps_played_File)
        return
    }
    
server_print("")
    
server_print("###[MCP]### %s --->[OK]"maps_played_File)
    new 
0
    
for ( new pos 0pos maps_playedpos++){
        
read_file(maps_played_File,pos,mapname_played[pos],31,a)
        
//server_print("")
        //server_print("###[MCP]### %s --->[OK]", mapname_played[pos])
    
}
}

public 
plugin_end(){// Para guardar/recordar los ultimos mapas jugados en maps_played.ini

    
get_mapname(mapname_actualsizeof (mapname_actual)) //obtener el mapa actual
    
    
if ( (file_exists(maps_played_File)) && (maps_played 0) )
    {
        new 
text[32]
        new 
0
        
// shift list up 1
        
for (new pos 0pos maps_playedpos++)
        {
            
read_file(maps_played_File,pos+1,text,31,a)
            
write_file(maps_played_File,text,pos)
        }
    }
    
write_file(maps_played_File,mapname_actual,maps_played-1)
}


//########################################################################################################
//########################################################################################################
//########################################################################################################

public checkVotes()
{
    new 
0
    
    
for (new 0g_mapVoteNum; ++a)
        if (
g_voteCount[b] < g_voteCount[a])
            
a

    
    
if (g_voteCount[SELECTMAPS] > g_voteCount[b]
        && 
g_voteCount[SELECTMAPS] > g_voteCount[SELECTMAPS+1])
    {
        new 
mapname[32]
        
        
get_mapname(mapname31)
        new 
Float:steptime get_cvar_float("amx_extendmap_step")
        
set_cvar_float("mp_timelimit"get_cvar_float("mp_timelimit") + steptime)
        
client_print(0print_chat"%L"LANG_PLAYER"CHO_FIN_EXT"steptime)
        
log_amx("Votacion para el siguiente mapa Finalizada. Mapa %s sera extendido durante %.0f minutos"mapnamesteptime)
        
        return
    }
    
    new 
smap[32]
    if (
g_voteCount[b] && g_voteCount[SELECTMAPS 1] <= g_voteCount[b])
    {
        
ArrayGetString(g_mapNameg_nextName[b], smapcharsof(smap));
        
set_cvar_string("amx_nextmap"smap);
    }

    
    
get_cvar_string("amx_nextmap"smap31)
    
client_print(0print_chat"%L"LANG_PLAYER"CHO_FIN_NEXT"smap)
    
log_amx("Votacion para el siguiente mapa Finalizada. Mapa siguiente %s"smap)
}

public 
countVote(idkey)
{
    if (
get_cvar_float("amx_vote_answers"))
    {
        new 
name[32]
        
get_user_name(idname31)
        
        if(
key >= SELECTMAPS){
            
client_print(0print_chat"%L"LANG_PLAYER"CHOSE_EXT"name)
        }
        else if(
key SELECTMAPS){
            new 
map[32];
            
ArrayGetString(g_mapNameg_nextName[key], mapcharsof(map));
            
client_print(0print_chat"%L"LANG_PLAYER"X_CHOSE_X"namemap)
        }
    }
    ++
g_voteCount[key]
    
    return 
PLUGIN_HANDLED
}

bool:isInMenu(id)
{
    for (new 
0g_mapVoteNum; ++a)
        if (
id == g_nextName[a])
            return 
true
    
return false
}

public 
voteNextmap()
{
    new 
winlimit get_cvar_num("mp_winlimit")
    new 
maxrounds get_cvar_num("mp_maxrounds")
    
    if (
winlimit)
    {
        new 
winlimit 2
        
        
if ((g_teamScore[0]) && (g_teamScore[1]))
        {
            
g_selected false
            
return
        }
    }
    else if (
maxrounds)
    {
        if ((
maxrounds 2) > (g_teamScore[0] + g_teamScore[1]))
        {
            
g_selected false
            
return
        }
    } else {
        new 
timeleft get_timeleft()
        
        if (
timeleft || timeleft 129)
        {
            
g_selected false
            
return
        }
    }

    if (
g_selected)
        return

    
g_selected true
    
    
new menu[512], amkeys = (1<<SELECTMAPS 1)

    new 
pos format(menu511g_coloredMenus "\y%L:\w^n^n" "%L:^n^n"LANG_SERVER"CHOOSE_NEXTM")
    new 
dmax = (g_mapNums SELECTMAPS) ? SELECTMAPS g_mapNums
    
    
for (g_mapVoteNum 0g_mapVoteNum dmax; ++g_mapVoteNum)
    {
        
random_num(0g_mapNums 1)
        
        while (
isInMenu(a))
            if (++
>= g_mapNums0
        
        g_nextName
[g_mapVoteNum] = a
        pos 
+= format(menu[pos], 511"%d. %a^n"g_mapVoteNum 1ArrayGetStringHandle(g_mapNamea));
        
mkeys |= (1<<g_mapVoteNum)
        
g_voteCount[g_mapVoteNum] = 0
    
}
    
    
menu[pos++] = '^n'
    
g_voteCount[SELECTMAPS] = 0
    g_voteCount
[SELECTMAPS 1] = 0
    
    
new mapname[32]
    
get_mapname(mapname31)

    if ((
winlimit maxrounds) == && (get_cvar_float("mp_timelimit") < get_cvar_float("amx_extendmap_max")))
    {
        
pos += format(menu[pos], 511"%d. %L^n"SELECTMAPS 1LANG_SERVER"EXTED_MAP"mapname)
        
mkeys |= (1<<SELECTMAPS)
    }

    
format(menu[pos], 511"%d. %L"SELECTMAPS+2LANG_SERVER"RETRY_MAP")
    new 
MenuName[64]
    
    
format(MenuName63"%L""en""CHOOSE_NEXTM")
    
show_menu(0mkeysmenu15MenuName)
    
set_task(15.0"checkVotes")
    
client_print(0print_chat"%L"LANG_SERVER"TIME_CHOOSE")
    
client_cmd(0"spk Gman/Gman_Choose2")
    
log_amx("###[MCP]### Iniciada Votacion para el siguiente Mapa")
}
stock bool:ValidMap(mapname[])
{
    if (!
file_exists(maps_played_File)){
        
server_print("###[MCP]### %s --->[ERROR2]"maps_played_File)
        return 
false;
    }
    if ( 
is_map_valid(mapname) )
    {
        for (new 
0maps_played; ++i) {
            if (
equali(mapnamemapname_played[i])){//que si SI esta en la lista de jugados
                
return false;
            }
        }
//que NO esta en la lista de jugados
        
return true;
    }
    
// If the is_map_valid check failed, check the end of the string
    
new len strlen(mapname) - 4;
    
    
// The mapname was too short to possibly house the .bsp extension
    
if (len 0)
    {
        return 
false;
    }
    if ( 
equali(mapname[len], ".bsp") )
    {
        
// If the ending was .bsp, then cut it off.
        // the string is byref'ed, so this copies back to the loaded text.
        
mapname[len] = '^0';
        
        
// recheck
        
if ( is_map_valid(mapname) )
        {
            for (new 
0maps_played; ++i) {
                if (
equali(mapnamemapname_played[i])){//que si SI esta en la lista de jugados
                    
return false;
                }
            }
//que NO esta en la lista de jugados
            
return true;
        }
    }
    return 
false;
}
loadSettings(filename[])
{
    if (!
file_exists(filename))
        return 
0

    
new szText[32]
    new 
currentMap[32]
    
    new 
buff[256];
    
    
get_mapname(currentMap31)

    new 
fp=fopen(filename,"r");
    
    while (!
feof(fp))
    {
        
buff[0]='^0';
        
        
fgets(fpbuffcharsof(buff));
        
        
parse(buffszTextcharsof(szText));
        
        
        if (
szText[0] != ';' &&
            
ValidMap(szText) &&
            !
equali(szTextg_lastMap) &&
            !
equali(szTextcurrentMap))
        {
            
ArrayPushString(g_mapNameszText);
            ++
g_mapNums;
        }
        
    }
    
    
fclose(fp);

    return 
g_mapNums
}

public 
team_score()
{
    new 
team[2]
    
    
read_data(1team1)
    
g_teamScore[(team[0]=='C') ? 1] = read_data(2)

Responder
#2
proba esto

Código PHP:
stock register_map_cmd(const command[], const function[])
{
    new 
formats[200]
    
formatex(formatscharsmax(formats), "say %s"command)
    
register_clcmd(formats, function)
    
formatex(formatscharsmax(formats), "say /%s"command)
    
register_clcmd(formats, function)
    
formatex(formatscharsmax(formats), "say .%s"command)
    
register_clcmd(formats, function)


no lo testie...
Responder
#3
No entiendo para que, puedes explicarte?
Responder
#4
se refiere a que todos estos comandos tienen el mismo handler...

Código PHP:
register_clcmd("say /map""mapa_actual")
    
register_clcmd("say_team /map""mapa_actual")
    
register_clcmd("say map""mapa_actual")
    
register_clcmd("say_team map""mapa_actual")
    
    
register_clcmd("say /currentmap""mapa_actual")
    
register_clcmd("say_team /currentmap""mapa_actual")
    
register_clcmd("say currentmap""mapa_actual")
    
register_clcmd("say_team currentmap""mapa_actual")
    
    
register_clcmd("say /mapa""mapa_actual")
    
register_clcmd("say_team /mapa""mapa_actual"

Genius
Responder
#5
Ya a tanto no llego, mi lema es si funciona para que tocarlo jajaj
Responder
#6
entonces para que postrar esto en plugins nuevos?
Responder
#7
es mejor en otro sitio en cual? soy noob sorry que lo mueva o borre algun admin i que me diga como hacerlo jejej
Responder
#8
Ahora resulta que vos ayudaste al equipo AMXX Dev Team a hacer el plugin?

Código PHP:
register_plugin("MapChooserPlayers""1.5""AMX Dev & KWo & WaxinTon"

Tendrías que evitar estos tipos de errores, Es ilegalísimo modificar el autor del plugin.. Está bien que intentes aportar, de los errores se aprende.. Para la próxima no hagas esto de nuevo.. Oh sino te vas a comer un lindo ban..
(15/12/2020, 07:06 PM)Mario AR. escribió: Cuando tu acatante conozca de tu nuevo puerto, te volverá a atacar
Responder
#9
Código PHP:
public plugin_init()
{
    
//Code....

    
register_clcmd("say /map""mapa_actual")
    
register_clcmd("say_team /map""mapa_actual")
    
register_clcmd("say map""mapa_actual")
    
register_clcmd("say_team map""mapa_actual")
    
    
register_clcmd("say /currentmap""mapa_actual")
    
register_clcmd("say_team /currentmap""mapa_actual")
    
register_clcmd("say currentmap""mapa_actual")
    
register_clcmd("say_team currentmap""mapa_actual")
    
    
register_clcmd("say /mapa""mapa_actual")
    
register_clcmd("say_team /mapa""mapa_actual")
    
    
//Mas code...


Reemplaza eso.. por esto:

--------------------------->

Código PHP:
public plugin_init()
{
    
//Code....

    
register_saycmd("map""mapa_actual");
    
    
register_saycmd("currentmap""mapa_actual");
    
    
register_saycmd("mapa""mapa_actual");
    
    
//Mas code...


Despues al final del plugin, o donde mas te guste... agrega este stock, lo modifique un poquito para tus necesidades pero se lo robe a "#8 SickneSS":

Código PHP:
//By #8 SickneSS 
stock register_saycmd(const command[],const function[]) 
/* Made by me to register the say commands with the / - ! and . */    
    
new temp[64];
    
formatex(temp,63,"say %s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say /%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say !%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say .%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team %s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team /%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team !%s",command);
    
register_clcmd(temp,function);    
    
formatex(temp,63,"say_team .%s",command);
    
register_clcmd(temp,function);


De esta forma, te ahorras todos esos register_clcmd innecesarios. Y si ponen en say ejemplo, "mapa", ".mapa", "!mapa", "/mapa".

Lo toma igual. En resumen el stock hace que no registres 40 clcmd al pedo.

----

Y ahora respecto al plugin, nose si iria en Plugins Nuevos. No es que hagas grandes ediciones en el mismo, como para publicarlo aca, seria mas un Aporte a mi parecer.. es 80% AMXX Dev, 20% vos... pero bueno.. Metal es el que va a decidir eso.

De todas formas se agredece.
Responder
#10
(22/04/2015, 02:52 AM)hud escribió:
Código PHP:
public plugin_init()
{
    
//Code....

    
register_clcmd("say /map""mapa_actual")
    
register_clcmd("say_team /map""mapa_actual")
    
register_clcmd("say map""mapa_actual")
    
register_clcmd("say_team map""mapa_actual")
    
    
register_clcmd("say /currentmap""mapa_actual")
    
register_clcmd("say_team /currentmap""mapa_actual")
    
register_clcmd("say currentmap""mapa_actual")
    
register_clcmd("say_team currentmap""mapa_actual")
    
    
register_clcmd("say /mapa""mapa_actual")
    
register_clcmd("say_team /mapa""mapa_actual")
    
    
//Mas code...


Reemplaza eso.. por esto:

--------------------------->

Código PHP:
public plugin_init()
{
    
//Code....

    
register_saycmd("map""mapa_actual");
    
    
register_saycmd("currentmap""mapa_actual");
    
    
register_saycmd("mapa""mapa_actual");
    
    
//Mas code...


Despues al final del plugin, o donde mas te guste... agrega este stock, lo modifique un poquito para tus necesidades pero se lo robe a "#8 SickneSS":

Código PHP:
//By #8 SickneSS 
stock register_saycmd(const command[],const function[]) 
/* Made by me to register the say commands with the / - ! and . */    
    
new temp[64];
    
formatex(temp,63,"say %s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say /%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say !%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say .%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team %s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team /%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team !%s",command);
    
register_clcmd(temp,function);    
    
formatex(temp,63,"say_team .%s",command);
    
register_clcmd(temp,function);


De esta forma, te ahorras todos esos register_clcmd innecesarios. Y si ponen en say ejemplo, "mapa", ".mapa", "!mapa", "/mapa".

Lo toma igual. En resumen el stock hace que no registres 40 clcmd al pedo.

----

Y ahora respecto al plugin, nose si iria en Plugins Nuevos. No es que hagas grandes ediciones en el mismo, como para publicarlo aca, seria mas un Aporte a mi parecer.. es 80% AMXX Dev, 20% vos... pero bueno.. Metal es el que va a decidir eso.

De todas formas se agredece.

¿ No es mejor hacer algo así ? :

Código PHP:
register_clcmd("say""cmdSay"

Código PHP:
public cmdSay(id)
{
    new 
said[192]
    
read_args(said,192)
    if(
containi(said"mapa") != -1)
        
set_task(0.1,"mapa_actual",id)
    return 
PLUGIN_CONTINUE

STEAM

(25/07/2016, 11:34 PM)Neeeeeeeeeel.- escribió:
(25/07/2016, 11:33 PM)Web Controller escribió: Este mensaje no se va a ver asi que russel te amo siempre me gustaste :$

Solamente voy a restaurar los datos del template de la db que rompi... no te ilusiones.
Responder
#11
(22/04/2015, 07:07 AM)RusselNight escribió: ¿ No es mejor hacer algo así ? :

Código PHP:
register_clcmd("say""cmdSay"

Código PHP:
public cmdSay(id)
{
    new 
said[192]
    
read_args(said,192)
    if(
containi(said"mapa") != -1)
        
set_task(0.1,"mapa_actual",id)
    return 
PLUGIN_CONTINUE


Depende por que en una hookeas cada vez que pongan mapa el say. En la otra lo registras una vez y listo.

Ese stock lo que hace es registrar todos esos clcmd por vos.. sin necesidad de que lo hagas 30 veces arriba, es una "mini optimizacion" y queda mas legible el codigo.

De todas formas no estoy seguro, la diferencia es que en uno hookeas el say. Y en otro solamente haces todos esos register_clcmd pero en el stock. Supongo que habra diferencia ya que Sickness utiliza las 2 en el mix_maker. Pero en el stock usa las flags de admin.

Creo que es mejor usar el stock a mi punto de vista. Pero no estoy seguro.

Mas alla de eso, nose por que usas un task cuando podes llamar a la funcion directamente.
Responder
#12
(22/04/2015, 08:02 AM)hud escribió:
(22/04/2015, 07:07 AM)RusselNight escribió: ¿ No es mejor hacer algo así ? :

Código PHP:
register_clcmd("say""cmdSay"

Código PHP:
public cmdSay(id)
{
    new 
said[192]
    
read_args(said,192)
    if(
containi(said"mapa") != -1)
        
set_task(0.1,"mapa_actual",id)
    return 
PLUGIN_CONTINUE


Depende por que en una hookeas cada vez que pongan mapa el say. En la otra lo registras una vez y listo.

Ese stock lo que hace es registrar todos esos clcmd por vos.. sin necesidad de que lo hagas 30 veces arriba, es una "mini optimizacion" y queda mas legible el codigo.

De todas formas no estoy seguro, la diferencia es que en uno hookeas el say. Y en otro solamente haces todos esos register_clcmd pero en el stock. Supongo que habra diferencia ya que Sickness utiliza las 2 en el mix_maker. Pero en el stock usa las flags de admin.

Creo que es mejor usar el stock a mi punto de vista. Pero no estoy seguro.

Mas alla de eso, nose por que usas un task cuando podes llamar a la funcion directamente.

Hmm, tenes razón. Pero me quedo con el hook del say jaja

En cuanto al stock, ya que Waxinton7 lo puso con barra y sin barra nomas, quedaría mejor así Lengua
Código PHP:
//By #8 SickneSS 
stock register_saycmd(const command[],const function[]) 
/* Made by me to register the say commands with the / - ! and . */    
    
new temp[64];
    
formatex(temp,63,"say %s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say /%s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team %s",command);
    
register_clcmd(temp,function);
    
formatex(temp,63,"say_team /%s",command);
    
register_clcmd(temp,function);


aunque es lo mismo, solo ahorraría 8 lineas Lengua
STEAM

(25/07/2016, 11:34 PM)Neeeeeeeeeel.- escribió:
(25/07/2016, 11:33 PM)Web Controller escribió: Este mensaje no se va a ver asi que russel te amo siempre me gustaste :$

Solamente voy a restaurar los datos del template de la db que rompi... no te ilusiones.
Responder
#13
Me exprese mal.. no hookeas cada vez que pongan mapa el say.

Lo hookeas todo el tiempo.

Sobre lo de las 8 lineas.. esta en cada uno y sus necesidades.
Responder
#14
si lo moveran a aportes seguramente... ya me entere.
no se si lo entendi bien:
Entonces es mejor register_saycmd y el stock porque register_clcmd satura mas el servidor??
Nose veo mas simple register_clcmd pero si es porque se satura el servidor porque muchos plugins usan ese comando lo entenderia.
Responder
#15
(22/04/2015, 01:48 PM)waxinton7 escribió: si lo moveran a aportes seguramente... ya me entere.
no se si lo entendi bien:
Entonces es mejor register_saycmd y el stock porque register_clcmd satura mas el servidor??
Nose veo mas simple register_clcmd pero si es porque se satura el servidor porque muchos plugins usan ese comando lo entenderia.

No saturan el servidor, el stock register_saycmd te ayuda a optimizar todos los register_clcmd que usaste Lengua.
STEAM

(25/07/2016, 11:34 PM)Neeeeeeeeeel.- escribió:
(25/07/2016, 11:33 PM)Web Controller escribió: Este mensaje no se va a ver asi que russel te amo siempre me gustaste :$

Solamente voy a restaurar los datos del template de la db que rompi... no te ilusiones.
Responder
#16
(22/04/2015, 01:48 PM)waxinton7 escribió: si lo moveran a aportes seguramente... ya me entere.
no se si lo entendi bien:
Entonces es mejor register_saycmd y el stock porque register_clcmd satura mas el servidor??
Nose veo mas simple register_clcmd pero si es porque se satura el servidor porque muchos plugins usan ese comando lo entenderia.

No. Crab

Vos registras 30 mensajes diferentes solamente por ponerle una "/" "." o dejarlo sin nada... no?.

Ese stock hace ese trabajo por vos.

Y lo que dijo @RuselNight, es que podes tambien hookear el say directamente, pero me parece que mas conveniente utilizar el stock que te deje, para hacer lo que haces vos en el plugin.
Responder
#17
hud:
No te entiendo 30 mensajes?
yo solo registro 10 (5 x say + 5 x say_team) en solo 10 lineas de codigo sigo sin entender porque la otra forma es mejor, perdon soy noob si me lo puedes explicar mejor gracias.
Drink water my friend!
Responder
#18
(22/04/2015, 02:18 PM)waxinton7 escribió: hud:
No te entiendo 30 mensajes?
yo solo registro 10 (5 x say + 5 x say_team) en solo 10 lineas de codigo sigo sin entender porque la otra forma es mejor, perdon soy noob si me lo puedes explicar mejor gracias.

Es una forma de decir... Roflmao

Que no entendes?.

Con ese stock, te ahorras de hacer register_clcmd por tan solo una "/", o ".".

Te lo explique detalladamente mas arriba.

En vez de.. hacer esto:

Código PHP:
register_clcmd("say /hola""cmdHola");
register_clcmd("say_team /hola""cmdHola");
register_clcmd("say .hola""cmdHola");
register_clcmd("say_team .hola""cmdHola");
register_clcmd("say hola""cmdHola");
register_clcmd("say_team hola""cmdHola");
register_clcmd("say !hola""cmdHola");
register_clcmd("say_team !hola""cmdHola"); 

Haces esto 1 vez:

Código PHP:
register_saycmd("hola""cmdHola"); 

Y ese stock se encarga de hacer todo lo demas. Es una manera mas practica.

Por que si un dia, suponete tenes que hacer 300 register_clcmd, diferentes. Que vas a hacer 600 register_clcmd, por tan solo un punto o una barra?.

Entendes ahora?.

Mas ejemplificado.

Si yo tuviera que hacer un register_clcmd para el say hola, chau y nosvemos. Tendria que hacer esto:

Código PHP:
register_clcmd("say hola""cmdHola");
register_clcmd("say_team hola""cmdHola");
register_clcmd("say /hola""cmdHola");
register_clcmd("say_team /hola""cmdHola");

register_clcmd("say chau""cmdChau");
register_clcmd("say_team chau""cmdChau");
register_clcmd("say /chau""cmdChau");
register_clcmd("say_team /chau""cmdChau");

register_clcmd("say nosvemos""cmdNosVemos");
register_clcmd("say_team nosvemos""cmdNosVemos");
register_clcmd("say /nosvemos""cmdNosVemos");
register_clcmd("say_team /nosvemos""cmdNosVemos"); 

Con ese stock tan solo hago esto:

Código PHP:
register_saycmd("hola""cmdHola");

register_saycmd("chau""cmdChau");

register_saycmd("nosvemos""cmdNosVemos"); 

Y el stock se encarga solo de ponerle el ".", "/", "nada", "!".

Nose mas detallado no te puedo explicar..

Entendes?. Tus 10 register_clcmd. Los transforme en 3.
Responder
#19
Esto tendria que ir en Aportes, la seccion Plugins Nuevos, es para plugins de propia autoria.

Responder
#20
mas facil, en vez de ver tantos register_clcmd() usas el stock y queda mas lindo.
Responder
#21
Muchisimas gracias profe ahora si te entendi!! ers bueno jaja
Drink water my friend!
Responder
#22
No es mala idea pero el código se puede mejorar bastante y siquiera está el sma attacheado al thread.

Debido a la inactividad del autor lo desapruebo, si algún día se quiere actualizar pueden enviarme mp.
[Imagen: paypalqr.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)