Raised This Month: $51 Target: $400
 12% 

[HNS] Crear ronda carnage


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Chaato
Senior Member
Join Date: Jun 2011
Location: C://Windows/Arg/MyHome
Old 11-12-2011 , 17:32   [HNS] Crear ronda carnage
Reply With Quote #1

[TUT HNS] CREAR RONDA CARNAGE


Bueno, me decidi a hacer este tutorial porque en varios servidores vi rondas carnage, tal vez no son iguales a este pero esto es lo mas basico que digamos... Espero que el tutorial alla salido bien se los hire explicando parte a parte

En este pedazito les muestro que includes usamos, el nombre del plugin, la version, el autor, y un prefijo. Ademas creamos una variable para 32 players, 2 constancias para las CFG's y una variable para remplazar el "get_maxplayers()". En el "plugin_init()" registramos el plugin version & autor, registramos los eventos de INICIO & FIN de ronda.


PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fun >

new PluginName[  ] =             "[TUT] Crear Carnage Round"
new PluginVersion[  ] =             "1.0"
new PluginAutor[  ] =              "Chatto'"
new szPrefix[  ] =              "[CarnageRound]"

new gCarnageCount[33];
new const 
gCfgCarnage[] = "cstrike/carnage.cfg"
new const gCfgNormal[] = "cstrike/publico.cfg"
new g_iMaxPlr

public plugin_init()
{
    
register_pluginPluginNamePluginVersionPluginAutor )
    
register_logevent("RoundStart"2"1=Round_Start")
    
register_logevent("RoundEnd"2"1=Round_End")    
    
g_iMaxPlr get_maxplayers();

Continuando, aqui hacemos el public de INICIO de ronda en el que hacemos un loop con todos los players y ponemos que si la variable "gCarnageCount" que si sabemos un poco de ingles sabremos que significaria Contador Cargane, bueno, ponemos que si el Contador no es igual a 5, nos dara un hud mensaje diciendo cuantas rondas van transcurriendo y cuantas son para la ronda cargane, y ejecutaremos la cfg normal pero tambien ponemos que de lo contrario si el contador carnage es igual a 5 nos dara un hud mensaje de anuncio de que estamos por jugar la ronda carnage, creamos la funcion para dar los items a los jugadores, ejecutaremos la cfg carnage solo si el contador esta en 0, y a la variable del contador la pondremos en 0 para que pueda volver a empezar y sumar, ¿Que pasaria si no ponemos en 0 el cotador? Pues simple el contador seguira avanzando 6, 7, 8, 9... y nunca se repetira la ronda carnage ya que pusimos que si el contador es IGUAL a 5, significa que solo cuando el contador equivalga a 5 se ejecutara.


PHP Code:
public RoundStart()
{
    for( new 
1<= g_iMaxPlri++ )
    {
        
        if( 
gCarnageCount[i] == )
            
server_cmd"exec %s"gCfgNormal )
            
            
        if( 
gCarnageCount[i] != )
        {
            
set_hudmessage(25521200.180.1516.012.0)
            
show_hudmessagei"%s^nContador cargane %d/5 rondas "szPrefixgCarnageCount[i] )
        }
        else if( 
gCarnageCount[i] == )
        {
            
server_cmd"exec %s"gCfgCarnage )
            
set_hudmessage(25521200.180.1516.012.0)
            
show_hudmessagei"ESTAS POR JUGAR^n%s"szPrefix )
            
set_task12.0"give_items")
            
gCarnageCount[i] = 0;
        }
    }

En el evento de FINALIZACION de ronda es muy simple, haremos un loop con todos los players y sumaremos en 1 la variable del contador.

PHP Code:
public RoundEnd()
{
    for( new 
1<= g_iMaxPlri++ )
    {
        
gCarnageCount[i]++;
    }
    

Para finalizar nos falta agregar la funcion que haria "give_items" que definimos en el evento de inicio de ronda. Aqui es muy simple, solo tenemos que darle las armas y setearle a los jugadores la vida o las cosas que quieramos, yo por ej les di Awp, Cuchillo, Granada explosiva y les di 150 de vida & 150 de armor. Pero antes de darles todo como esto es para HNS debemos quitarles las armas a todos por eso use "strip_user_weapons" para quitar las granadas de los terroristas y los cuchillos de los policias y luego le di a todos lo mismo.

PHP Code:
public give_items(id)
{
    
strip_user_weapons(id)
    
give_itemid"weapon_awp" )
    
give_itemid"weapon_knife" )
    
give_itemid"weapon_hegrenade" )
    
set_user_healthid150 )
    
set_user_armorid150 )
    
cs_set_user_bpammoidCSW_AWP10 )

¿Para que son las Cfg's?
Muy simple, en las cfgs como es para un servidor de Hide'n'Seek si tenemos el HNS SHOP o el Parachute instalado en la cfg de cargane los desactivamos para que no puedan usarlos durante esa ronda y luego en la cfg normal volvemos a activarlo. Tambien pueden usarlas para cambiar el tiempo de duracion, gravedad, airaccelerate, accelerate, etc..


Bueno eso fue todo amigos de AlliedModders, espero que este bien explicado y que les guste. Saludos y suerte a todos!
__________________
[LaserMines] - Creador & Porcentaje de vida: Click Me

Last edited by Chaato; 11-12-2011 at 18:28.
Chaato is offline
Send a message via MSN to Chaato Send a message via Skype™ to Chaato
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 11-12-2011 , 18:04   Re: [HNS] Crear ronda carnage
Reply With Quote #2

1. Los bucles están iniciando mal.
2. Estás mostrando el hud con index 0 (para todos) dentro de un bucle.
3. Estás ejecutando la cfg varias veces.
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
Chaato
Senior Member
Join Date: Jun 2011
Location: C://Windows/Arg/MyHome
Old 11-12-2011 , 18:13   Re: [HNS] Crear ronda carnage
Reply With Quote #3

Ya corregi el *2 y el *3, en el *1 porque esta mal iniciado ?

Edit: Es porque van en "1" y no en "0" ?
en la parte de:

PHP Code:
new 
a eso te refieres?
__________________
[LaserMines] - Creador & Porcentaje de vida: Click Me

Last edited by Chaato; 11-12-2011 at 18:27.
Chaato is offline
Send a message via MSN to Chaato Send a message via Skype™ to Chaato
fearAR
Veteran Member
Join Date: Oct 2010
Old 11-12-2011 , 19:16   Re: [HNS] Crear ronda carnage
Reply With Quote #4

No se llaman constancias, se llaman constantes debido a sus valores, los cuales no cambian a lo largo del tiempo, periodo. Saludos.

PD: Si tomas los valores de las rondas por cada usuario algunos van a tener AWP y otros no, lo cual seria muy injusto porque no haces una variable global y la aumentas al correr de los terminos de ronda.
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]

Last edited by fearAR; 11-12-2011 at 19:23.
fearAR is offline
Send a message via MSN to fearAR
Chaato
Senior Member
Join Date: Jun 2011
Location: C://Windows/Arg/MyHome
Old 11-12-2011 , 19:18   Re: [HNS] Crear ronda carnage
Reply With Quote #5

Quote:
Originally Posted by fearAR View Post
No se llaman constancias, se llaman constantes debido a sus valores, los cuales no cambian a lo largo del tiempo, periodo. Saludos.
Gracias por la correccion
__________________
[LaserMines] - Creador & Porcentaje de vida: Click Me
Chaato is offline
Send a message via MSN to Chaato Send a message via Skype™ to Chaato
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 11-13-2011 , 14:26   Re: [HNS] Crear ronda carnage
Reply With Quote #6

PHP Code:
public RoundEnd()
{
    for( new 
1<= g_iMaxPlri++ )
    {
        
gCarnageCount[i]++;
    }
    

Esto no hace falta que sea asi... ocea no hace falta que le tenas que ahcer 1 suma a cada player no te sirve de nada que cada player le haga el conteo de la ronda.. a menos que cada player sea 1 player especial y cada uno tenga 1 numero diferente y depende de que player sea asi... pero si es para todos... entonces solamente hacerla a 1 variable global ya con eso estaria para hacer la cuenta para la ronda llege a 5 y la validaciones hacia eso lo cual deberias cambiar eso por esto

PHP Code:
public RoundEnd()
{
        
gCarnageCount++;

new gCarnageCount[33];

-->

new gCarnageCount;


dejar bien el gCarnageCount ya que ahora no le pasas como parametro I.

Esto
PHP Code:
public RoundStart()
{
    for( new 
1<= g_iMaxPlri++ )
    {
        
        if( 
gCarnageCount[i] == )
            
server_cmd"exec %s"gCfgNormal )
            
            
        if( 
gCarnageCount[i] != )
        {
            
set_hudmessage(25521200.180.1516.012.0)
            
show_hudmessagei"%s^nContador cargane %d/5 rondas "szPrefixgCarnageCount[i] )
        }
        else if( 
gCarnageCount[i] == )
        {
            
server_cmd"exec %s"gCfgCarnage )
            
set_hudmessage(25521200.180.1516.012.0)
            
show_hudmessagei"ESTAS POR JUGAR^n%s"szPrefix )
            
set_task12.0"give_items")
            
gCarnageCount[i] = 0;
        }
    }

se reduce a esto

PHP Code:
public RoundStart()
{
        if( 
gCarnageCount == )
            
server_cmd"exec %s"gCfgNormal )
            
            
        if( 
gCarnageCount != )
        {
            
set_hudmessage(25521200.180.1516.012.0)
            
show_hudmessage0"%s^nContador cargane %d/5 rondas "szPrefixgCarnageCount)
        }
        else if( 
gCarnageCount == )
        {
            
server_cmd"exec %s"gCfgCarnage )
            
set_hudmessage(25521200.180.1516.012.0)
            
show_hudmessage0"ESTAS POR JUGAR^n%s"szPrefix )
            
set_task12.0"give_items"0
            
gCarnageCount 0;
        }


salu2

Last edited by p4rp4d30; 11-13-2011 at 14:34.
p4rp4d30 is offline
Chaato
Senior Member
Join Date: Jun 2011
Location: C://Windows/Arg/MyHome
Old 11-13-2011 , 15:45   Re: [HNS] Crear ronda carnage
Reply With Quote #7

Tambien es otra buena forma de hacerlo y mas sencilla, pero bueno yo lo hice de la primer forma que se me ocurrio . Gracias igual
__________________
[LaserMines] - Creador & Porcentaje de vida: Click Me
Chaato is offline
Send a message via MSN to Chaato Send a message via Skype™ to Chaato
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 11-13-2011 , 17:38   Re: [HNS] Crear ronda carnage
Reply With Quote #8

Quote:
Originally Posted by Chaato View Post
Tambien es otra buena forma de hacerlo y mas sencilla, pero bueno yo lo hice de la primer forma que se me ocurrio . Gracias igual
"Tambien es otra buena forma de hacerlo y mas sencilla"

es la mejor forma... la forma que hicistes vos no es la mejor directamente alguien que tiene 1 poco de conocimiento y 1 pcoo de logia se da cuenta de que lo qe hicistes esta muy mal.

No es 1 tema de Primer forma que se me ocurrio... es como se debe pensar antes de hacerlo... tenes que tener cosas en cuenta antes de realizar un code y de ahi si podes seguir optimizando mejor!!

Last edited by p4rp4d30; 11-13-2011 at 17:39.
p4rp4d30 is offline
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 11-14-2011 , 18:52   Re: [HNS] Crear ronda carnage
Reply With Quote #9

Quote:
Originally Posted by Chaato View Post
Tambien es otra buena forma de hacerlo y mas sencilla, pero bueno yo lo hice de la primer forma que se me ocurrio . Gracias igual
Corrige el thead y hazlo bien.
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:57.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode