Enviar respuesta 
Sistema de Quest
Autor Mensaje
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 577
Registro en: Dec 2013
Reputación: 12
Mensaje: #1
Sistema de Quest
Hola chicos, les vengo a dejar un sistema de quests/misiones que me paso empty.

Esta como para ZP, pero es muy facil adaptarlo a otro mod.

Mañana dejo todo explicado.

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

#define PLUGIN "Quest Sistem"
#define VERSION "1.0"
#define AUTHOR "Empty.-"

enum _:MISIONES
{
    
MISION_NOMBRE[30],
    
MISION_MATADOS,
    
MISION_NIVEL,
    
MISION_RECOMPENSA,
    
MISION_COMPLETADA,
    
MISION_ACTIVA
};

new 
g_misiones_menu[][MISIONES] = 
{
    { 
"Matar 1 Zombie",   11,     1000},
    { 
"Matar 2 Zombies",  25,     3000}
};

new 
g_level[33];
new 
g_mision[33];
new 
g_zombiekill[33];
new 
g_ammopacks[33];

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Add your code here...
    
register_clcmd"say mision""show_misiones_menu" );    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled" );
}


public 
show_misiones_menuid )
{
    new 
len[612]
    
    new 
handle_shop menu_create"\w______________________________^n\yMisiones:^n\w______________________________^​​n Pagina:" "handle_shop2")
    
    for(new 
0sizeof g_misiones_menui++)
    {
        if(
g_misiones_menu[i][MISION_COMPLETADA])
        
formatex(lencharsmaxlen ), "\d%s (\rCOMPLETADO)"g_misiones_menu[i][MISION_NOMBRE] );
        else if(
g_levelid ] >= g_misiones_menu[i][MISION_NIVEL])
            
formatex(lencharsmaxlen ), "\w%s \rRecompensa: %d Ammo Packs"g_misiones_menu[i][MISION_NOMBRE], g_misiones_menu[i][MISION_RECOMPENSA]);
        else    
            
formatex(lencharsmaxlen ), "\d%s (\rNivel necesario: %d\d)"g_misiones_menu[i][MISION_NOMBRE], g_misiones_menu[i][MISION_NIVEL]);
        
        
menu_additem(handle_shop len);
    }
    
    
menu_setprop(handle_shop MPROP_BACKNAME,"\yAtras");
    
menu_setprop(handle_shop MPROP_NEXTNAME,"\ysiguiente");
    
menu_setprop(handle_shop MPROP_EXITNAME,"\ySalir");
    
menu_display(idhandle_shop 0);    
    
    return 
PLUGIN_HANDLED;





public 
handle_shop2idhandle_shop2item )
{
    if (
item == MENU_EXIT)    
        return;
        
    if( 
g_misiones_menu[item][MISION_COMPLETADA] )
    {
        
client_print(idprint_chat"[QUEST] La mision %s esta completada"g_misiones_menu[item][MISION_NOMBRE]);
        return;
    }
    
    if( 
g_level[id] < g_misiones_menu[item][MISION_NIVEL] )
    {
        
client_print(idprint_chat"[QUEST] Necesitas ser nivel %d para la mision %s"g_misiones_menu[item][MISION_NIVEL], g_misiones_menu[item][MISION_NOMBRE] );
        return;
    }
    
    if( 
g_misiones_menu[item][MISION_ACTIVA] )
    {
        
client_print(idprint_chat"[QUEST] Esta mision ya esta activada!" );
        return;
    }
            
    
g_misiones_menu[item][MISION_ACTIVA] = 1;
    
g_mision[id] = item

    
    client_print
(idprint_chat"[QUEST] Activaste la mision %s"g_misiones_menu[item][MISION_NOMBRE]);
    
}


public 
fw_PlayerKilled(victimattacker)
{
    if( 
victim == attacker )
    return 
HAM_IGNORED;
    
    if( 
g_misiones_menu[g_mision[attacker]][MISION_ACTIVA] )
    {
        
g_zombiekill[attacker]++;
        
check_mision(attacker);

    }
    
    return 
HAM_IGNORED;
}

public 
check_mision(id)
{
    if( 
g_zombiekill[id] >= g_misiones_menu[g_mision[id]][MISION_MATADOS] )
    {
        
g_ammopacks[id] += g_misiones_menu[g_mision[id]][MISION_RECOMPENSA]
        
g_misiones_menu[g_mision[id]][MISION_COMPLETADA] = 1;
        
g_misiones_menu[g_mision[id]][MISION_ACTIVA] = 0;
        
        
client_print(idprint_chat"[QUEST] Completaste la mision %s, Ganaste %d Ammo packs!"g_misiones_menu[g_mision[id]][MISION_NOMBRE], g_misiones_menu[g_mision[id]][MISION_RECOMPENSA]);

        
        
g_mision[id] = 0;
    }


El Dproto es de GAYS!
Doy soporte por MP, si es que tengo ganas.
Whatever
(11/04/2015 03:36 PM)Mario AR. escribió: #pid77607" class="quick_jump"> Qué joda, y tu firma fuera de lugar, DPROTO DE GAYS? erikmav94 es gay y no es dproto...
(Este mensaje fue modificado por última vez en: 04/09/2014 09:13 PM por Evil Spiret.)
04/09/2014 09:12 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
ivan Sin conexión
Miembro Sr.


Mensajes: 628
Registro en: Oct 2013
Reputación: 7
Mensaje: #2
RE: Sistema de Quest
es algo paresido al de im author pero.
buen guia
05/09/2014 04:00 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,553
Registro en: Jan 2014
Reputación: 62
Mensaje: #3
RE: Sistema de Quest
Buena la intención pero ya van dos cosas al pedo que subes Whatever primero lee si hay algo parecido si no lo hay entonces adelante Guiño

Visita: Mi blog Y algo mas Whatever -- No ayudo por MP || A los 4k post me voy Nothingdohere

(03/05/2017 10:56 PM)FreDDy escribió:  Estás muy desinformado sobre como actuamos, aquí es una mafia, nosotros mandamos y punto. Si no te cabe puñalada, tiro, tiro, puñalada.
08/09/2014 02:25 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Evil Spiret Sin conexión
Miembro Sr.


Mensajes: 577
Registro en: Dec 2013
Reputación: 12
Mensaje: #4
RE: Sistema de Quest
Esto si que no lo vi....
Me lo pasaron por que me hacia falta y pense en subirlo ; No tengo problema, borrenlo.
Pero este sistema es mucho mejor que los que estan posteado como "TUT" jaja

Ademas las cosas si estan bien hechas y explicadas , nunca estan al pedo.
(en cuanto pueda lo explico,ahora se me daño mi internet ya hace 1 mes y no vienen a arreglarlo)

Saludos

El Dproto es de GAYS!
Doy soporte por MP, si es que tengo ganas.
Whatever
(11/04/2015 03:36 PM)Mario AR. escribió: #pid77607" class="quick_jump"> Qué joda, y tu firma fuera de lugar, DPROTO DE GAYS? erikmav94 es gay y no es dproto...
(Este mensaje fue modificado por última vez en: 24/09/2014 01:27 AM por Evil Spiret.)
24/09/2014 01:25 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
nich015 Sin conexión
Miembro


Mensajes: 215
Registro en: Feb 2014
Reputación: 2
Mensaje: #5
RE: Sistema de Quest
Cuando Lo Quiero Compilar Aparte No Me Deja

salta este error en esta linia
Código PHP:
new handle_shop menu_create"\w______________________________^n\yMisiones:^n\w______________________________^​??n Pagina:" "handle_shop2"

error compilador =
Código PHP:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c1997-2006 ITB CompuPhaseAMX Mod X Team

Error
Invalid character constant on line 43
Error
Invalid character constant on line 43

2 Errors
.
Could not locate output file C:\Users\Dante\Desktop\Untitled.amx (compile failed). 
24/09/2014 10:47 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,553
Registro en: Jan 2014
Reputación: 62
Mensaje: #6
RE: Sistema de Quest
Código PHP:
new handle_shop menu_create"\w______________________________^n\yMisiones:^n\w______________________________^​​??n Pagina:" "handle_shop2"

Código PHP:
new handle_shop menu_create"\w______________________________^n\yMisiones:^n\w______________________________^​​n Pagina:" "handle_shop2"

Visita: Mi blog Y algo mas Whatever -- No ayudo por MP || A los 4k post me voy Nothingdohere

(03/05/2017 10:56 PM)FreDDy escribió:  Estás muy desinformado sobre como actuamos, aquí es una mafia, nosotros mandamos y punto. Si no te cabe puñalada, tiro, tiro, puñalada.
24/09/2014 10:50 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
wicho Sin conexión
Miembro Destacado


Mensajes: 762
Registro en: Oct 2013
Reputación: 1
Mensaje: #7
RE: Sistema de Quest
Hola, tengo una pregunta si esto no va en la parte interna del zp esta parte:

Código PHP:
g_ammopacks[id] += g_misiones_menu[g_mision[id]][MISION_RECOMPENSA

seria asi no?

Código PHP:
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + g_misiones_menu[g_mision[id]][MISION_RECOMPENSA]) 
02/10/2018 10:04 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,553
Registro en: Jan 2014
Reputación: 62
Mensaje: #8
RE: Sistema de Quest
(02/10/2018 10:04 PM)wicho escribió:  Hola, tengo una pregunta si esto no va en la parte interna del zp esta parte:

Código PHP:
g_ammopacks[id] += g_misiones_menu[g_mision[id]][MISION_RECOMPENSA

seria asi no?

Código PHP:
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + g_misiones_menu[g_mision[id]][MISION_RECOMPENSA]) 

Si, siempre y cuando las natives no se hayan modificado

Visita: Mi blog Y algo mas Whatever -- No ayudo por MP || A los 4k post me voy Nothingdohere

(03/05/2017 10:56 PM)FreDDy escribió:  Estás muy desinformado sobre como actuamos, aquí es una mafia, nosotros mandamos y punto. Si no te cabe puñalada, tiro, tiro, puñalada.
02/10/2018 10:16 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
wicho Sin conexión
Miembro Destacado


Mensajes: 762
Registro en: Oct 2013
Reputación: 1
Mensaje: #9
RE: Sistema de Quest
Gracias tengo otra pregunta si quiero agregar misiones para matar con headshot y cuchillo asi estaria bien?

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

#define PLUGIN "Quest Sistem"
#define VERSION "1.0"
#define AUTHOR "Empty.-"

enum _:MISIONES
{
    
MISION_NOMBRE[30],
    
MISION_MATADOS,
    
MISION_HEADSHOT,
    
MISION_CUCHILLO,
    
MISION_NIVEL,
    
MISION_RECOMPENSA,
    
MISION_COMPLETADA,
    
MISION_ACTIVA
};

new 
g_misiones_menu[][MISIONES] = 
{
    { 
"Matar 1 Zombie"11001000},
    { 
"Matar 2 Zombies"25003000},
    { 
"Matar 3 Zombies con headshot"03073000},
    { 
"Matar 3 Zombies con cuchillo"003103000}
};

new 
g_level[33];
new 
g_mision[33];
new 
g_zombiekill[33];
new 
g_headshotkill[33];
new 
g_knifekill[33];

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Add your code here...
    
register_clcmd("say mision""show_misiones_menu");    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled");
}

