PDA

Ver la versión completa : Plugin Automix



Thx
07/01/2011, 02:27
Hola, en referencia a este post:
http://www.clanco.com.ar/foro/threads/58522-amx_match

Me puse a investigar sobre la posibilidad de un plugin que cumpla con lo enunciado:


Por ejemplo , qe todos los players tengan qe escribir .ready para que comience el match

Por ejemplo que como bien dijiste, para que se mande el match los 10 players pongan .ready o algo asi.

En fin con mis basicos conocimientos de Amxx Scripting trate de crear algo que se acerque a lo pedido por eso vengo a postearlo.

Tareas del Plugin:
1) Cada vez que ingresa un jugador, lo guarda en una variable
2a) La condicion es la siguiente: Si cualquier usuario(sea o no admin), tipea amx_ready en consola y hay 10 usuarios, se ejecuta la CFG de cerrado.
2b) La condicion es la siguiente: Si cualquier usuario(sea o no admin), tipea amx_ready en consola y hay menos de 9 usuarios, se ejecuta la CFG de practica.
3) Aunque el Amxx esta prendido durante el match, el plugin funcionara tambien con el amxx apagado.

En fin les dejo el codigo fuente:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "AutoMix"
#define VERSION "1.0"
#define AUTHOR "Thx"

new iPlayers;
new iCerrado = 0;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("say /vale", "cmd_ready", ADMIN_USER, "<target> ")
}


public client_putinserver(id)
{
iPlayers = get_playersnum();
}

public cmd_ready(){
if(iPlayers < 9 && iCerrado == 1){
iCerrado = 0;
server_cmd("exec practica.cfg");
}
if(iPlayers == 10 && iCerrado == 0){
iCerrado = 1;
server_cmd("exec cerrado.cfg");
}
if(iPlayers < 10 && iCerrado == 0){
server_cmd("exec practica.cfg");
}
}
public plugin_cfg()
{
if(is_plugin_loaded("Pause Plugins") > -1)
server_cmd("amx_pausecfg add ^"AutoMix^"");
}


Descarga AMXX: http://www.mediafire.com/?1j1zyajjzs59xq8
Descarga SMA: http://www.mediafire.com/?noa0ae37c45438d

En fin, espero que alguno lo testee en algun servidor aunque sea dedicado, el unico lugar donde pude testearlo fue en un sv_lan 1 con los bots xD.
Tambien me espero el aluvion de criticas(nunca hago algo bien xD) y posibles sugerencias, que espero esten dentro de mi ambito de modificaciones.
Solo eso.
Saludos.

F!rE
07/01/2011, 02:34
esta bastante bueno, hay q ver si alguien le encuentra alguna contra xd

Thx
07/01/2011, 02:36
esta bastante bueno, hay q ver si alguien le encuentra alguna contra xd

Jeje, esperaba que el primer posteador me dijera alguna contra xD, seguro que ni bien lo vea Alu fui jaja.

**kok**
07/01/2011, 02:44
Muy bue naporte!


off: y alu sabe mucho de amx, por ahí se te escapo algo y el te lo acomoda, pero no te tira una "CONTRA" como decis vos, seguro una critica constructica.


kok_fansalu 1

cailpda
07/01/2011, 02:52
este plugin se uso en la fire de brazil si no me equivoco

yudek
07/01/2011, 02:56
este plugin se uso en la fire de brazil si no me equivoco

Segun 4seasons ese era el mix maker.

ON: Ojala que lo pongan, por lo menos lo testeen en 1 sv.

Thx
07/01/2011, 03:49
este plugin se uso en la fire de brazil si no me equivoco

Es un plugin todo integral sino me equivoco, me refiero a integral cuando incluye varias funciones entre si y no solo una.

yudek
07/01/2011, 04:14
Me tome la molestia de entrar a un sv con amx_match y sacar screen de algunos ejemplos de como tendria que ser ;p

