Jump to content
  • ¡Hola, Invitado! Únete a nuestra comunidad y construyamos juntos algo increíble.

    ¡Bienvenido a nuestra comunidad! Al unirte, formarás parte de una comunidad apasionada por MAPPING. Para participar activamente, simplemente haz clic en el botón ‘Conectarse’ o ‘Registrarse’. Una vez registrado, podrás publicar mensajes, compartir tus experiencias y explorar los diversos foros disponibles. ¡Esperamos verte pronto y compartir momentos increíbles juntos!

[Pedido] Party

Valorar este tema


Publicaciones recomendadas

Publicado (editado)

Hola....

Qria saber si alguien podria hacer un tutorial

de como hacer un sistema de party para zp mas el combo

gracias..

Editado por Incrusser
Publicado
okz gracias

:(arre2):

 

Como dije es una base y no es mio.

 

/*  Version: 1.1b

    Party System - Developed by Thizk

Contact:
waiting4youu@hotmail.com

Commands:
say /ps
say_team /ps

*/

#include 
#include 
#include 

new const Plugin[] = "Party System"
new const Version[] = "1.1b"
new const Author[] = "Thizk"
new const ps[] = "!y[!gPS!y]" // Prefix

#define MAX_PLAYERS 32 // MAX Players
#define MAX_LEN_MENU 512 // MAX Len Menu 
#define LEN 32 // MAX Len Name
#define MAX_MEMBERS 3 // MAX Members
#define is_party_member(%1) ( nPartyType[ %1 ] == PARTY_MEMBER ) // is Member
#define is_party_leader(%1) ( nPartyType[ %1 ] == PARTY_LEADER ) // is Leader 

enum
{
PARTY_NOT = 0, 
PARTY_LEADER, 
PARTY_MEMBER
}

static nMember[ LEN ] // Member Name
static nLeader[ LEN ] // Leader Name
static nCount = 0; 
new nParty[ MAX_PLAYERS + 1 ] // Party ID
new nPartyType[ MAX_PLAYERS + 1] // Party Type

public plugin_init() {
register_plugin( Plugin, Version, Author ) 

// [ Menus ]
register_menucmd( register_menuid( "Party Menu" ) , 1023, "action_menu" )

// [ Show Party Menu ]
register_clcmd("say /ps","clcmd_show" )
register_clcmd("say_team /ps", "clcmd_show" )

// [ Check Names ]
register_forward( FM_ClientUserInfoChanged , "fw_ClientInfoChange" )
}
public clcmd_show( id )
{
if(is_user_connected(id) ){
show_menu_party( id )
}
return PLUGIN_HANDLED;
}
show_menu_party( id )
{
static Menu[ MAX_LEN_MENU ] , iLen , i;
new keys = (1<<9)

iLen = formatex( Menu, sizeof Menu - 1  ,"\dParty \rMenu \w| \dVersion: \w%s \w| \dAuthor: \w%s^n^n", Version, Author)

switch( nPartyType[ id ] )
{
case PARTY_NOT:
{
iLen += formatex( Menu[ iLen ], sizeof Menu - iLen  ,"\rYou are not in Party^n^n" )
iLen += formatex( Menu[ iLen ], sizeof Menu - iLen  ,"\r4. \wCreate Party^n^n" )

keys |= (1 << 5  -2)
}
case PARTY_LEADER:
{
iLen += formatex( Menu[ iLen ], sizeof Menu - iLen  ,"\rLeader: \y%s^n^n\rMembers:",nLeader )

for(i = 1; i <= MAX_PLAYERS; i++)
{
if( is_party_member(i) )
{
get_user_name( i , nMember, charsmax( nMember ) )
iLen += formatex( Menu[ iLen ], sizeof Menu  - iLen  ,"^n\d%s", nMember )
keys |= (1 << nCount)
}
}

iLen += formatex( Menu[ iLen ] , sizeof Menu - iLen ,"^n^n\r4. \wAdd Member^n" )
iLen += formatex( Menu[ iLen ] , sizeof Menu  - iLen  ,"\r5. \wDelete Party^n^n")

keys |= (1 << 5 -2 | 1 << 5 -1)
}
case PARTY_MEMBER:
{

iLen += formatex( Menu[ iLen ], sizeof Menu - iLen  ,"\rLeader: \y%s^n^n\rMembers:",nLeader )

for(i = 1; i <= MAX_PLAYERS; i++)
{
if( is_party_member(i) )
{
get_user_name( i , nMember, charsmax( nMember ) )
iLen += formatex( Menu[ iLen ], sizeof Menu  - iLen  ,"^n\d%s", nMember )
}
}

iLen += formatex( Menu[ iLen ], sizeof Menu  - iLen  ,"^n^n\r5. \wExit Party^n^n")
keys |= (1 << 5 -1)
}

}
iLen += formatex( Menu[iLen], sizeof Menu - iLen,"\r0. \wExit")
show_menu(id , keys , Menu , -1 , "Party Menu" );
}
public action_menu( id , key )
{
new target, body
get_user_aiming( id , target, body )

switch( key )
{
case 0..2: return PLUGIN_HANDLED; /* PLAYERS INFO COMMING SOON & RETIRE MEMBER */
case 3:
{
if( nParty[ target ] )
{
ps_colored( id , "%s The Player Is Already In Party" , ps )
show_menu_party( id )
return PLUGIN_HANDLED;
}

if( !target )
{
ps_colored( id , "%s Invalid Player" , ps )
show_menu_party( id )
return PLUGIN_HANDLED;
}

while( nCount >= MAX_MEMBERS ) {
        
ps_colored( id , "%s Max Members !g%d!y/!g%d",ps , nCount , MAX_MEMBERS )
show_menu_party( id )
return PLUGIN_HANDLED;
}

switch( nPartyType[ id ]  )
{
case PARTY_NOT: add_member( id , target , random( 100 ) )
case PARTY_LEADER: add_member( id , target , nParty[ id ] )
}
}
case 4:PartyClear( id )
}
show_menu_party( id )
return PLUGIN_HANDLED;
}
public add_member( leader , member , party )
{ 
if( !nParty[ leader ] )
{
nPartyType[ leader ] = PARTY_LEADER;
nPartyType[ member ] = PARTY_MEMBER;

nParty[ leader ] = party;
nParty[ member ] = party;

new mName[ LEN ], sName[ LEN ]
get_user_name(leader, mName, charsmax(mName));
get_user_name(member, sName, charsmax(sName));

ps_colored( leader,"%s The !gParty !yWas Created! | Leader: !g%s !y- Member: !g%s", ps, mName,sName )

copy( nLeader,  charsmax( nLeader ) , mName )
nCount++
}
else
{
nParty[ member ] = party
nPartyType[ member ] = PARTY_MEMBER;

new mName[ LEN ]
get_user_name( member, mName, charsmax( mName ) )

for(new i = 1 ; i <= MAX_PLAYERS ; i++)
{
if(nParty[ i ] != nParty[ member ] || i == member)
continue;

ps_colored( i ,"%s !g%s !yI Enter To The !gParty",ps, mName )
}
nCount++
}
}
PartyClear( usr )
{
if( is_user_connected( usr ) )
{

switch( nPartyType[ usr ] )
{
case PARTY_NOT:
{
ps_colored( usr ,"%s You are not in !gParty" , ps)
return;
}
case PARTY_LEADER:
{
ResetChars( nParty[ usr ] )
nPartyType[ usr ] = PARTY_NOT;
nParty[ usr ] = PARTY_NOT;
}
case PARTY_MEMBER:
{
for(new i = 1 ; i <= MAX_PLAYERS; i++)
{
if(nParty[usr ] != nParty[ i ] || usr == i)
continue;

ps_colored( i ,"%s The User: !g%s !yI Leave the !gParty", ps, nMember )
}
nParty[ usr ] = PARTY_NOT
nPartyType[ usr ] = PARTY_NOT
nCount--

}
}
}
}
ResetChars( party )
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(nParty[ i ] != party )
continue;

if(is_party_member( i ) )
{
nParty[ i ] = PARTY_NOT;
nPartyType[ i ] = PARTY_NOT;
}
nCount = 0
ps_colored( i ,"%s The !gLeader !yhas been delete the !gparty", ps )
}
}
public fw_ClientInfoChange( id , buffer)
{
if ( !is_user_connected( id ) )
return FMRES_IGNORED

static szName[ 33 ], old[ 33 ]; get_user_name(  id , old, 32 )
engfunc(EngFunc_InfoKeyValue, buffer, "name", szName, sizeof szName - 1)

if(equal( szName, old ) )
return FMRES_IGNORED

if( is_party_leader( id ) )
{
engfunc( EngFunc_SetClientKeyValue, id , buffer, "name", old ) 
client_cmd( id , "name ^"%s^"; setinfo name ^"%s^"", old, old)
ps_colored( id , "%s You Are In !gParty", ps )
}

if( is_party_member( id ) )
{
engfunc( EngFunc_SetClientKeyValue, id , buffer, "name", old ) 
client_cmd( id , "name ^"%s^"; setinfo name ^"%s^"", old, old)
ps_colored( id , "%s You Are In !gParty", ps )
}
return FMRES_IGNORED;
}
stock ps_colored(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") 
replace_all(msg, 190, "!y", "^1") 
replace_all(msg, 190, "!t", "^3") 
replace_all(msg, 190, "!c", "^0") 

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

 

Tabulaciones ):

messi-4.png

 

Mapping-Zone.NET

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora
×
×
  • Crear nuevo...

Información importante

Al utilizar nuestra web, aceptas nuestras Política de privacidad estás de acuerdo con las condiciones establecidas.