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

[ES][ZP] Regalar ammo packs [SOLUCIONADO]


  
 
 
Thread Tools Display Modes
Author Message
Gun Slinger
Member
Join Date: Mar 2010
Old 09-21-2010 , 00:55   [ES][ZP] Regalar ammo packs [SOLUCIONADO]
#1

Buenas,

tengo un problemita con un invento que me hice.

El tema es: poner cuantas ammo packs queres regalar, luego elegir el jugador al que quieras darle la cantidad puesta. De ahi te saca las X ammo packs y le da X ap al jugador seleccionado.

Bueno, pongo 10 ammo packs, selecciono al jugador y despues me dice Le has regalado 49 ammo packs a Xpersona.

o.O

Miren mi code: (me salteo el code que esta en el medio y dejo lo importante ^^)

PHP Code:
new g_ammopackssaid[33]

plugin_init()
{
   
register_menu("Players Menu"KEYSMENU"menu_players")
   
register_clcmd("Ammo_packs""menu_ap")
}

public 
menu_asd(idkey)
{
   if (
key == 0client_cmd(id"messagemode Ammo_packs"
}

public 
menu_ap(id)
{
   
read_args(g_ammopackssaid[id], 33)
   
   if (
g_ammopacksaid[id] > g_ammopacks[id])
    {
        
client_print(idprint_center"No te alcansan los ammopack.")
        
client_cmd(id"messagemode Ammo_packs")
        return 
PLUGIN_HANDLED
    
}
    
        
// Alta condicion xd
    
if (!(contain(g_expsaid[id], "0") != -|| contain(g_expsaid[id], "1") != -|| contain(g_expsaid[id], "2") != -|| contain(g_expsaid[id], "3") != -|| contain(g_expsaid[id], "4") != -|| contain(g_expsaid[id], "5") != -|| contain(g_expsaid[id], "6") != -|| contain(g_expsaid[id], "7") != -|| contain(g_expsaid[id], "8") != -|| contain(g_expsaid[id], "9") != -1))
    {
        
client_print(idprint_center"Solo se admiten numeros.")
        
client_cmd(id"messagemode Ammo_packs")
        return 
PLUGIN_HANDLED
    
}
   
show_menu_players(id)

   return 
PLUGIN_HANDLED
}

show_menu_players(id)
{
    static 
menu[900], lenplayername[32]
    
len 0
    
    len 
+= formatex(menu[len], sizeof menu len"\yMenu de Jugadores^n^n")
    
    for (
player PL_STARTID+1player <= min(PL_STARTID+7g_maxplayers); player++)
    {
        if (
is_user_connected(player))
        {
            
get_user_name(playernamesizeof name 1)
            
            
len += formatex(menu[len], sizeof menu len"\r%d.\w %s^n"player-PL_STARTIDname)
        }
        else
            
len += formatex(menu[len], sizeof menu len"\d%d. -----^n"player-PL_STARTID)
    }
    
    
len += formatex(menu[len], sizeof menu len"^n\r8.\w Anterior^n\r9.\w Siguiente^n^n\r0.\w Salir")
    
    
show_menu(idKEYSMENUmenu, -1"Players Menu")
}

public 
menu_players(idkey)
{
    static 
name[32]
    
    switch (
key)
    {
        case 
MENU_KEY_BACK// back
        
{
            if (
PL_STARTID->= 0PL_STARTID -= 7
            show_menu_players
(id)
        }
        case 
MENU_KEY_NEXT// next
        
{
            if (
PL_STARTID+g_maxplayersPL_STARTID += 7
            show_menu_players
(id)
        }
        case 
MENU_KEY_EXIT:
        {
            
show_menu_bienes(id);
            return 
PLUGIN_HANDLED
        
}
        default:
        {
            if (
is_user_connected(PL_SELECTION))
            {
                
get_user_name(PL_SELECTIONnamesizeof name 1)
                
                
g_ammopacks[id] -= g_ammopackssaid[id]
                
g_ammopacks[PL_SELECTION] += g_ammopackssaid[id]
                
client_print(idprint_center"Le has regalado %d ammo packs a %s"g_ammopackssaid[id], name)
                
g_ammopackssaid[id] = 0
            
}
        }
        else
        {
            
show_menu_players(id)
            return 
PLUGIN_HANDLED
        
}
    }
    
    return 
PLUGIN_HANDLED

Creo que eso es todo lo que se necesita.

En mi opinion lo que esta mal es esto read_args(g_ammopackssaid[id], 33), Nose...
Espero alguna respuesta util.

Saludos.
__________________
Gun Slinger is offline
IndeX'
BANNED
Join Date: Mar 2010
Location: Disco Local
Old 09-21-2010 , 01:20   Re: [ES][ZP] Regalar ammo packs
#2

¿ Por qué no usas el give ap más facil ?

PHP Code:
#include <amxmodx> 
#include <amxmisc>
#include <zombieplague> 

public plugin_init ()
{
    
register_plugin "ZP: Give Ammo""1.0""Author" );
    
register_clcmd "zp_giveap""CmdGiveAP"ADMIN_RCON"- zp_giveap <name> <amount> : Give Ammo Packs" );
    
register_clcmd "amx_giveap""CmdGiveAP"ADMIN_RCON"- amx_giveap <name> <amount> : Give Ammo Packs" );
}

public 
CmdGiveAP idlevelcid )
{
    if ( !
cmd_access idlevelcid) )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
s_Name32 ], s_Amount];
    
    
read_argv 1s_Namecharsmax s_Name ) );
    
