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 Ausente
Miembro Héroe


Donador Beta Tester 1k
Mensajes: 3,400
Registro en: Jan 2014
Reputación: 58
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 3.5k 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
Visita su sitio web 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 Ausente
Miembro Héroe


Donador Beta Tester 1k
Mensajes: 3,400
Registro en: Jan 2014
Reputación: 58
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 3.5k 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
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
wicho Sin conexión
Miembro Destacado


Mensajes: 751
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 Ausente
Miembro Héroe


Donador Beta Tester 1k
Mensajes: 3,400
Registro en: Jan 2014
Reputación: 58
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 3.5k 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
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
wicho Sin conexión
Miembro Destacado


Mensajes: 751
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 Ausente
Miembro Héroe


Donador Beta Tester 1k
Mensajes: 3,400
Registro en: Jan 2014
Reputación: 58
Mensaje: #10
RE: Sistema de Quest
Si, se mira bien.

Visita: Mi blog Y algo mas Whatever -- No ayudo por MP || A los 3.5k 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
Visita su sitio web 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