Antes de sacar esta screen decia "ponga .ready si esta listo" o algo asi, no lo entendia bien porque estaba en portugues
http://img707.imageshack.us/img707/2857/deinferno0003v.png

Y despues de que puse ".ready"
http://img217.imageshack.us/img217/1885/deinferno0006md.png

Thx
07/01/2011, 04:24
Hola, no puse lo de los jugadores por 2 motivos:

1) Alguien por ahi, habia tirado la idea que a veces siempre esta el despistado que no sabe aceptar el ready o que no lo acepta por x motivo, y como no habria admins, seria un lio para sacarlo / denunciarlo.
2) Porque me representa muchisimo mas dificil hacer como el menu ese y que el ready de cada jugador se compute, osea se que se realiza en un for y eso.

Igual, al margen de que nose si tendria la capacidad de hacer eso, la idea mia no es tan mala dejar en decision de cualquier jugador el inicio del match. Y por otro lado para no COPIAR IDENTICO el plug, la idea mas sencilla seria del .sma del amx_match sacar ese fragmento de codigo y listo.

frenzy
07/01/2011, 12:04
Thx si no te jode podes poner el code en PHP osea ponele las etiquetas
[*/PHP] obveamente sin los * xd

---------- Post added at 12:04 PM ---------- Previous post was at 11:54 AM ----------

Mira yo le cambiaria esto:

[PHP]register_concmd("amx_ready", "cmd_ready", ADMIN_USER, "<target> ")

Por esto:


register_clcmd("say /sale", "cmd_ready", ADMIN_USER, "<target> ") //Con esto pones say /sale y no amx_match
register_clcmd("say_team /sale", "cmd_ready", ADMIN_USER, "<target> ") // Y esto lo mismo pero en say team


Y tambien


server_cmd("exec cerrado.cfg")

Por


server_cmd("exec closed.cfg")

y lo mismo con practica y warmup

lo probaste al plugin?

Alucard^
07/01/2011, 12:59
El codigo basicamente esta bien, las criticas que te puedo dar son estas.

- Hubiese estado mejor que lo postees con
asi se notan los highlights de la sintaxis del lenguaje, cuando te acostumbras es mas comodo leer el codigo asi que todo de un mismo color xd.

- Te tenes que acostumbrar a usar margenes en cada linea, usando tabulaciones (o sea con la tecla TAB), asi el codigo queda mas ordenado y tambien ayuda a que se entienda mejor, hacerlo sin tabulaciones es una mala costumbre y cuanto mas rapido te la saques, mejor =p.

- [PHP]new p_Ready

public client_putinserver(id)
{
new players[32];
new num;
get_players(players, num);
p_Ready = num;
}

Ese codigo se puede reducir a esto:



new iPlayers;

public client_putinserver(id)
{
iPlayers = get_playersnum();
}


De todas formas es al pedo chequearlo en este caso en el client_putinserver(), simplemente chequea la cantidad de players en el codigo del comando amx_ready, es decir que cuando use ese comando chequee la cantidad de players que haya (con la funcion que te mostre en el codigo de arriba) y listo. Y al hacerlo de esa forma no crees la variable iPlayers de forma global, sino dentro del mismo codigo tambien. Si no entendiste lo que quise decir aca avisame y te lo muestro en codigo.

Despues el codigo esta bien, lo unico que yo recomendaria es que en vez de que sea un comando de consola, que sea un comando de chat.

De paso dejo algo que hice hace un tiempo, que si bien no cumple la misma funcion que tu plugin, tiene algo de similitud:


En el foro de alliedmods, en la seccion de request un pibe pidio un plugin, el cual se lo hice. Lo posteo aca por si a alguien le sirve. Es sencillo, y creo que el Mix Maker, AMX Resultado y otros mas, tienen esta funcion, aunque no se si es igual.

El thread donde se pidio el plugin fue este: timed plugin - AlliedModders (http://forums.alliedmods.net/showthread.php?t=108373)

Cvars:

r_enable 0/1 - Para activar y desactivar el plugin (default 1 - activado- )
r_time <segundos> - Para setear el tiempo antes de kickear/banear al player si no puso "/ready" (Default 120 segundos, o sea 2 minutos)
r_punishtype 1/2 - Para kickear o banear al player (default 1 - kick - )
r_bantime <minutos> - Si la cvar anterior esta en 2, o sea.. ban. Con esta cvar podes setear el tiempo del ban (default 120 minutos)

Comandos:

/ready - Para ponerse listo y no ser kickead/baneado
/noready - Lo contrario al /ready =p

Cabe aclarar que el plugin no lo testie, pero supongo que funciona, aparte no tuve ninguna queja del pibe que pidio el plugin, con respecto al funcionamiento del mismo, por lo que asumo que si funciona bien.

Si quieren que le agregue algo mas, pidanlo.


Y el codigo es:


#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "Ready"
#define AUTHOR "Alucard"
#define VERSION "1.0"

new bool:Ready[33], bool:FirstRespawn[33]

new p_PunishType, p_BanTime, p_Enabler , p_Time

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

p_Enabler = register_cvar("r_enable", "1")
p_Time = register_cvar("r_time", "120")
p_PunishType = register_cvar("r_punishtype", "1")
p_BanTime = register_cvar("r_bantime", "120")

register_clcmd("say /ready", "HookCmdReady")
register_clcmd("say /noready", "HookCmdNoReady")

RegisterHam(Ham_Spawn, "player", "HookSpawnPL", 1)
}

public client_putinserver(id)
{
FirstRespawn[id] = true
}

public client_disconnect(id)
{
remove_task(id+1337)
}

public HookSpawnPL(id)
{
if(FirstRespawn[id] && get_pcvar_num(p_Enabler) )
{
client_print(id, print_chat, "You have 2 minutes to put /ready after you get banned/kicked")

set_task(get_pcvar_float(p_Time), "TimeToLeave", id+1337)

FirstRespawn[id] = false
}
}

public HookCmdReady(id)
{
if(!Ready[id] && get_pcvar_num(p_Enabler) )
{
client_print(id, print_chat, "Now, you are ready, you will not get kicked/banned")

Ready[id] = true

remove_task(id+1337)
}
else
{
client_print(id, print_chat, "You are ready, if you want to get unready use /noready")
}

return PLUGIN_HANDLED
}

public HookCmdNoReady(id)
{
if(Ready[id] && get_pcvar_num(p_Enabler) )
{
client_print(id, print_chat, "Now, you are unready, you get kicked/banned after 2 minuts")

Ready[id] = false

set_task(120.0, "TimeToLeave", id+1337)
}
else
{
client_print(id, print_chat, "You are unready, if you want to get ready use /ready")
}

return PLUGIN_HANDLED
}

public TimeToLeave(taskid)
{
new id = taskid-1337

if(!Ready[id] && get_pcvar_num(p_Enabler) )
{
new userid = get_user_userid(id)

switch(get_pcvar_num(p_PunishType) )
{
case 1: server_cmd("kick #%d", userid)
case 2:
{
new ip[32]
get_user_ip(id, ip, 31, 1)

server_cmd("kick #%d; addip %d %s;writeip", userid, get_pcvar_num(p_BanTime), ip)
}
}
}
}

Igual le faltaria la funcion de mandar el mix, que igual es algo simple de agregar ><. En fin, quizas te pueda servir como alguna referencia, no sep.

b0nete
07/01/2011, 13:06
Jugue en un par de servers con esto. No tiene nada de malo y por ahi ayuda, pero tampoco lo veo necesario.

Thx
07/01/2011, 13:47
@4Season!:
Hay le cambie el amx_ready por un say /vale.
Con respecto a las cfgs, nose a quien va dirigido xD, pero creo que cualquiera sabe que cambie el nombre de la cfg del plugin xD.
Lo probe con los bots en un sv_lan 1.

@Alucard:
Con respecto a los consejos de estetica xD, pocas veces lo uso aun en C o VB, tambien soy un desastre con la prolijidad, pero considero que a veces es necesaria o a veces no, si haces un programa en donde necesitas vos solo entender tu codigo no es necesaria la prolijidad, bah si te entendes.
Con respecto al plugin modifique con lo que me agregaste:

new iPlayers;

public client_putinserver(id)
{
iPlayers = get_playersnum();
}

Entendi que no es necesario chequearlo con putinserver ,y la variable iPlayers hacerla global, pero lo deje.
En fin el codigo que me dejas abajo me sirve, nose igualmente si lo tendre que agregar, es un plugin para los servers de CO, nose si lo van a implementar todavia, pero si lo hicieran, quisiera saber que buscarian exactamente.
Saludos.

yudek
07/01/2011, 14:53
Hola, no puse lo de los jugadores por 2 motivos:

1) Alguien por ahi, habia tirado la idea que a veces siempre esta el despistado que no sabe aceptar el ready o que no lo acepta por x motivo, y como no habria admins, seria un lio para sacarlo / denunciarlo.
2) Porque me representa muchisimo mas dificil hacer como el menu ese y que el ready de cada jugador se compute, osea se que se realiza en un for y eso.

Igual, al margen de que nose si tendria la capacidad de hacer eso, la idea mia no es tan mala dejar en decision de cualquier jugador el inicio del match. Y por otro lado para no COPIAR IDENTICO el plug, la idea mas sencilla seria del .sma del amx_match sacar ese fragmento de codigo y listo.

1) Pero seria fundamental al saver quien puso .ready y al croto que no puso asi lo kickea el steam, pero tengo la solucion en el punto 2

2) Voy al foro y les mangueo el plug hahah, despues veo si lo busco

Thx
07/01/2011, 15:49
Pero seria fundamental al saver quien puso .ready y al croto que no puso asi lo kickea el steam, pero tengo la solucion en el punto 2

Para mi no seria fundamental, osea antes de mandar el say /sale corroborarias que no hay ningun afk / spec.


Voy al foro y les mangueo el plug hahah, despues veo si lo busco

Justamente no queria hacer eso xD, igualmente saca el .sma del amx_match y listo.

iruzki.swe
07/01/2011, 16:51
che pero si entra un flaco y entra a tirar amx_ready o el comando para qe tire la cfg a full , qe onda , va a tirar cfg a full y no lo podes parar ni ai , y en el medio del match no se puede mandar?

frenzy
07/01/2011, 17:28
Se le podria poner que mientras este la cfg cerrado no se pueda activar, a demas de que tambien se le podria poner para que todo quede registrado en los logs osea el que tiro 10 veces el /vale, queda la id en los logs lo ve un admin permanente y ni nos vimos

Alucard^
08/01/2011, 02:48
@Alucard:
Con respecto a los consejos de estetica xD, pocas veces lo uso aun en C o VB, tambien soy un desastre con la prolijidad, pero considero que a veces es necesaria o a veces no, si haces un programa en donde necesitas vos solo entender tu codigo no es necesaria la prolijidad, bah si te entendes.
Con respecto al plugin modifique con lo que me agregaste:

new iPlayers;

public client_putinserver(id)
{
iPlayers = get_playersnum();
}

Entendi que no es necesario chequearlo con putinserver ,y la variable iPlayers hacerla global, pero lo deje.
En fin el codigo que me dejas abajo me sirve, nose igualmente si lo tendre que agregar, es un plugin para los servers de CO, nose si lo van a implementar todavia, pero si lo hicieran, quisiera saber que buscarian exactamente.
Saludos.

Lo de la prolijidad si, al hacer algo para vos mientras vos te entiendas esta bien, el tema es que va mas por un tema de costumbre, si vos te acostumbras a hacerlo asi probablemente despues te sea dificil acostumbrarte a hacerlo bien... la idea es evitar ese tipo de manias dentro de la programacion (que son bastante comunes), aparte... por mas raro que seas y te entiendas siendo desprolijo, te aseguro que se entiende mucho mas facil y rapido el codigo al usar bien las tabulaciones xd.

Ahora que lo veo, otra cosa que te puedo criticar es esto:

Vos usaste p_Players antes... los prefijos (en este caso seria "p_") en las variables se usan para saber que tipo de valor se guarda en esa variable, o sea.. para que se usa. En ese caso vos estabas guardando la cantidad de players que habia, por lo tanto es un valor entero... por eso hay que usar "i" que vien de integer (entero)... hay varios prefijos conocidos, aca un par:

p (viene de pcvar, o sea de una cvar pero con la tecnica que se usa ahora llamada pcvar, que es usando una variable, tambien a veces se usar pcvar_ de prefijo).
b (viene de boolean, cuando es una variable de tipo booleano, que devuelve solo 2 valores, true o false, 0 o 1).
sz (cuando es un string, o sea una cadena de texto)
f (cuando es un float, o sea es decimal)

Y hay varias mas, te vas a ir dando cuenta viendo otros plugins... cabe aclarar que se usa tanto con el _ como sin guion bajo, o sea: iPlayers o i_Players... es depende de cada uno eso. Tambien cabe aclarar que los que mencione, se usan en la programacion en general... no solo en Pawn, excepto el "p", que se usa la p pero para otra cosa. A todo esto me acorde que a estos prefijos se le llama Notación hungara, aca hay mas info al respecto: http://es.wikipedia.org/wiki/Notaci%C3%B3n_h%C3%BAngara

Obviamente no es obligatorio, pero ayuda y es una buena costumbre.

Y por que dejaste lo del putinserver? xd esta muy al pedo eso... es un chequeo de mas, una variable global solo se tiene que usar cuando realmente se necesita que sea global, en este caso no... simplemente quedaria:



#include <amxmodx>
#include <amxmisc>

#define PLUGIN "AutoMix"
#define VERSION "1.0"
#define AUTHOR "Thx"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("say /asd", "cmd_ready", ADMIN_USER, "<target> ")
}

public cmd_ready()
{
new iPlayers = get_playersnum();

if(iPlayers == 10)
server_cmd("exec cerrado.cfg");
if(iPlayers < 9 )
server_cmd("exec practica.cfg")
}

public plugin_cfg()
{
if(is_plugin_loaded("Pause Plugins") > -1)
server_cmd("amx_pausecfg add ^"AutoMix^"");
}

hastad
08/01/2011, 04:43
La contra sería que algún player ocupe slot y no ponga ready. A menos que lo voten/kickeen.

Thx
08/01/2011, 11:05
La contra sería que algún player ocupe slot y no ponga ready. A menos que lo voten/kickeen.

Al margen de eso edite el plugin, su uso es casi similar.

1a) Si hay menos de 10 personas y la variable cerrado esta en 0, se manda practica.cfg
1b) Si hay 10 personas y la variable cerrado esta en 0, se manda cerrado.cfg y la variable cerrado pasa a valer 1.
2b) Si hay menos de 9 personas(Mix desvirtuado) y la variable cerrado esta seteada en 1, se manda practica.cfg y pasa a valer 0.

Atento al punto 2b, agregandole la variable cerrado, se logra que en el medio del mix nadie ejecute el cerrado.cfg o practica.cfg para que estos 2 se ejecuten, tendria que haber menos de 9 personas y ya estaria desvirtuado.

Saludos.

frenzy
08/01/2011, 11:13
Yo creo que con 8 o 7 player seria mejor que la variable se pongo en 0 xd

Thx
08/01/2011, 11:19
Yo creo que con 8 o 7 player seria mejor que la variable se pongo en 0 xd

Menos de 9, es 8 o 7 xD.

frenzy
08/01/2011, 12:07
no es 7 por que cuando el plugin vea que hay 8 al toque va a tirar warmup y por hay 2 spec

Thx
08/01/2011, 12:46
El plugin solo no se tira warmup, tiene que haber un usuario que lo lance.
En ocasiones ideales(Con respecto a usuarios) no habria necesidad de crear un plugin no habria bans ni infracciones, pero como estamos lejos de esa ocasion, solo permito tirar el cerrado si se cumplen algunas de estas 2 condiciones.
1) Estas en warmup son 10 y quieren jugar mix
2) Estas en cerrado y son menos de 9 personas.

Osea no habria problemas considero yo, por que? Porque si alguien quisiera desvirtuar el mix habiendo 9 o 10 personas, le seria imposible ejecutar la cfg warmup o closed, para hacerlo tendria que esperar a que hayan 8 personas y ya estaria bastante desvirtuado hasta ese entonces.

jibb.
08/01/2011, 12:51
gracias por el aporte

kinaxz
08/01/2011, 13:48
No creo que este bien, si hay un pelotudo en el sv qe falta qe ponda rdy no se manda nada, si hay alguien mandodose cagadas nadie lo puede sacar, si bien hay abuso de admin free, a los qe se abusan les kv

Thx
08/01/2011, 13:53
Fijense como dije antes, el plugin este es diferente. No necesita que todos pongan ready con que un user sin privilegios mande say /vale, ya inicia.

Brian4U
08/01/2011, 14:59
El amx_resultado, es una onda este no?

Thx
08/01/2011, 15:09
No, nada que ver, a lo mucho podria ser un mini-complemento de ese plug xD.

Brian4U
08/01/2011, 15:58
claro, con que sea poner ready y se mande el juego joya, porque sino se hace bardo con el cambio automatico y eso, por ahi gente no lo sabe y se cambia jejeje.

Igual si estan el admin free, para algo es :D

Nico
08/01/2011, 16:37
No creo que este bien, si hay un pelotudo en el sv qe falta qe ponda rdy no se manda nada, si hay alguien mandodose cagadas nadie lo puede sacar, si bien hay abuso de admin free, a los qe se abusan les kv

si, pero a mi ya me pudre que cada vez que entro a un server un pendejo te hable con tonito soberbio y descansante solamente porque taggea "steam" y se cree dueño del server. Y no lo voy a banear por algo asi, solamente es algo que me jode porque muchos se aprovechan cuando están taggeados steam para "hacerse respetar" e imponerse. Además casi todas las veces que entro al server me obligan a usar algun comando porque steam no hace nada.

Aún asi el admin free tiene sus cosas buenas y está creado para facilitarles la creación de mixs a todos, pero definitivamente con la mentalidad de la gente que juega en los servidores+los quit, no funciona acá.

iruzki.swe
09/01/2011, 02:51
mucha gente de la qe esta comentando no miro para nada el th me parece, dejame de joder men-
z0mekk se gano el premio a la respuesta mas pelotuda de todas.

ON: por lo qe decis parece que no habria ningun problema.. habria qe probarlo qe si tiene alguna falla , por como esta steam hoy en dia saltaria al rato .. , no se por ai probar el plugin por una semanita ponele por ejemplo , y ya va a aparecer si hay algun problema o va a andar goya..

Alucard^
09/01/2011, 20:16
@Thx

Hay algo mal en el codigo... del que agregaste hace poco:



public cmd_ready(){
new Cerrado;
Cerrado = 0;
if(iPlayers < 9 && Cerrado == 1){
Cerrado = 0;
server_cmd("exec practica.cfg");
}
if(iPlayers == 10 && Cerrado == 0){
Cerrado = 1;
server_cmd("exec cerrado.cfg");
}
if(iPlayers < 10 && Cerrado == 0){
server_cmd("exec practica.cfg");
}
}


Antes de decirte que es lo que esta mal, te digo que podes hacer asi para acortar lineas:



new Cerrado = 0;


O sea que le asignas el valor apenas la creas... igual es una boludez, te lo aclaro por las dudas si no lo sabias... en si es lo mismo, solo que acortas lineas.

Ahora, respecto a lo que esta mal de ese codigo es que... fijate, vos creas una variable y le asignas el valor 0 al principio del cmd_ready. Eso quiere decir que SIEMPRE VA A SER 0 la variable. Por ende nunca se va a cumplir la primer condicion:


if(iPlayers < 9 && Cerrado == 1)

Si se cumple la segunda condicion, Cerrado va a estar en 1, sin embargo cuando se vuelva a ejecutar el comando este de ready, Cerrado va a volver a estar en 0, porque vos le estas asignando el valor 0:


Cerrado = 0;

Una solucion seria crear la variable Cerrado globalmente... y listo, ahi si va a variar el valor de la variable. De todas formas no entiendo bien que quisiste hacer con la variable... que es exactamente lo que queres hacer? se me hace que no es necesaria esa variable.

Y como otro dato mas... cuando vos creas una variable, el valor por defecto es 0, por lo tanto no es del todo necesario que le asignes 0 a la variable, AUNQUE TAMPOCO ESTA MAL, a veces para entenderte mejor, ponerle 0 esta bien... no es una mala practica.

Senki
09/01/2011, 20:20
no se le puede agregar que te banee por 30 minutos si quiteas una vez que arranco el mix ?con eso estaria genial...

si realmente te tenes que ir 30 minutos no es nada y si quiteaste por que vas perdiendo te jodes

Thx
09/01/2011, 20:48
O sea que le asignas el valor apenas la creas... igual es una boludez, te lo aclaro por las dudas si no lo sabias... en si es lo mismo, solo que acortas lineas.

Si, lo suelo hacer en otros lenguajes pero como no conosco nada de nada de Pawn me apego a lo poco que se.


Y como otro dato mas... cuando vos creas una variable, el valor por defecto es 0, por lo tanto no es del todo necesario que le asignes 0 a la variable, AUNQUE TAMPOCO ESTA MAL, a veces para entenderte mejor, ponerle 0 esta bien... no es una mala practica.

Acostumbro a asignar 0, porque me paso que a veces por x motivo, arranca en cualquier valor.


Una solucion seria crear la variable Cerrado globalmente... y listo, ahi si va a variar el valor de la variable. De todas formas no entiendo bien que quisiste hacer con la variable... que es exactamente lo que queres hacer? se me hace que no es necesaria esa variable.

Mira, lo que quiero hacer tiene una logica rebuscada pero logica al fin y al cabo. Siempre basandonos en servers CO Steam; si un usuario manda /vale y hay 10 personas por logica se ejecuta la CFG closed o cerrado y sale, pero como siempre esta el usuario que busca desvirtuar, cree el if(iPlayers < 9 && iCerrado == 1) te preguntaras para que? Simple, cuando el cerrado esta en curso la variable iCerrado es 1, si algun "Vivo" quisiera mandar /vale para simplemente restartear no podria debido a que para que ocurra eso deberia haber menos de 9 personas, si hay menos de 9 personas = Mix desvirtuado; entonces si hay 9 o 10 personas = Mix Normal.

Ojala me hayas entendido.


no se le puede agregar que te banee por 30 minutos si quiteas una vez que arranco el mix ?con eso estaria genial...

Agregar se puede agregar cualquier cosa, el tema es que tendrian que ponerse de acuerdo.

Saludos

iruzki.swe
10/01/2011, 16:02
al final se va a poner a prueba esto o va a qedar en nada??