read_argv 2s_Amountcharsmax s_Amount ) );
    
    new 
i_Target cmd_target ids_Name);
    
    if ( !
i_Target )
    {
        
client_print idprint_console"(!) Player not found" );
        return 
PLUGIN_HANDLED;
    }
    
    
zp_set_user_ammo_packs i_Targetmax 1str_to_num s_Amount ) ) );
    
    return 
PLUGIN_HANDLED;


read_args(g_ammopackssaid[id], 33)
->

read_args(g_ammopackssaid[id])
IndeX' is offline
Send a message via MSN to IndeX'
Gun Slinger
Member
Join Date: Mar 2010
Old 09-21-2010 , 01:22   Re: [ES][ZP] Regalar ammo packs
#3

Por que ya lo tengo.
Es una manera mas facil la que estoy haciendo yo. Es decir, mas accesible.

EDT: Ahora pruebo lo que me pusiste. (no funciona)
__________________

Last edited by Gun Slinger; 09-21-2010 at 01:24.
Gun Slinger is offline
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 09-21-2010 , 01:47   Re: [ES][ZP] Regalar ammo packs
#4

Proba

read_args(g_ammopackssaid[id], 33)
-->
read_args(g_ammopackssaid[id], charsmax(g_ammopackssaid[id]))

creo que el problema es el array del g_ammopackssaid esta tomando como valor el ID y no lo qe metes dentro.

Yo diria que en esa funcion menu_ap hagas un
client_print(id, print_chat, "NUMERO: %d",g_ammopackssaid[id])

y probas que numero te da... Ocea primero escrivis el numero lo almacena y una ves echo eso abajo en la funcion hace el Client print....

Proba de esta 2 maneras.