public 
show_misiones_menu(id)
{
    new 
len[612]
    
    new 
handle_shop menu_create("\w______________________________^n\yMisiones:^n\w______________________________^​n Pagina:" "handle_shop2")
    
    for(new 
0sizeof g_misiones_menui++)
    {
        if(
g_misiones_menu[i][MISION_COMPLETADA])
        
formatex(lencharsmax(len), "\d%s (\rCOMPLETADO)"g_misiones_menu[i][MISION_NOMBRE]);
        else if(
g_levelid ] >= g_misiones_menu[i][MISION_NIVEL])
            
formatex(lencharsmax(len), "\w%s \rRecompensa: %d Ammo Packs"g_misiones_menu[i][MISION_NOMBRE], g_misiones_menu[i][MISION_RECOMPENSA]);
        else    
            
formatex(lencharsmax(len), "\d%s (\rNivel necesario: %d\d)"g_misiones_menu[i][MISION_NOMBRE], g_misiones_menu[i][MISION_NIVEL]);
        
        
menu_additem(handle_shoplen);
    }
    
    
menu_setprop(handle_shop MPROP_BACKNAME,"\yAtras");
    
menu_setprop(handle_shop MPROP_NEXTNAME,"\ysiguiente");
    
menu_setprop(handle_shop MPROP_EXITNAME,"\ySalir");
    
menu_display(idhandle_shop 0);    
    
    return 
PLUGIN_HANDLED;


public 
handle_shop2idhandle_shop2item)
{
    if (
item == MENU_EXIT)    
        return;
        
    if(
g_misiones_menu[item][MISION_COMPLETADA])
    {
        
client_print(idprint_chat"[QUEST] La mision %s esta completada"g_misiones_menu[item][MISION_NOMBRE]);
        return;
    }
    
    if(
g_level[id] < g_misiones_menu[item][MISION_NIVEL])
    {
        
client_print(idprint_chat"[QUEST] Necesitas ser nivel %d para la mision %s"g_misiones_menu[item][MISION_NIVEL], g_misiones_menu[item][MISION_NOMBRE]);
        return;
    }
    
    if(
g_misiones_menu[item][MISION_ACTIVA])
    {
        
client_print(idprint_chat"[QUEST] Esta mision ya esta activada!");
        return;
    }
            
    
g_misiones_menu[item][MISION_ACTIVA] = 1;
    
g_mision[id] = item
    
    client_print
(idprint_chat"[QUEST] Activaste la mision %s"g_misiones_menu[item][MISION_NOMBRE]);   
}

public 
fw_PlayerKilled(victimattacker)
{
    if(
victim == attacker)
    return 
HAM_IGNORED;
    
    if(
g_misiones_menu[g_mision[attacker]][MISION_ACTIVA])
    {
        
g_zombiekill[attacker]++;
        
check_mision(attacker);
    }
    
    if(
get_pdata_int(victimm_LastHitGroup5) == HIT_HEAD && g_misiones_menu[g_mision[attacker]][MISION_ACTIVA])
    {
        
g_headshotkill[attacker]++;
        
check_mision(attacker);
    }
    
    if(
get_user_weapon(attacker) == CSW_KNIFE && g_misiones_menu[g_mision[attacker]][MISION_ACTIVA])
    {
        
g_knifekill[attacker]++;
        
check_mision(attacker);
    }
    
    return 
HAM_IGNORED;
}

public 
check_mision(id)
{
    if( 
g_zombiekill[id] >= g_misiones_menu[g_mision[id]][MISION_MATADOS] )
    {
        
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + g_misiones_menu[g_mision[id]][MISION_RECOMPENSA])
        
g_misiones_menu[g_mision[id]][MISION_COMPLETADA] = 1;
        
g_misiones_menu[g_mision[id]][MISION_ACTIVA] = 0;
        
        
client_print(idprint_chat"[QUEST] Completaste la mision %s, Ganaste %d Ammo packs!"g_misiones_menu[g_mision[id]][MISION_NOMBRE], g_misiones_menu[g_mision[id]][MISION_RECOMPENSA]);
        
        
g_mision[id] = 0;
    }
    
    if(
g_headshotkill[id] >= g_misiones_menu[g_mision[id]][MISION_HEADSHOT])
    {
        
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + g_misiones_menu[g_mision[id]][MISION_RECOMPENSA])
        
g_misiones_menu[g_mision[id]][MISION_COMPLETADA] = 1
        g_misiones_menu
[g_mision[id]][MISION_ACTIVA] = 0
        
        client_print
(idprint_chat"[QUEST] Completaste la mision %s, Ganaste %d Ammo packs!"g_misiones_menu[g_mision[id]][MISION_NOMBRE], g_misiones_menu[g_mision[id]][MISION_RECOMPENSA])
       
        
g_mision[id] = 0
    
}
    
    if(
g_knifekill[id] >= g_misiones_menu[g_mision[id]][MISION_CUCHILLO])
    {
        
zp_set_user_ammo_packs(idzp_get_user_ammo_packs(id) + g_misiones_menu[g_mision[id]][MISION_RECOMPENSA])
        
g_misiones_menu[g_mision[id]][MISION_COMPLETADA] = 1
        g_misiones_menu
[g_mision[id]][MISION_ACTIVA] = 0
        
        client_print
(idprint_chat"[QUEST] Completaste la mision %s, Ganaste %d Ammo packs!"g_misiones_menu[g_mision[id]][MISION_NOMBRE], g_misiones_menu[g_mision[id]][MISION_RECOMPENSA])
       
        
g_mision[id] = 0
    
}

(Este mensaje fue modificado por última vez en: 04/10/2018 03:30 AM por wicho.)
04/10/2018 03:29 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,553
Registro en: Jan 2014
Reputación: 62
Mensaje: #10
RE: Sistema de Quest
Si, se mira bien.

Visita: Mi blog Y algo mas Whatever -- No ayudo por MP || A los 4k post me voy Nothingdohere

(03/05/2017 10:56 PM)FreDDy escribió:  Estás muy desinformado sobre como actuamos, aquí es una mafia, nosotros mandamos y punto. Si no te cabe puñalada, tiro, tiro, puñalada.
04/10/2018 04:09 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS