[ZP][TUT] Sistema de Party
#1
Hola , encontre un sistema de party en mi PC.
Decidi provarlo en mi zp y me gusto , solo que no andaba.
Lo arregle,lo adapte y ahora lo vengo a dejar aca.

Caracteristicas ;
-Anda en ZP 4.2 , no se si anda en 4.3
-No se de quien es
-Este party lo tenia un ZP llamado Zombie Rampage.(ya es bastante viejo y seguro muchos no lo junan)(creo que este zp lo iso L//)

Empezamos;

//Debajo de los includes colocamos
Código PHP:
#define IsPlayer(%1)            ( 1 <= %1 <= g_iMaxPlayers )

const g_iMaxGroups 2;

new 
g_iMaxPlayers;

new 
g_iPlayerGroups33 ][ g_iMaxGroups ];
new 
g_iGroupIndex = -1;

new 
Is_User_in_Party[33];
new 
FriendName[33];
new 
PlayerInvitations[33];
new 
InvitatorName[33]

const 
KEYSMENU = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9

// En public plugin_init() colocamos
Código PHP:
register_plugin"Sistema de Party""3.3""Author : NO SE" )
    
    
register_menu"Menu De Party"KEYSMENU"HandlePartyMenu" )
    
register_menu"Invitaciones"KEYSMENU"HandleInvitations" )
    
    
register_clcmd"say /party""ShowPartyMenu" )
    
    
g_iMaxPlayers get_maxplayers()


// En public client_putinserver( id ) , debajo de { colocamos
Código PHP:
Is_User_in_Party[id] = 0
    PlayerInvitations
[id] = 0


// y por ultimo colocamos esto al final del ZP
Código PHP:
public ShowPartyMenuid )
{
    static 
Menu[250], iLen
    iLen 
0
    
    iLen 
+= formatex(Menu[iLen], sizeof Menu iLen"\yMenu de party^n^n")
    
    
iLen += formatex(Menu[iLen], sizeof Menu iLen"\w-------------------------^n")
    
    if(
Is_User_in_Party[id])
    {
        new 
Name[33]
        
get_user_name(idNamecharsmax(Name))
        
        
iLen += formatex(Menu[iLen], sizeof Menu iLen"\r - \y%s & %s^n"NameFriendName[id])
    }
    else
    {
        
iLen += formatex(Menu[iLen], sizeof Menu iLen"\r - \dNo estas en party^n")
    }
    
    
iLen += formatex(Menu[iLen], sizeof Menu iLen"\w-------------------------^n^n")
    
    
iLen += formatex(Menu[iLen], sizeof Menu iLen"\r5. \w%s^n"Is_User_in_Party[id] ?  "Salir del PARTY" "Invitar" )
    
    
iLen += formatex(Menu[iLen], sizeof Menu iLen"\r6. \w%s ^n^n^n"PlayerInvitations[id]=="Invitacion:" "No tienes ninguna invitacion" )
    
    
iLen += formatex(Menu[iLen], sizeof Menu iLen"^n\r0. \wSalir")
    
    
show_menu(idKEYSMENUMenu, -1"Menu De Party")
}

public 
HandlePartyMenuidkey )
{
    switch( 
key )
    {
        case 
4:
        {
            new 
szArg32 ] , id2;
            
            
read_argvszArg 31 );
            
            
id2 read_data(2
            
            if( !
Is_User_in_Party[id] )
            {
                new 
Targetbody
                get_user_aiming
(idTargetbody)
                
                if( 
Target != id2 || Target == id || !is_user_bot(id2) || !is_user_connected(id2) || !is_user_alive(id2) )
                {
                    
client_printid print_center "[PARTY] No estas apuntando a nadie!");
                    
ShowPartyMenuid )
                    
                    return 
PLUGIN_HANDLED;
                }
                
                for ( new 
<= g_iMaxPlayers i++ )
                {
                    for ( new 
g_iMaxGroups p++ )
                    {    
                        
get_user_nameid2 szArg 31 );
                        
                        if ( 
g_iPlayerGroups][ ] & ( << ( id2 31 ) ) )
                        {
                            switch(
PlayerInvitations[id] )
                            {
                                case 
1client_printid print_chat "[PARTY] %s Ya esta en un party!!" szArg );
                                case 
2client_printid print_chat "[PARTY] %s Ya tiene una invitacion" szArg );
                            }
                            
                            return 
PLUGIN_HANDLED;
                        }
                        else
                        {
                            
client_printid print_chat "[PARTY] Invitaste a %s a un party!!" szArg );
                            
                            new 
szName[32]
                            
get_user_name(idszName31 )
                            
                            
PlayerInvitations[id2] = 1
                            
                            copy
InvitatorName[id2], charsmaxInvitatorName ), szName 
                            return 
PLUGIN_HANDLED;
                        }
                    }
                }
                
                return 
PLUGIN_CONTINUE;
            }
             
            if( 
id2 == id )
                return 
PLUGIN_HANDLED;
            
            if( 
Is_User_in_Party[id] && Is_User_in_Party[id2] )
            {
                
Is_User_in_Party[id] = 0;
                
Is_User_in_Party[id2] = 0;
                
                
PlayerInvitations[id] = 0;
                
PlayerInvitations[id2] = 0;
                
                
client_printidprint_chat"[PARTY] El party ha sido disuelto." )
                
client_printid2print_chat"[PARTY] El party ha sido disuelto." )
                
                return 
PLUGIN_HANDLED;
            }
            
            return 
PLUGIN_HANDLED;
        }
        
        case 
5ShowInvitationsMenuid )
    }
    
    return 
PLUGIN_HANDLED;
}

public 
ShowInvitationsMenuid )
{
    static 
Menu[250], iLen
    iLen 
0
    
    iLen 
+= formatex(Menu[iLen], sizeof Menu iLen"\yMenu de Invitaciones^n^n")
    
    switch( 
PlayerInvitations[id] )
    {
        case 
0iLen += formatex(Menu[iLen], sizeof Menu iLen"\w No tenes ninguna invitacion^n" )
        case 
1iLen += formatex(Menu[iLen], sizeof Menu iLen"\r1. - \w Invitacion^n")
    }
    
    
iLen += formatex(Menu[iLen], sizeof Menu iLen"^n\r0. \wSalir")
    
    
show_menu(idKEYSMENUMenu, -1"Invitaciones")
}

public 
HandleInvitationsidkey )
{
    switch( 
key )
    {
        case 
0
        { 
            if( 
PlayerInvitations[id] == )
            {
                
PlayerInvitatorMenuid )
            }
        }
    }
}

public 
PlayerInvitatorMenuid )
{
    new 
iInviteSender], iMenu;
    new 
szMenuTitle55 ];
                    
    
formatexszMenuTitleget_user_nameid szMenuTitle charsmaxszMenuTitle ) ) ] , 55 " Te esta invitando a party!" );
    
iInviteSender] = id;
            
    
iMenu menu_createszMenuTitle "InviteHandler");
    
menu_additemiMenu "Aceptar"iInviteSender );
    
menu_additemiMenu "Cancelar"iInviteSender );
    
menu_setpropiMenu  MPROP_EXIT MEXIT_ALL );
    
menu_displayid iMenu ); 

    return 
PLUGIN_HANDLED;
}

public 
InviteHandlerid iMenu iItem 
{
    if( 
iItem == MENU_EXIT )
        return 
PLUGIN_HANDLED;
    
    new 
szName133 ] , szName233 ], szKey] , iDummy idInviteSender;
    
    
menu_item_getinfoiMenu iItem iDummy szKey "" iDummy );
    
idInviteSender szKey];

    
get_user_nameidInviteSender szName1 charsmaxszName1 ) );
    
get_user_nameid szName2 charsmaxszName2 ) );
    
    if ( 
iItem == 
    {
        for ( new 
g_iMaxGroups p++ )
        {    
            if ( 
g_iPlayerGroupsid ][ ] & ( << ( idInviteSender 31 ) ) )
            {    
                new 
szArg32 ]
                
get_user_nameidszArg31 )
                
                switch( 
PlayerInvitations[idInviteSender] )
                {
                    case 
1client_printid print_chat "[PARTY] %s Ya esta en un party!!" szArg );
                    case 
2client_printid print_chat "[PARTY] %s Ya tiene una invitacion" szArg );
                }
            }
            else
            {
                if ( 
is_user_connectedidInviteSender ) && is_user_connectedid ) )
                {
                    
AddGroupidInviteSender id );
                    
                    
set_hudmessage255 255 255 0.05 0.25 6.0 10.0 );
                    
show_hudmessageidInviteSender"Estas en party con %s" szName2 );
                    
show_hudmessageid"Estas en party con %s" szName1 );
                        
                    
Is_User_in_Party[id] = 1;
                    
Is_User_in_Party[idInviteSender] = 1;
                    
                    
copyFriendName[id], charsmax(FriendName), szName1 )
                    
                    
PlayerInvitations[id] = 2
                
}  
            }
        }
    }
    else if ( 
iItem == )
    {
        
client_printidInviteSender print_chat "[PARTY] %s Ha cancelado tu invitacion." szName2);
        
client_printid print_chat "[PARTY] Cancelaste la invitacion de %s" szName1 );
            
        
PlayerInvitations[id] = 0
        
        
return PLUGIN_HANDLED;
    }  
    
    return 
PLUGIN_HANDLED;
}
            
public 
AddGroupidInvitor idInvitee )
{
    if ( ++
g_iGroupIndex == g_iMaxGroups )
        return 
0;
    
    
g_iPlayerGroupsidInvitor ][ g_iGroupIndex ] = ( << ( idInvitor 31 ) ) | ( << ( idInvitee 31 ) );
    
    return 
g_iGroupIndex;
}

public 
GetGroupPlayersiGroup , &id1 , &id2 )
{
    new 
bool:bFirstSet;
    
    for ( new 
<= 32 p++ )
    {
        if ( 
iGroup & ( << ( 31 ) ) )
        {
            if ( !
bFirstSet )
            {
                
id1 p;
                
bFirstSet true;
            }
            else
            {
                
id2 p;
                return 
1;
            }
        }
    }
    return 
0;

NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#2
Aguante el party de [R]ak Fuck yeah
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#3
(26/02/2014, 09:28 PM)roccoxx escribió: Aguante el party de [R]ak Fuck yeah

Si jaja , ese lokillo de Rak tiene todo optimizado y en buen funcionamiento jaja

Thats what she said
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#4
Pandas everywear xd
Thebest Niggas!

[Imagen: 67957_543474049063124_922932978_n.jpg]
-Skype: juuan.-best
Responder
#5
Como haces para que la xp se divida en los que estan en el party?
(12/03/2014, 08:11 PM)roccoxx escribió: jajajajajajajajajajajajajajajaajajajajajaajajajajajajajajajajajajajajajajajajajajajajajajajjajajjajajajajaja

todo eso elevado a la quinta potencia.
Responder
#6
Con el de rak es fácil te fijas si esta en party y si mata y dividís la experiencia
Responder
#7
Mi plugins se puede seguir optimizando Lengua
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#8
(13/03/2014, 05:58 AM)[R]ak escribió: Mi plugins se puede seguir optimizando Lengua

Aparte una vez cada muuucho tiempo me tira error con un array o.O

Pero me olvido de postear el log
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#9
Postealo y veo q es
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#10
Cuado lo tenga, ayer meti tu parti en um servidor para dejarte el log cuando salga...
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#11
(13/03/2014, 05:58 AM)[R]ak escribió: Mi plugins se puede seguir optimizando Lengua

Optimizar en lineas decís vos? o en sacar unos cuantos kb Thats what she said
Responder
#12
podrias explicar un poquito mas que hace este sistema de party

¿ Divide los Ammo packs entre los jugadores ?
¿ Es solo para tener un grupo y no hace nada mas ?
¿ Cual es el maximo de gente que puede estar en la party ?

, gracias.
[Imagen: 1188220mouf%255B1%255D.jpg]
Sé humilde en tu enfoque.
Responder
#13
(24/04/2014, 02:12 AM)Lito escribió: ¿ Divide los Ammo packs entre los jugadores ?
No

(24/04/2014, 02:12 AM)Lito escribió: ¿ Es solo para tener un grupo y no hace nada mas ?
Que mas queres hacer?

(24/04/2014, 02:12 AM)Lito escribió: ¿ Cual es el maximo de gente que puede estar en la party ?
Infinitos, pero solo puede haber 2 partys
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#14
Gracias por la info, pensaba que lo suyo seria un party que divida los ammo packs entre los jugadores que hay dentro.
Sé humilde en tu enfoque.
Responder
#15
Este sistema de party nunca me a gustado... XD!!!!! TrolleyesTrolleyesTrolleyesTrolleyes
Hay que agradecer a todos los que nos han ayudado en soporte, aportes, tutoriales etc.. pero igual se les agradece a todos Cutecry Excitedeyes
Responder
#16
Encontré un error en la parte del handler, el tema es así pusiste !is_user_bot(id2), que si el target no es un bot, le diga que no apunte a nadie. Si él party esta ideado para usarse solo con bots, esta bien, pero si queres que ande con personas, no deberías remover eso?
TFD ------ 10% (proyecto parado)

[Imagen: 76561198053053139.png]
Responder
#17
(06/12/2015, 09:48 PM)Matians escribió: Encontré un error en la parte del handler, el tema es así pusiste !is_user_bot(id2), que si el target no es un bot, le diga que no apunte a nadie. Si él party esta ideado para usarse solo con bots, esta bien, pero si queres que ande con personas, no deberías remover eso?

Alta revivida jajaj....
La verdad es que si, only bots..... y la verdad hasta no se si anda con los bots y como no es mio el code lo quise postear tal y como lo encontré en mi PC jaja.
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#18
tengo un problema , quiero hacer una invitacion y apunto a un jugador y no me manda la invitacion me dice no estas apuntando a nadie
Tan malo no soyWhatever
Responder
#19
Hola buenas, estoy intentando buscar un Sistema de Party, tengo el ZP 5.0.8, y no encuentro nada...
Necesito uno por favor.. ¿alguien me ayuda? D':
Responder
#20
(14/10/2016, 06:17 PM)VictorARL escribió: Hola buenas, estoy intentando buscar un Sistema de Party, tengo el ZP 5.0.8, y no encuentro nada...
Necesito uno por favor.. ¿alguien me ayuda? D':

Para estas cosas tienes que abrir un tema nuevo, no te dare report por ser nuevo, pero para la proxima te recomiendo pasar primero por aca:
Click aca<3

Para un sistema de party puedes usar el de [R]ak

haciendo click aca<3

Tambien tienes el party de [R]ak + Combo
haciendo click aca<3
Idioma: [Extrangez]
Nivel de Amistad: [Depende de ti]

Aportes:
[Mapas]
zm_impressive

zm_laberim
zm_bunkeriM 28%

Made in Venezuela
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)