PHP Code:
public menu_ap(id

   
read_args(g_ammopackssaid[id], charsmax(g_ammopackssaid[id])) 
    
   if (
g_ammopacksaid[id] > g_ammopacks[id]) 
    { 
        
client_print(idprint_center"No te alcansan los ammopack."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    

     
        
// Alta condicion xd 
    
if (!(contain(g_expsaid[id], "0") != -|| contain(g_expsaid[id], "1") != -|| contain(g_expsaid[id], "2") != -|| contain(g_expsaid[id], "3") != -|| contain(g_expsaid[id], "4") != -|| contain(g_expsaid[id], "5") != -|| contain(g_expsaid[id], "6") != -|| contain(g_expsaid[id], "7") != -|| contain(g_expsaid[id], "8") != -|| contain(g_expsaid[id], "9") != -1)) 
    { 
        
client_print(idprint_center"Solo se admiten numeros."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    


    
client_print(idprint_chat"NUMERO: %d",g_ammopackssaid[id])

   
show_menu_players(id

   return 
PLUGIN_HANDLED 

y tmb proba asi

PHP Code:
public menu_ap(id

   new 
g_ammopackssaid[33]
   
read_args(g_ammopackssaidcharsmax(g_ammopackssaid)) 
    
   if (
g_ammopacksaid[id] > g_ammopacks[id]) 
    { 
        
client_print(idprint_center"No te alcansan los ammopack."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    

     
        
// Alta condicion xd 
    
if (!(contain(g_expsaid[id], "0") != -|| contain(g_expsaid[id], "1") != -|| contain(g_expsaid[id], "2") != -|| contain(g_expsaid[id], "3") != -|| contain(g_expsaid[id], "4") != -|| contain(g_expsaid[id], "5") != -|| contain(g_expsaid[id], "6") != -|| contain(g_expsaid[id], "7") != -|| contain(g_expsaid[id], "8") != -|| contain(g_expsaid[id], "9") != -1)) 
    { 
        
client_print(idprint_center"Solo se admiten numeros."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    


    
client_print(idprint_chat"NUMERO: %d",g_ammopackssaid)

   
show_menu_players(id

   return 
PLUGIN_HANDLED 

Muy probable 100% para mi que con esta forma (Forma numero 2) te va a dar el numero que realmente colocas vos en el menssagemode.

Y decime que resultados te trae cada 1.

Para mi el error esta en el read_args que no toma o no lee variables de 2 dimenciones.

saludos

Last edited by p4rp4d30; 09-21-2010 at 01:49.
p4rp4d30 is offline
Gun Slinger
Member
Join Date: Mar 2010
Old 09-21-2010 , 11:40   Re: [ES][ZP] Regalar ammo packs
#5

Quote:
Originally Posted by p4rp4d30 View Post
Proba

read_args(g_ammopackssaid[id], 33)
-->
read_args(g_ammopackssaid[id], charsmax(g_ammopackssaid[id]))

creo que el problema es el array del g_ammopackssaid esta tomando como valor el ID y no lo qe metes dentro.

Yo diria que en esa funcion menu_ap hagas un
client_print(id, print_chat, "NUMERO: %d",g_ammopackssaid[id])

y probas que numero te da... Ocea primero escrivis el numero lo almacena y una ves echo eso abajo en la funcion hace el Client print....

Proba de esta 2 maneras.

PHP Code:
public menu_ap(id

   
read_args(g_ammopackssaid[id], charsmax(g_ammopackssaid[id])) 
    
   if (
g_ammopacksaid[id] > g_ammopacks[id]) 
    { 
        
client_print(idprint_center"No te alcansan los ammopack."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    

     
        
// Alta condicion xd 
    
if (!(contain(g_expsaid[id], "0") != -|| contain(g_expsaid[id], "1") != -|| contain(g_expsaid[id], "2") != -|| contain(g_expsaid[id], "3") != -|| contain(g_expsaid[id], "4") != -|| contain(g_expsaid[id], "5") != -|| contain(g_expsaid[id], "6") != -|| contain(g_expsaid[id], "7") != -|| contain(g_expsaid[id], "8") != -|| contain(g_expsaid[id], "9") != -1)) 
    { 
        
client_print(idprint_center"Solo se admiten numeros."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    


    
client_print(idprint_chat"NUMERO: %d",g_ammopackssaid[id])

   
show_menu_players(id

   return 
PLUGIN_HANDLED 

y tmb proba asi

PHP Code:
public menu_ap(id

   new 
g_ammopackssaid[33]
   
read_args(g_ammopackssaidcharsmax(g_ammopackssaid)) 
    
   if (
g_ammopacksaid[id] > g_ammopacks[id]) 
    { 
        
client_print(idprint_center"No te alcansan los ammopack."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    

     
        
// Alta condicion xd 
    
if (!(contain(g_expsaid[id], "0") != -|| contain(g_expsaid[id], "1") != -|| contain(g_expsaid[id], "2") != -|| contain(g_expsaid[id], "3") != -|| contain(g_expsaid[id], "4") != -|| contain(g_expsaid[id], "5") != -|| contain(g_expsaid[id], "6") != -|| contain(g_expsaid[id], "7") != -|| contain(g_expsaid[id], "8") != -|| contain(g_expsaid[id], "9") != -1)) 
    { 
        
client_print(idprint_center"Solo se admiten numeros."
        
client_cmd(id"messagemode Ammo_packs"
        return 
PLUGIN_HANDLED 
    


    
client_print(idprint_chat"NUMERO: %d",g_ammopackssaid)

   
show_menu_players(id

   return 
PLUGIN_HANDLED 

Muy probable 100% para mi que con esta forma (Forma numero 2) te va a dar el numero que realmente colocas vos en el menssagemode.

Y decime que resultados te trae cada 1.

Para mi el error esta en el read_args que no toma o no lee variables de 2 dimenciones.

saludos
1) read_args(g_ammopackssaid[id], charsmax(g_ammopackssaid[id]))

Eso esta mal porque ya lo probe. (Tendria que ir g_ammopackssaid[ ] pero no anda)

2) Y despues que hago aca:
public menu_players? Solo creas g_ammopackssaid en el menu_ap S:
__________________
Gun Slinger is offline
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 09-21-2010 , 15:54   Re: [ES][ZP] Regalar ammo packs (alguna respuesta?)
#6

Uy capo podes probar lo que te dije ?sino no te puedo ayudar... Si pedis ayuda y empezas a cuestionar las cosas de los demas entonces hacelo solo y solucionalo solo y listo.

1) qures probar sin el charsmax hacelo pero proba la funcion que te escribi arriba quiero ver que NuMERO TE ESCRIBE Y CONTIENE LA VARIABLE.

2) NO SOLO CREO LA variable ahi sino que en las 2 funciones ahi 1 CLIENT_PRINT si supieras mirar el codigo creo que sabias a que quiero llegar o me refiero por favor proba las 2 opciones primero pone la Opcion 1 en tu code copia y pega el qe puse yo y proba haciendo el menssagemode y escribiendo 1 numero y luego te va aparecer en el say "NUMERO: XX" en la Opcion 2 va hacer lo mismo pero esta creada la variable sin una Array de Dimencion lo cual para mi el problema radica en la Variable de dimencion que el read_args no lee la varaible de dimension

Es cuestion de probar y ers lo que quiero que hagas y Decime los Resultados de ambos.

ah y que numero pusists en el messagemode.

saludos
p4rp4d30 is offline
Gun Slinger
Member
Join Date: Mar 2010
Old 09-21-2010 , 16:18   Re: [ES][ZP] Regalar ammo packs (alguna respuesta?)
#7

Quote:
Originally Posted by p4rp4d30 View Post
Uy capo podes probar lo que te dije ?sino no te puedo ayudar... Si pedis ayuda y empezas a cuestionar las cosas de los demas entonces hacelo solo y solucionalo solo y listo.
No te cuestione, solo dije que esto "read_args(g_ammopackssaid[id], charsmax(g_ammopackssaid[id]))" ya lo probe y no andaba, es mas, tira error al compilar.

Como dije, en la 1 tira error, en la 2 ni siquiera me lee los numeros xd (osea, me pone solo se admiten numeros. con lo cual ni siquiera llego a ver la cantidad de numeros).
__________________
Gun Slinger is offline
p4rp4d30
Veteran Member
Join Date: Mar 2007
Old 09-21-2010 , 16:47   Re: [ES][ZP] Regalar ammo packs
#8

saca esto de ambas funciones

PHP Code:
if (g_ammopacksaid[id] > g_ammopacks[id])  
    {  
        
client_print(idprint_center"No te alcansan los ammopack.")  
        
client_cmd(id"messagemode Ammo_packs")  
        return 
PLUGIN_HANDLED  
    
}  
      
        
// Alta condicion xd  
    
if (!(contain(g_expsaid[id], "0") != -|| contain(g_expsaid[id], "1") != -|| contain(g_expsaid[id], "2") != -|| contain(g_expsaid[id], "3") != -|| contain(g_expsaid[id], "4") != -|| contain(g_expsaid[id], "5") != -|| contain(g_expsaid[id], "6") != -|| contain(g_expsaid[id], "7") != -|| contain(g_expsaid[id], "8") != -|| contain(g_expsaid[id], "9") != -1))  
    {  
        
client_print(idprint_center"Solo se admiten numeros.")  
        
client_cmd(id"messagemode Ammo_packs")  
        return 
PLUGIN_HANDLED  
    

y proba

Si qures pone en ambos me da igual read_args(g_ammopackssaid[id], 33)

saludos
p4rp4d30 is offline
Destro-
Veteran Member
Join Date: Jun 2010
Location: $me->location();
Old 09-21-2010 , 17:31   Re: [ES][ZP] Regalar ammo packs
#9

Una pregunta,no esiste un plugin q hace eso,publico?
__________________
Destro- is offline
Ciio
Veteran Member
Join Date: Oct 2009
Location: Arica, Chile
Old 09-21-2010 , 18:01   Re: [ES][ZP] Regalar ammo packs
#10

http://forums.alliedmods.net/showthread.php?t=117658
__________________
Ciio is offline
Send a message via MSN to Ciio
 



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 00:30.


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