Misiones
#1
Les vengo a aportar este sistemas de misiones que tenía. Puede ser adaptado a cualquier modo de juego.

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fakemeta>

#pragma semicolon 1

#define SZPREFIX "!g[AMXX Mision]"
#define SHOWHUD_CLASSNAME "classname_showhud"
#define is_user_valid_connected(%1) (1 <= %1 <= g_maxplayers && g_connected[%1])
#define is_user_valid_alive(%1) (1 <= %1 <= g_maxplayers && g_alive[%1])

enum _:MISIONS_STRUCT
{
    
MISION_PLAYERS,
    
MISION_NAME[32],
    
MISION_DESCRIPTION[100],
    
MISION_ROUNDS,
    
MISION_TYPE,
    
MISION_CHECK,
    
MISION_LIMIT,
    
MISION_REWARD
};

enum _:MISION_INT
{
    
PLOMO_POR_1,
    
PLOMO_POR_5,
    
PLOMO_POR_10,
    
PLOMO_POR_20,
    
HEAD_X5,
    
HEAD_X10,
    
SIN_CASCO,
    
ACUCHILLANDO,
    
FILO_X5,
    
FILO_A_LA_DECIMA_POTENCIA,
    
FILO_AL_VEINTE_VEINTE,
    
DANIO_PASIVO,
    
DANIO_PROLONGADO,
    
DANIO_EXTENDIDO,
    
DANIO_MASIVO,
    
DANIO_ULTRA,
    
DANIO_COLATERAL,
    
DANIO_DEVASTADOR
};

enum _:MISION_STATS
{
    
MISION_KILLED,
    
MISION_KILLED_HS_PER_ROUND,
    
MISION_KILLED_PER_KNIFE,
    
MISION_DAMAGE_PER_ROUND
};

enum _:MISION_CLASS
{
    
MISION_MONEY 0,
    
MISION_HEALTH,
    
MISION_AP
};

enum _:MISION_TYPE_CHECK
{
    
TYPE_KILL 0,
    
TYPE_KILL_HS,
    
TYPE_KNIFE,
    
TYPE_DAMAGE
};

new const 
MISIONS_CLASS[][] =
{
    
"plata",
    
"vida",
    
"chaleco"
};

new const 
MISIONS[][MISIONS_STRUCT] =
{
    
/*
        * Jugadores de la misión
        * Nombre de la misión 
        * Rondas de la misión
        * Tipo de misión, 
        * Tipo de frag de la misión 
        * Frags de la misión
        * Recompensa de la misión
    */
    
    
10"Plomo por 1""Mata a 1 jugador en 1 ronda"1MISION_MONEYTYPE_KILL1250 }, 
    { 
12"Plomo por 5""Mata a 5 jugadores en 3 rondas"3MISION_MONEYTYPE_KILL5500 }, 
    { 
12"Plomo por 10""Mata a 10 jugadores en 3 rondas"3MISION_MONEYTYPE_KILL101000 },
    { 
14"Plomo por 20""Mata a 20 jugadores 5 rondas"5MISION_MONEYTYPE_KILL202500 },
    { 
12"Head x5""Mata a 5 jugadores con disparos en la cabeza en 3 ronda"1MISION_MONEYTYPE_KILL_HS525 },
    { 
12"Head x10""Mata a 10 jugadores con disparos en la cabeza en 5 ronda"3MISION_MONEYTYPE_KILL_HS1030 },
    { 
14"Sin casco""Mata a 20 jugadores con disparos en la cabeza en 3 ronda"5MISION_MONEYTYPE_KILL_HS2040 },
    { 
12"Acuchillando""Mata a 3 jugadores con cuchillo en 1 ronda"1MISION_HEALTHTYPE_KNIFE325 },
    { 
14"Filo x5""Mata a 5 jugadores con cuchillo en 2 ronda"2MISION_HEALTHTYPE_KNIFE535 },
    { 
12"Filo a la décima potencia""Mata a 10 jugadores con cuchillo en 5 ronda"5MISION_HEALTHTYPE_KNIFE1045 },
    { 
14"Filo al 20/20""Mata a 20 jugadores con cuchillo en 10 ronda"10MISION_HEALTHTYPE_KNIFE20100 },
    { 
14"Daño pasivo""Realiza 250 de daño en 1 ronda"1MISION_APTYPE_DAMAGE25010 },
    { 
12"Daño prolongado""Realiza 500 de daño en 1 ronda"1MISION_APTYPE_DAMAGE50015 },
    { 
12"Daño extendido""Realiza 1.000 de daño en 2 rondas"2MISION_APTYPE_DAMAGE100020 },
    { 
10"Daño masivo""Realiza 2.000 de daño en 3 rondas"3MISION_APTYPE_DAMAGE200025 },
    { 
10"Daño ultra""Realiza 3.500 de daño en 6 rondas"4MISION_APTYPE_DAMAGE350030 },
    { 
10"Daño colateral""Realiza 5.000 de daño en 6 rondas"6MISION_APTYPE_DAMAGE500035 },
    { 
10"Daño devastador""Realiza 10.000 de daño en 10 rondas"10MISION_APTYPE_DAMAGE1000050 }
};

