Competitive/Face it Pick Up Game (PUG)
#1


Beta Disponlibe



Descripción:
El famoso Pick Up Game/Competitive, con algunas características distintas, fue tomado como base el competitivo de "Face It" (si esta le faltan algunas cosas pueden avisar)

Caracteristicas:

Al igual que el YAP, posee características muy similares o mas bien iguales, tiene los mismos comandos a diferencia de 1 o 2
  • Modo practica/calentamiento con ronda infinita

  • La puntuacion esta en el "ServerName y el GameName"

  • La puntuacion de los jugadores no se reinicia al cambiar de equipos

  • La 1era Ronda es de cuchillo (determina que equipo va a TT)

  • Opciones Para desarrolladores

  • Opcion para privatizar el PUG y evitar el uso de password

  • Al hacer el "intermission", al cambio de equipos se evita otra vez el .ready y no se reinicia las puntuaciones en el scoreboard

  • Sonidos tomados del CS:GO

  • Al igual que el CS:GO, tiene un breve intermission mas dimanico
    Desde la 1.3

  • Se puede hacer votaciones personalizadas usando plugins externos


Comandos (Say):
  • .ready: Cambias de estado a "listo"

  • .unready: Cambias de estado a "nolisto"

  • .dmg: Muestra el daño recibido

  • .hp: Muestra el Health Point de los jugadores contrarios

  • .score: Muestra la puntuacion actual (Esto es innecesario ya que la puntuacion esta en el scoreboard)

  • .start: Forzar el inicio del pug con los jugadores actuales"

  • .cancel: Cancelar el pug

  • .forceready: Forzar a todos los jugadores al estado "listo"

Si me faltan otras las pondre... Oh god why

Requisitos:

AmxModX 1.8.2 o superior
ReGameDLL_CS [Imagen: regamedll.svg]
Reapi [Imagen: reapi.svg]


Para Desarrolladores:


Código PHP:
#if defined _pug_include
 #endinput
#endif
#define _pug_include
enum PUG_STATE
{
 
NO_ALIVE 0,
 
VOTING,
 
COMMENCING,
 
ALIVE,
 
ENDING
}

const 
PUG_STATE_FLAG:FLAG_NO_ALIVE any:(1<<any:NO_ALIVE)
const 
PUG_STATE_FLAG:FLAG_VOTING any:(1<<any:VOTING)
const 
PUG_STATE_FLAG:FLAG_COMMENCING any:(1<<any:COMMENCING)
const 
PUG_STATE_FLAG:FLAG_ALIVE any:(1<<any:ALIVE)
const 
PUG_STATE_FLAG:FLAG_ENDING any:(1<<any:ENDING)

enum PUG_EVENTS
{
 
PUG_START 0/*(void)*/
 
ALL_PLAYER_IS_READY/*(void)*/
 
ROUND_START/*(void)*/
 
ROUND_END/*(TeamName:win_team)*/
 
PUG_END/*(TeamName:win_team)*/
 
INTERMISSION_START/* (void) */
 
INTERMISSION_END /* void */
}
/*
* Registrar un comando
*
*
* @param name Comado a registrar
* @param fwd Funcion a llamar cuando se ejecuta el comando
*
* @note public fwd(index, argument[])
* index: player index
* argument[type = string]: String adicional a pasar
*
*/
native PugRegisterCommand(name[], fwd[], flags = -1PUG_STATE_FLAG:stateflag FLAG_NO_ALIVE);
native PugNextVote();
native PugRegisterVote(name[], function[]);
native PugRegisterVoteOption(option[]);
native PugStart();
native register_pug_event(PUG_EVENTS:event, const function[]);
native PUG_STATE:pug_get_state()
native PugPrintChat(player, const msg[], any:...); 

Como agregar una nueva votacion:


Código PHP:
#include <amxmodx>

#define PLUGIN  "Vote Test"
#define VERSION "1.0"
#define AUTHOR  "Sugisaki"

//se puede meter en un INC estas natives

native pug_next_vote()
native pug_register_vote(function[])

new 
g_votes[2]
public 
plugin_init()
{
 
register_plugin(PLUGINVERSIONAUTHOR)
 
// Registramos la Votacion
 
pug_register_vote("start_vote")
 
// el parametro funcion es para llamar el inicio de la votacion
}
public 
start_vote()
{
 
arrayset(g_votes0sizeof(g_votes))
 
client_cmd(0"slot10"// Con slot10 cerramos los menues que tenga el player
 
set_task(10.0"vote_end"// Cuando se finalizara la votacion
 
set_task(0.1"make_menu"// Aveces no aparece el menu ya que superpone en el otro menu, por eso hay que darle un retardo
}
// Lo demas es parte de la votacion personalizada
public make_menu()
{
 
 for(new 
<= get_maxplayers() ; i++)
 {
 if(!
is_user_connected(i))
 {
 continue
 }
 
do_menu(i)
 }
}
do_menu(id)
{
 new 
menu
 menu 
menu_create("Menu""mh_menu")
 
menu_additem(menu"NO")
 
menu_additem(menu"SI")
 
menu_display(idmenu)
}
public 
mh_menu(idmenuitem)
{
 if(
item == MENU_EXIT)
 {
 
menu_destroy(menu)
 return
 }
 if(!(
<= item <= 1))
 {
 
client_print(idprint_chat"Seleccion invalida")
 
menu_destroy(menu)
 
do_menu(id)
 return
 }
 
menu_destroy(menu)
 
client_print(idprint_chat"Has Votado %s"item == "SI" "NO")
 
g_votes[item] += 1
}
public 
vote_end()
{
 
client_print(0print_chat"vote end")
 
client_cmd(0"slot10")
 
 new 
winnertemp
 
for(new sizeof (g_votes) ; i++)
 {
 if(
temp g_votes[i])
 {
 
temp g_votes[i]
 
winner i
 
}
 }
 if(!
winner)
 {
 
client_print(0print_chat"La gente voto NO")
 }
 else
 {
 
client_print(0print_chat"La gente voto SI")
 }
 
set_task(0.1"next")
}
// IMPORTANTE, Al final de la votacion hay que ejcutar pug_next_vote, para pasar a la siguiente votacion
public next()
{
 
pug_next_vote()


El orden de las votaciones depende de como lo declaren en plugins.ini

Código:
pug_mod.amxx
vote1.amxx
vote2.amxx

Logs:

Cita:Por aqui


Archivos adjuntos
.zip   sound.zip (Tamaño: 409.39 KB / Descargas: 637)
.sma   Descargar AMXX / pug_mod.sma (Tamaño: 34.8 KB / Descargas: 248)
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#2
Muy bien, pero no creo que esas api tengan soporte aquí, ademas, que mierda hacer que descargue esas dependencias NothingdohereWhatever

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook

[Imagen: w8565u-4.png]
Responder
#3
(23/02/2017, 07:31 PM)kikizon2 escribió: Muy bien, pero no creo que esas api tengan soporte aquí, ademas, que mierda hacer que descargue esas dependencias NothingdohereWhatever

si en am-en no le dan soporte, supongo que aquí menos, aunque segun metalico es una tontería no hacerlo, pues la cosa es muy buen proyecto.


Creo que ira bien en aportes, aque sospecho que no lo aprobaran, me gustan tus códigos siempre hay algo interesante para mirar.
[Imagen: 76561198090851442.png]
Responder
#4
rehlds pacman, dejame testeo y te informo los bugs muahaha Roflmao
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#5
Nice.

Responder
#6
(23/02/2017, 07:43 PM)PredatorFlys escribió:
(23/02/2017, 07:31 PM)kikizon2 escribió: Muy bien, pero no creo que esas api tengan soporte aquí, ademas, que mierda hacer que descargue esas dependencias NothingdohereWhatever

si en am-en no le dan soporte, supongo que aquí menos, aunque segun metalico es una tontería no hacerlo, pues la cosa es muy buen proyecto.


Creo que ira bien en aportes, aque sospecho que no lo aprobaran, me gustan tus códigos siempre hay algo interesante para mirar.

yo pienso que deberian aceptar dicha "libreria" ya que es un proyecto a codigo abierto y es como un "modulo cualquiera", puedo dar soporte para el mismo si se me permite, por lo menos la gamedll que tiene varias mejoras para el juego mismo
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#7
UPDATE V1.2

Logs:
Código:
1.2: Fix: Cambio de equipos en plena partida, no puede haber mas de la mitad del maximo de jugadores definido en "pug_players"

ID: knLiudMl

Thanks To:
Cita:___________________________________________
PredatorFlys: Reporte de algunos fallos
OsweRRR: Extreme Intelligence Debugger
___________________________________________
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#8
bug aleatorio (no paso siempre), al soltar el c4 y alguien intentara agarrarla la dropeaba rápidamente y nunca te dejaba tenerla realmente, fue muy extraño podrías echarle un ojo a esa parte.
[Imagen: 76561198090851442.png]
Responder
#9
un bug algo insolito

inicia el match se desactiva la ronda infinita
hay un tiempo de gracia para iniciar el match (5 segundos creo)
hay 3 ct matando a 5 terroristas inmóviles en su base.
si esos 3 ct matan a los 5 terrors los ct ganan la ronda
cuando pasa el tiempo de gracia y realmente inicia el match los ct quedan con esa puntuación
cuando deberia empezar 0-0 empieza 1-0.
[Imagen: 76561198090851442.png]
Responder
#10
(09/04/2017, 08:43 PM)PredatorFlys escribió: un bug algo insolito

inicia el match se desactiva la ronda infinita
hay un tiempo de gracia para iniciar el match (5 segundos creo)
hay 3 ct matando a 5 terroristas inmóviles en su base.
si esos 3 ct matan a los 5 terrors los ct ganan la ronda
cuando pasa el tiempo de gracia y realmente inicia el match los ct quedan con esa puntuación
cuando deberia empezar 0-0 empieza 1-0.

extraño, ya que se desactiva la ronda infinita al iniciar el match, justamente cuando empieza la ronda nueva
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#11
(10/04/2017, 06:28 AM)Sugisaki escribió:
(09/04/2017, 08:43 PM)PredatorFlys escribió: un bug algo insolito

inicia el match se desactiva la ronda infinita
hay un tiempo de gracia para iniciar el match (5 segundos creo)
hay 3 ct matando a 5 terroristas inmóviles en su base.
si esos 3 ct matan a los 5 terrors los ct ganan la ronda
cuando pasa el tiempo de gracia y realmente inicia el match los ct quedan con esa puntuación
cuando deberia empezar 0-0 empieza 1-0.

extraño, ya que se desactiva la ronda infinita al iniciar el match, justamente cuando empieza la ronda nueva

prueba devolviendo esos valores a 0 apenas inicie el match
[Imagen: 76561198090851442.png]
Responder
#12
Probando el mod 1 bug, todo bien comenzo ronda cuchillos cambiamos equipos jugamos las primeras rondas en ct y al cambio equipo el tiempo descanso todo bien, cuando se cambia equipo descanso nuevamente 10 segundos y se vuelven a cambiar los equipos a como estaban?, en vez de cambiar y empezar y seguir el pug se volvieron a poner como estaban los equipos
Responder
#13
Ojo al dato al bug de la C4
Código PHP:
public pfn_StatusIcon(meid)
{
    
    new 
arg[4]
    
get_msg_arg_string(2argcharsmax(arg))
    if(
equal(arg"c4"))
    {
        
//set_msg_arg_int(1, get_msg_argtype(1), 0)
        //engclient_cmd(id, "drop", "weapon_c4")
        //rg_internal_cmd(id, "drop", "weapon_c4")
        //return PLUGIN_HANDLED
        //remove_task(id)
        //set_task(0.5, "remove_c4", id)
        
if(pug_state == NO_ALIVE)
    {
        
client_cmd(id"drop weapon_c4")
        return
    }
     }

Gracias Sugi por la recomendacion.
aprendiendo
Responder
#14
UPDATED
Cambios en el codigo
Cita:1.21: Click para ver cambios

Changuelogs en el 1er post
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#15
Buenas como podria hacer para que en el votemap no lea los mapas de la carpeta si no los de el maps.ini ?
Responder
#16
(18/05/2017, 04:23 PM)jul escribió: Buenas como podria hacer para que en el votemap no lea los mapas de la carpeta si no los de el maps.ini ?

cambia la funcion read_maps() por esta
Código PHP:
read_maps()
{
    new 
curmap[32]
    
ArrayPushString(g_maps"Jugar Este Mapa")
    
get_mapname(curmapcharsmax(curmap))
    new 
file[] = "addons/amxmodx/configs/maps.ini"
    
if(!file_exists(file))
    {
        
log_amx("archivo de mapas no existe")
        return
    }
    new 
fh fopen(file"r")
    if(
fh)
    {
        new 
line[40]
        while(!
feof(fh))
        {
            
fgets(fhlinecharsmax(line))
            
trim(line)
            if(!
line[0] ||line[0] == ';' || equali(curmapline))
            {
                continue;
            }
            
            if(
is_valid_map(line))
            {
                
ArrayPushString(g_mapsline)
            }
        }
        
fclose(fh)
    }
    else
    {
        
log_amx("Error al abrir el archivo de mapas")
    }

Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#17
Código:
formatex(temp, charsmax(temp), "maps/%s.bsp", line)
            if(file_exists(temp))
            {
                ArrayPushString(g_maps, line)
            }

>>

Código:
if(is_valid_map(line))
            {
                ArrayPushString(g_maps, line)
            }
Responder
#18
(21/05/2017, 09:12 AM)^SmileY escribió:
Código:
formatex(temp, charsmax(temp), "maps/%s.bsp", line)
            if(file_exists(temp))
            {
                ArrayPushString(g_maps, line)
            }

>>

Código:
if(is_valid_map(line))
            {
                ArrayPushString(g_maps, line)
            }

ty Proud
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#19
Rey, el link no descarga "error de compilacion"
Responder
#20
(22/05/2017, 07:18 PM)Wazowski escribió: Rey, el link no descarga "error de compilacion"

te invito a leer de nuevo los requisitos, no uses el compilador online
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#21
Rey, como hago para insertarle el TeamMoney, y salga cada vez que estén los 15 segundos de mp_freezetime? saludos
Responder
#22
puedes hacerlo sin ningun problema desde un plugin externo, tipo
Código PHP:
#include <amxmodx>
#include <cstrike>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Sugisaki"

native pug_get_state()

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("HLTV""pfn_new_round""a""1=0""2=0")
}
public 
pfn_new_round()
{
    if(
pug_get_state() != 0)
    {
        
set_task(1.0"pfn_TeamMoneyHud"___"a"get_cvar_num("mp_freezetime"))
    }
}
public 
pfn_TeamMoneyHud()
{
    
//HUD


se repetira el hud el numero de veces segun lo establezca el mp_freezetime (dinamico)
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder
#23
(24/08/2017, 11:37 AM)Sugisaki escribió: puedes hacerlo sin ningun problema desde un plugin externo, tipo
Código PHP:
#include <amxmodx>
#include <cstrike>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Sugisaki"

native pug_get_state()

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("HLTV""pfn_new_round""a""1=0""2=0")
}
public 
pfn_new_round()
{
    if(
pug_get_state() != 0)
    {
        
set_task(1.0"pfn_TeamMoneyHud"___"a"get_cvar_num("mp_freezetime"))
    }
}
public 
pfn_TeamMoneyHud()
{
    
//HUD


se repetira el hud el numero de veces segun lo establezca el mp_freezetime (dinamico)

Gracias rey.. saludos!
Responder
#24
Rey, como puedo editar para quitar la ronda de cuchillos y colocarle una votacion de equipos que eliga, capitantes, sorteado, o iguales.. me gusta mucho tu modo pug pero la gente me pide votaciones de equipos Triste espero me puedas ayudar saludos!
Responder
#25
ACTUALIZACION V1.3

Logs en la pagina principal
Competitive/Face it Pick Up Game (PUG) servidor de prueba: 45.77.94.109:27016 Click para Entrar
[Imagen: b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png]

(14/08/2015, 10:15 PM)Sugisaki escribió: "El mundo es caotico, irracional e injusto. No tiene ningun significado"
Palabras que desde hace mucho tiempo he buscado para describir, ¿Que es el mundo?
Crab

Código PHP:
if(ayuda && free)
{
    exit();

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)