Quote:
Originally Posted by Alucard^
Todo.
Eso no esta explicado, son instrucciones nomas... "hace esto, busca esto, reemplaza esto" eso no es un tutorial.
|
Exacto
Ademas el g_armagedon[33] es totalmente inutil, eso es para modos de un solo player para que despues le puedas asignar caracteristicas especiales, cosa que en este mod no se usa.
PHP Code:
// Aca se realizan una serie de condiciones para detectar que no se este en otro modo ni en este mismo modo, tmb que la cantidad de player sea la asignada por la cvar, etc....
else if ((mode == MODE_NONE && (!preventconsecutive || g_lastmode != MODE_ARMAGEDON) && random_num(1, get_pcvar_num(cvar_armagedonchance)) == get_pcvar_num(cvar_armagedon) && floatround((iPlayersnum-2)*get_pcvar_float(cvar_armagedonratio), floatround_ceil) >= 1 && iPlayersnum >= get_pcvar_num(cvar_armagedonminplayers)) || mode == MODE_ARMAGEDON)
{
//Armagedon Mode
g_plagueround = true // Seteamos la variable en true del mode plague para no tener que cambiar todo los codes de las condiciones, por ejemplo el del deathmach
g_armagedonround = true // Seteamos esta variable en true para usarlo despues en if y demas detecciones
// Se le asigna al id un valor entre 1 y la cantidad de jugadores on y que esten vivos
id = fnGetRandomAlive(random_num(1, iPlayersnum))
humanme(id, 1) // Se convierte al user en survivor
// Aca toma si el id es survivor, asigna la variable del id a otro numero cualqiuera entre 1 y la cantida de jugadores
while (g_survivor[id]) id = fnGetRandomAlive(random_num(1, iPlayersnum));
zombieme(id, 0, 1, 0) // Se convierte en nemesis al user
// si no hay suficientes jugadores para dividirlos en 2 eqipos parejos va a ver mas nemesis
iMaxZombies = floatround((iPlayersnum-2)*get_pcvar_float(cvar_plagueratio), floatround_ceil)
// Asigna el valor 0 a la variable
iZombies = 0
// Se realiza un while que su condicion es:
// Si la cantida de zombies es menor a la cantidad maxima de zombies posible de este modo.
while (iZombies < iMaxZombies)
{
// Detecta si el valor de id es menor al valor de g_maxplayers(maxima cantida de players)
if (id < g_maxplayers)
id++ // Si lo es este mismo aumentara en 1
else
id = 1 // Si no lo es se le setea el valor en 1
// Detecta si esta muerto o ya es zombie / survivor
if (!is_user_alive(id) || g_zombie[id] || g_survivor[id])
continue; // Si lo es saltara al proximo bucle
// Reliza un random_num es decir que selecciona entre 0 o 1 (no me acuerdo para que)
if (random_num(0, 1))
{
// Funcion que combierte a un user en nemesis
zombieme(id, 0, 1, 0)
// Hace un postincremento en la variable iZombies
iZombies++
}
}
// Un loop donde id ira aumentando su valor y cada ves que se aga esto sera un id de un jugador distinto
for (id = 1; id <= g_maxplayers; id++)
{
// Detectamos si no estan vivos o ya tienen un player asignado.
if (!is_user_alive(id) || g_zombie[id] || g_survivor[id])
continue
// Remueve el task donde se le asigna un team al player
remove_task(id+TASK_TEAM)
// Comvierte al user en survivor.
humanme(id, 1)
}
/* Llama a la stock PlaySound para reproducir un sonido asiganado en el array
sound_plague
Nota: Pueden agregar otro array con un sonido en particular pero eso no interesa en este tuto.
*/
PlaySound(sound_plague[random_num(0, sizeof sound_plague -1)]);
/* Un hudmsg donde saldra que inicio el modo, para cambiar lo que dice tienen que ir a
amxmodx/data/zombieplague.txt y debajo de donde dice [es] agregan esto
NOTICE_ARMAGEDON = lo que quieren que diga
NOTA: Esto no lo explicare ahora porque no viene al caso despues que otro aga el tuto de agrear diccionario.
*/
set_hudmessage(0, 50, 200, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_MsgSync, "%L", LANG_PLAYER, "NOTICE_ARMAGEDON")
// Ejecuta el forward de incio de ronda del zp (zp_round_start())
ExecuteForward(g_fwRoundStart, g_fwDummyResult, MODE_ARMAGEDON, 0);
}
Mira con ese pedaso de code ya explique mucha mas cosas de la que vos has explicado en este tutorial. Ahora bien pregunto... me cague escribiendo el otro dia para que solo alucard lo lea?? Hiciste exactamente lo que dige yo el otro dia que hacian y que estaba mal.
PD: Claramente no hace falta explicar asi de detallado que ahce cada cosa.. porque algunas no corresponde con este tutorial por ejemplo que hace un while y cosas asi.