new 
g_mision_started[33];
new 
g_mision[33][MISION_INT];
new 
g_mision_stats[33][MISION_STATS];
new 
g_mision_select[33];
new 
g_mision_round[33];
new 
g_menu_mision_int[33];
new 
g_connected[33];
new 
g_alive[33];

new 
g_maxplayers;
new 
g_syncobj;

public 
plugin_init()
{
    
register_plugin("Misiones""1.0""Cristian'");
    
    
register_clcmd("say /mision""clcmd_show_mision");
    
    
register_event("HLTV""event_round_start""a""1=0""2=0");
    
    
register_menu("Show Menu Misions Description", (1<<0)|(1<<9), "handled_show_menu_mision_description");
    
register_menu("Show Mision Struct", (1<<0)|(1<<9), "handled_clcmd_show_mision_struct");
    
register_menu("Show Cancel Mision", (1<<0)|(1<<1), "handled_show_menu_cancel_mision");
    
    
RegisterHam(Ham_Spawn"player""ham_PlayerSpawn_Post"true);
    
RegisterHam(Ham_Killed"player""ham_PlayerKilled");
    
RegisterHam(Ham_TakeDamage"player""ham_TakeDamage");
    
    
g_maxplayers get_maxplayers();
    
g_syncobj CreateHudSyncObj();
    
    new 
showhud;
    
showhud create_entity("info_target");
    
    if (
is_valid_ent(showhud))
    {
        
entity_set_string(showhudEV_SZ_classnameSHOWHUD_CLASSNAME);
        
entity_set_float(showhudEV_FL_nextthinkget_gametime() + 1.0);
        
        
register_think(SHOWHUD_CLASSNAME"ent_showHUD");
    }    
    
    
set_task(30.0"print_mision");
}

public 
print_mision()
{
    
chat_color(0"%s !yEscribí !g/mision!y para comenzar una misión."SZPREFIX);
    
set_task(random_float(60.0180.0), "print_mision");
}

public 
client_putinserver(id)
{
    
g_connected[id] = 1;
}

public 
client_disconnect(id)
{
    
g_connected[id] = 0;
    
g_alive[id] = 0;
}

public 
event_round_start()
{
    static 
id;
    
    for (
id 1id <= g_maxplayersid++)
    {
        if (!
g_connected[id])
            continue;
        
        if (
g_mision_started[id])
        {
            
g_mision_round[id]++;
            
            if (
g_mision_round[id] == MISIONS[g_mision_select[id]][MISION_ROUNDS])
            {
                
chat_color(id"%s !yLa misión !g%s!y fue finalizada."SZPREFIXMISIONS[g_mision_select[id]][MISION_NAME]);
                
reset_check_mision(id);
            }
        }
    }
}

public 
ent_showHUD(ent)
{
    static 
iduser;
    
    for (
id 1id <= g_maxplayersid++)
    {
        if (!
g_connected[id])
            continue;
        
        
user id;
        
        if (
id == user)
        {
            static 
mision[200];
            
            if (
g_mision_started[id])
            {
                static 
text[58];
                
                switch(
MISIONS[g_mision_select[id]][MISION_CHECK])
                {
                    case 
TYPE_KILLformat(textcharsmax(text), "Asesinatos: %d / %d"g_mision_stats[id][MISION_KILLED], MISIONS[g_mision_select[id]][MISION_LIMIT]);
                    case 
TYPE_KILL_HSformat(textcharsmax(text), "Asesinados con headshot: %d / %d"g_mision_stats[id][MISION_KILLED_HS_PER_ROUND], MISIONS[g_mision_select[id]][MISION_LIMIT]);
                    case 
TYPE_KNIFEformat(textcharsmax(text), "Asesinados con cuhillo: %d / %d"g_mision_stats[id][MISION_KILLED_PER_KNIFE], MISIONS[g_mision_select[id]][MISION_LIMIT]);
                    case 
TYPE_DAMAGE
                    {
                        static 
dmg_mision[15], dmg_limit[15];
                        
                        
addpoint(g_mision_stats[id][MISION_DAMAGE_PER_ROUND], dmg_mision14);
                        
addpoint(MISIONS[g_mision_select[id]][MISION_LIMIT], dmg_limit14);
                        
                        
                        
format(textcharsmax(text), "Daño: %s / %s"dmg_misiondmg_limit);
                    }
                }
                
                
format(misioncharsmax(mision), "Misión: %s^nRondas: %d / %d^nRecompensa: +%d %s^n%s"MISIONS[g_mision_select[id]][MISION_NAME], g_mision_round[id], MISIONS[g_mision_select[id]][MISION_ROUNDS], MISIONS[g_mision_select[id]][MISION_REWARD], MISIONS_CLASS[g_menu_mision_int[id]], text);
                
            }
            
            
set_hudmessage(025500.080.0816.01.10.00.0, -1);
            
ShowSyncHudMsg(idg_syncobj"%s", (g_mision_started[id]) ? mision "No se seleccionó ninguna misión");
        }
    }
    
    
entity_set_float(entEV_FL_nextthinkget_gametime() + 1.0);
}

public 
ham_PlayerSpawn_Post(id)
{
    if (!
is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR || cs_get_user_team(id) == CS_TEAM_UNASSIGNED)
        return 
HAM_IGNORED;
    
    
g_alive[id] = _:is_user_alive(id);
    return 
HAM_IGNORED;
}

public 
ham_PlayerKilled(victimattackershouldgib)
{
    if (
victim == attacker || !is_user_valid_connected(attacker))
        return;
    
    
g_alive[victim] = 0;
    
    if (
g_mision_started[attacker])
    {
        switch(
g_mision_select[attacker])
        {
            case 
PLOMO_POR_1: { g_mision_stats[attacker][MISION_KILLED]++; if (g_mision_stats[attacker][MISION_KILLED] == 1set_mision(attackerPLOMO_POR_1); }
            case 
PLOMO_POR_5: { g_mision_stats[attacker][MISION_KILLED]++; if (g_mision_stats[attacker][MISION_KILLED] == 5set_mision(attackerPLOMO_POR_5); }
            case 
PLOMO_POR_10: { g_mision_stats[attacker][MISION_KILLED]++; if (g_mision_stats[attacker][MISION_KILLED] == 10set_mision(attackerPLOMO_POR_10); }
            case 
PLOMO_POR_20: { g_mision_stats[attacker][MISION_KILLED]++; if (g_mision_stats[attacker][MISION_KILLED] == 20set_mision(attackerPLOMO_POR_20); }
            case 
HEAD_X5: { if (get_pdata_int(victim75) == HIT_HEAD) { g_mision_stats[attacker][MISION_KILLED_HS_PER_ROUND]++; if (g_mision_stats[attacker][MISION_KILLED_HS_PER_ROUND] == 5set_mision(attackerHEAD_X5); }}
            case 
HEAD_X10: { if (get_pdata_int(victim75) == HIT_HEAD) { g_mision_stats[attacker][MISION_KILLED_HS_PER_ROUND]++; if (g_mision_stats[attacker][MISION_KILLED_HS_PER_ROUND] == 10set_mision(attackerHEAD_X10); }}
            case 
SIN_CASCO: { if (get_pdata_int(victim75) == HIT_HEAD) { g_mision_stats[attacker][MISION_KILLED_HS_PER_ROUND]++; if (g_mision_stats[attacker][MISION_KILLED_HS_PER_ROUND] == 20set_mision(attackerSIN_CASCO); }}
            case 
ACUCHILLANDO: { if (get_user_weapon(attacker) == CSW_KNIFE) { g_mision_stats[attacker][MISION_KILLED_PER_KNIFE]++; if (g_mision_stats[attacker][MISION_KILLED_PER_KNIFE] == 3set_mision(attackerACUCHILLANDO); }}
            case 
FILO_X5: { if (get_user_weapon(attacker) == CSW_KNIFE) { g_mision_stats[attacker][MISION_KILLED_PER_KNIFE]++; if (g_mision_stats[attacker][MISION_KILLED_PER_KNIFE] == 5set_mision(attackerFILO_X5); }}
            case 
FILO_A_LA_DECIMA_POTENCIA: { if (get_user_weapon(attacker) == CSW_KNIFE) { g_mision_stats[attacker][MISION_KILLED_PER_KNIFE]++; if (g_mision_stats[attacker][MISION_KILLED_PER_KNIFE] == 10set_mision(attackerFILO_A_LA_DECIMA_POTENCIA); }}
            case 
FILO_AL_VEINTE_VEINTE: { if (get_user_weapon(attacker) == CSW_KNIFE) { g_mision_stats[attacker][MISION_KILLED_PER_KNIFE]++; if (g_mision_stats[attacker][MISION_KILLED_PER_KNIFE] == 20set_mision(attackerFILO_AL_VEINTE_VEINTE); }}
        }
    }
}

public 
ham_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if (
victim == attacker || !is_user_valid_connected(attacker))
        return 
HAM_IGNORED;
    
    if (
g_mision_started[attacker] && MISIONS[g_mision_select[attacker]][MISION_CHECK] == TYPE_DAMAGE)
    {
        
g_mision_stats[attacker][MISION_DAMAGE_PER_ROUND] += floatround(damage);
        
        static 
i;
        
        for (
0sizeof(MISIONS); i++)
        {
            if (
MISIONS[g_mision_select[attacker]][MISION_CHECK] != TYPE_DAMAGE)
                continue;
            
            if (
g_mision_select[attacker] >= MISIONS[g_mision_select[attacker]][MISION_REWARD])
                
set_mision(attackerg_mision_select[attacker]);
        }
    }
    
    return 
HAM_IGNORED;
}

public 
clcmd_show_mision(id)
{
    if (
g_mision_started[id])
    {
        static 
menu[256];
        
formatex(menucharsmax(menu), "\yMisiones^n^n\yMisión: \w%s^n\yRondas: \w%d \y/ \w%d^n\yRecompensa: \w+%d %s^n^n\r1. \wCancelar la misión^n\r0. \wVolver"
        
MISIONS[g_mision_select[id]][MISION_NAME], g_mision_round[id], MISIONS[g_mision_select[id]][MISION_ROUNDS], MISIONS[g_mision_select[id]][MISION_REWARD], MISIONS_CLASS[g_menu_mision_int[id]]);
    
        
show_menu(id, (1<<0)|(1<<9), menu, -1"Show Mision Struct");
        return 
PLUGIN_HANDLED;
    }

    static 
position[3], menuitext[32];
    
menu menu_create("\yMisiones""handled_clcmd_show_misions");
    
    for (
0sizeof(MISIONS_CLASS); i++)
    {
        
format(textcharsmax(text), "Misión por %s"MISIONS_CLASS[i]);
        
num_to_str(iposition2);
        
menu_additem(menutextposition);
    }
    
    
menu_setprop(menuMPROP_BACKNAME"Atrás");
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente");
    
menu_setprop(menuMPROP_EXITNAME"Volver");
    
    
menu_display(idmenu);
    
    return 
PLUGIN_HANDLED;
}

public 
handled_clcmd_show_mision_struct(idkey)
{
    if (!
key)
        
show_menu_cancel_mision(id);
    
    return 
PLUGIN_HANDLED;
}

show_menu_cancel_mision(id)
{
    static 
menu[128];
    
formatex(menucharsmax(menu), "\y¿Estás seguro de cancelar la misión \w%s\y?^n^n\r1. \wSí, cancelar la misión^n\r2. \wNo^n"MISIONS[g_mision_select[id]][MISION_NAME]);
    
    
show_menu(id, (1<<0)|(1<<1), menu, -1"Show Cancel Mision");
}

public 
handled_show_menu_cancel_mision(idkey)
{
    if (!
key)
    {
        static 
name[32];
        
get_user_name(idnamecharsmax(name));
        
        
chat_color(0"%s !g%s!y canceló la misión !g%s!y."SZPREFIXnameMISIONS[g_mision_select[id]][MISION_NAME]);
        
reset_check_mision(id);
    }
    else 
        return 
PLUGIN_HANDLED;
    
    return 
PLUGIN_HANDLED;
}

public 
handled_clcmd_show_misions(idmenuitem)
{
    if (!
g_connected[id])
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    static 
buffer[3], dummyitemid;
    
menu_item_getinfo(menuitemdummybuffercharsmax(buffer), __dummy);
    
    
itemid str_to_num(buffer);
    
menu_destroy(menu);
    
    
show_menu_misions(iditemid);
    return 
PLUGIN_HANDLED;
}

show_menu_misions(idiclass)
{
    static 
text[128], position[4], menui;
    
    
formatex(textcharsmax(text), "\yMisión por \w%s"MISIONS_CLASS[iclass]);
    
menu menu_create(text"handled_show_menu_misions");
    
    for (
0sizeof(MISIONS); i++)
    {
        if (
iclass != MISIONS[i][MISION_TYPE])
            continue;
        
        
num_to_str(iposition3);
        
formatex(textcharsmax(text), "%s%s %s", (!g_mision[id][i]) ? "\w" "\d"MISIONS[i][MISION_NAME], (!g_mision[id][i]) ? "" "\y[COMPLETADA]");
        
menu_additem(menutextposition);
    }
    
    
menu_setprop(menuMPROP_BACKNAME"Atrás");
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente");
    
menu_setprop(menuMPROP_EXITNAME"Volver");
    
    
g_menu_mision_int[id] = iclass;
    
    
menu_display(idmenu);
}

public 
handled_show_menu_misions(idmenuitem)
{
    if (!
g_connected[id])
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        
clcmd_show_mision(id);
        return 
PLUGIN_HANDLED;
    }
    
    static 
buffer[4], dummyitemid;
    
    
menu_item_getinfo(menuitemdummybuffercharsmax(buffer), __dummy);
    
menu_destroy(menu);
    
    
itemid str_to_num(buffer);
    
    
show_menu_misions_description(iditemid);
    return 
PLUGIN_HANDLED;
}

public 
show_menu_misions_description(idmision
{
    static 
users[128];
    static 
menu[300];
    static 
len;
    
len 0;
    
    if (
MISIONS[mision][MISION_PLAYERS])
        
formatex(users51"\yRequisitos: \w+%d jugadores conectados^n"MISIONS[mision][MISION_PLAYERS]);
    
    
len += formatex(menu[len], charsmax(menu) - len"%s%s^n^n^n\yDescripción:^n\w%s^n%s^n\yRondas: \w%d^n\yRecompensa: \w+%d %s^n^n^n\r1. \wComenzar misión^n\r0. \wVolver"
    (!
g_mision[id][mision]) ? "\d" "\y"MISIONS[mision][MISION_NAME], MISIONS[mision][MISION_DESCRIPTION],
    (!
MISIONS[mision][MISION_PLAYERS]) ? "" usersMISIONS[mision][MISION_ROUNDS], MISIONS[mision][MISION_REWARD], MISIONS_CLASS[g_menu_mision_int[id]]);
    
    
show_menu(id, (1<<0)|(1<<9), menu, -1"Show Menu Misions Description");
    
    
g_mision_select[id] = mision;
    return 
PLUGIN_HANDLED;
}

public 
handled_show_menu_mision_description(idkey)
{
    if (!
g_connected[id])
        return 
PLUGIN_HANDLED;
    
    if (
key == 0)
    {
        static 
mision;
        
mision g_mision_select[id];
    
        if (
g_mision[id][mision])
        {
            
chat_color(id"%s !yEsta misión ya está completada."SZPREFIX);
            
show_menu_misions_description(idmision);
            return 
PLUGIN_HANDLED;
        }
        
        if (
get_playing() < MISIONS[mision][MISION_PLAYERS])
        {
            
chat_color(id"%s !yNo hay suficientes jugadores para comenzar esta misión."SZPREFIX);
            
show_menu_misions_description(idmision);
            return 
PLUGIN_HANDLED;
        }
        
        static 
name[32];
        
get_user_name(idnamecharsmax(name));
        
        
chat_color(0"%s !g%s!y comenzó la misión !g%s!y."SZPREFIXnameMISIONS[mision][MISION_NAME]);
        
chat_color(id"%s !yComenzaste la misión !g%s!y, Tenés !g%d ronda%s!y para completarla."SZPREFIXMISIONS[mision][MISION_NAME], MISIONS[mision][MISION_ROUNDS], (MISIONS[mision][MISION_ROUNDS] == 1) ? "" "s");
        
g_mision_started[id] = 1;
    }
    else if (
key == 9)
        
show_menu_misions(idg_menu_mision_int[id]);
    
    return 
PLUGIN_HANDLED;
}

set_mision(idmisionusers 1)
{
    if (
g_mision[id][mision])
        return;
    
    if (
MISIONS[mision][MISION_PLAYERS] && users)
    {
        if (
get_playing() < MISIONS[mision][MISION_PLAYERS])
            return;
    }
    
    static 
name[32];
    
get_user_name(idnamecharsmax(name));
    
    
g_mision[id][mision] = 1;
    
    switch(
g_menu_mision_int[id])
    {
        case 
MISION_MONEYcs_set_user_money(idcs_get_user_money(id) + MISIONS[mision][MISION_REWARD]);
        case 
MISION_HEALTHentity_set_float(idEV_FL_healthentity_get_float(idEV_FL_health) + MISIONS[mision][MISION_REWARD]);
        case 
MISION_APentity_set_float(idEV_FL_armorvalueentity_get_float(idEV_FL_armorvalue) + MISIONS[mision][MISION_REWARD]);
    }
    
    
chat_color(0"%s !t%s!y completó la misión !g%s!y !t(+%d %s)."SZPREFIXnameMISIONS[mision][MISION_NAME], MISIONS[mision][MISION_REWARD], MISIONS_CLASS[g_menu_mision_int[id]]);
    
reset_check_mision(id);
}

reset_check_mision(id)
{
    
g_mision_round[id] = 0;
    
g_mision_select[id] = 0;
    
g_mision_started[id] = 0;
    
    static 
i;
    
    for (
0MISION_STATSi++) 
        
g_mision_stats[id][i] = 0;
}

get_playing()
{
    static 
playingidCsTeams:team;    
    
playing 0;
    
    for (
id 1id <= g_maxplayersid++)
    {
        if (
g_connected[id])
        {
            
team cs_get_user_team(id);
            
            if (
team != CS_TEAM_SPECTATOR && team != CS_TEAM_UNASSIGNED)
                
playing++;
        }
    }
    
    return 
playing;
}

stock addpoint(const numbersOutPut[], const len)
{
    new 
sTemp[15];
    new 
iOutputPos;
    new 
iNumPos;
    new 
iNumLen num_to_str(numbersTemp14);
    
    while((
iNumPos iNumLen) && (iOutputPos len)) 
    {
        
sOutPut[iOutputPos++] = sTemp[iNumPos++];
        
        if ((
iNumLen iNumPos) && !((iNumLen iNumPos) % 3))
            
sOutPut[iOutputPos++] = '.';
    }
    
    
sOutPut[iOutputPos] = EOS;
    
    return 
iOutputPos;
}

stock chat_color(id, const input[], any:...)
{
    static 
message[191];
    
vformat(message190input3);
    
    
replace_all(message190"!g""^4");
    
replace_all(message190"!t""^3");
    
replace_all(message190"!y""^1");
    
    
message_begin((id) ? MSG_ONE_UNRELIABLE MSG_BROADCASTget_user_msgid("SayText"), .player id);
    
write_byte((id) ? id 33);
    
write_string(message);
    
message_end();



Archivos adjuntos
.sma   Descargar AMXX / mision_system.sma (Tamaño: 18.03 KB / Descargas: 128)
Responder
#2
Lindo aporte, se agradece !
Responder
#3
Me ahorras trabajo, te lo agradezco.
(13/08/2018, 07:59 PM)KrR10VnZl escribió: Usted tiene un retraso de otro mundo, pon de tu parte coño, como es posible que preguntes cual código? muchacho mongólico si dice código, él se refiere al SMA del CTF, dios mio y si no te gusta que te digan que tienes un retraso magistral, astral del otro mundo pon de tú parte y no hagas preguntas tontas.
Responder
#4
Buena aporte!, felicidades ! Gran sonrisa
Responder
#5
(21/06/2018, 09:01 PM)Chema escribió: Lindo aporte, se agradece !

Responder
#6
Rainbow Buen aporte, gracias a esto e podido mejorar un poco el ZTH y el CTF.


(21/06/2018, 09:26 PM)Yoshi Saw escribió: Me ahorras trabajo, te lo agradezco.


(21/06/2018, 09:01 PM)Chema escribió: Lindo aporte, se agradece !
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)