AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Spanish (https://forums.alliedmods.net/forumdisplay.php?f=135)
-   -   [SOLUCIONADO] Furien Donar (https://forums.alliedmods.net/showthread.php?t=214675)

arslan 04-29-2013 15:15

[SOLUCIONADO] Furien Donar
 
Alguien me podria ayudar con el plugin de donar:
Mi problema es esta bien todo pero cuando pongo dineros para donar ni me kita dineros al hora de donar y ni le da dineros aqui os dejo el code:

PHP Code:

#include <amxmodx>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "Donar"
#define VERSION "1.3"
#define AUTHOR "Stereo"

const MAX_PLAYERS 32

new gidPlayer[33]
new 
g_msgSayText

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /donar""GiveMoneyMenu")
    
register_clcmd("say .donar""GiveMoneyMenu")
    
register_clcmd("say !donar""GiveMoneyMenu")
    
register_clcmd("say donar""GiveMoneyMenu")

    
g_msgSayText get_user_msgid("SayText")
}


//Menu donar
public GiveMoneyMenu(id)
{
    static 
opcion[64]
    
    
formatex(opcioncharsmax(opcion),"Selecciona a un jugador:")
    new 
iMenu menu_create(opcion"elejir")
    
    new 
players[32], pnumtempid
    
new name[32], szTempid[10]
    
    
get_players(playerspnum"ch")
    
    for( new 
ii<pnumi++ )
    {
        
tempid players[i]
        
        if(
cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED && is_user_connected(tempid) || cs_get_user_team(tempid) == CS_TEAM_SPECTATOR && is_user_connected(tempid) || !is_user_connected(tempid) ) 
            continue;
        
        
                
        
get_user_name(tempidname31)
        
num_to_str(tempidszTempid9)
        
        
formatex(opcioncharsmax(opcion), "\w%s"name)
        
menu_additem(iMenuopcionszTempid0)
    }
    
    
menu_display(idiMenu)
    return 
PLUGIN_HANDLED
}

public 
elejir(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    menu_item_getinfo
(menuitemAccessData,5Name63Callback)
    
    new 
tempid str_to_num(Data)
 
    
gidPlayer[id] = tempid
    client_cmd
(id"messagemode Introducir_Dinero")
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
player(id)
{
    new 
say[300]
    
read_args(saycharsmax(say))
        
    
remove_quotes(say)
        
    if(!
is_str_num(say) || equal(say""))
        return 
PLUGIN_HANDLED
        
    frpacks
(idsay)    
    
    return 
PLUGIN_CONTINUE
}

frpacks(idsay[]) {
    new 
amount str_to_num(say)
    new 
victim gidPlayer[id]
    new 
money cs_get_user_money(id)
    
    new 
vname[32], idname[32]
        
    if( 
victim && is_user_connected(id) && is_user_connected(victim) )
    {
        
get_user_name(victimvname31)
        
get_user_name(ididname31)
        
        if(
amount >= money)
        {
            
client_print(idprint_chat"No puedes donar cantidades que no tienes :|")
        }
        if(
money >= amount)
        {
            
cs_set_user_money(idcs_get_user_money(id) - amount)
            
cs_set_user_money(victimcs_get_user_money(victim) + amount)
            
ChatColor(0"!g[Furien] !yEl Jugador !g%s !yha donado !g%d !yal jugador !g%s"idnameamountvname)
        }
    }
    return 
PLUGIN_HANDLED
}  

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    if (
idplayers[0] = id
    
else get_players(playerscount"ch")
    for (new 
0counti++)
    {
        if (
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_players[i])
            
write_byte(players[i])
            
write_string(msg)
            
message_end()
        }
    }



xGreat 04-30-2013 15:09

Re: [Ayuda] Furien Donar
 
pero ahí en ningún momento se llama a la public "player(id)"

arslan 04-30-2013 15:13

Re: [Ayuda] Furien Donar
 
Quote:

Originally Posted by xGreat (Post 1943128)
pero ahí en ningún momento se llama a la public "player(id)"

Y eso:
PHP Code:

public player(id

    new 
say[300
    
read_args(saycharsmax(say)) 
         
    
remove_quotes(say
         
    if(!
is_str_num(say) || equal(say"")) 
        return 
PLUGIN_HANDLED 
         
    frpacks
(idsay)     
     
    return 
PLUGIN_CONTINUE 



xGreat 04-30-2013 15:15

Re: [Ayuda] Furien Donar
 
Quote:

Originally Posted by arslan (Post 1943135)
Y eso:
PHP Code:

public player(id

    new 
say[300
    
read_args(saycharsmax(say)) 
         
    
remove_quotes(say
         
    if(!
is_str_num(say) || equal(say"")) 
        return 
PLUGIN_HANDLED 
         
    frpacks
(idsay)     
     
    return 
PLUGIN_CONTINUE 



Por eso digo , nunca se llama , la public esta pero no es llamada

arslan 04-30-2013 15:17

Re: [Ayuda] Furien Donar
 
Quote:

Originally Posted by xGreat (Post 1943138)
Por eso digo , nunca se llama , la public esta pero no es llamada

A vale, y como puedo hacer eso?

MLZz3 04-30-2013 15:20

Re: [Ayuda] Furien Donar
 
Creo que te falta código o algo, la include "HamSandwich" la tienes puesta pero nunca la utilizas, igual que la variable global "const MAX_PLAYERS = 32;", el "public player( id )" que es done hace la función de dar el dinero la tienes "flotando" osea nunca lo unes a un código (no se explicar bien), por esta razón nunca te quitara ni tampoco dará el dinero...

PD: Jajajja @xGreat mientras escribía y viendo el partido del RM vs BVB te me adelantaste jeje

Geoslide 04-30-2013 15:21

Re: [Ayuda] Furien Donar
 
Quote:

Originally Posted by MLZz3 (Post 1943147)
Creo que te falta código o algo, la include "HamSandwich" la tienes puesta pero nunca la utilizas, igual que la variable global "const MAX_PLAYERS = 32;", el "public player( id )" que es done hace la función de dar el dinero la tienes "flotando" osea nunca lo unes a un código (no se explicar bien), por esta razón nunca te quitara ni tampoco dará el dinero...

naa


saca ese chatcolor que no sirve

PHP Code:

#include <amxmodx> 
#include <hamsandwich> 
#include <cstrike> 

#define PLUGIN "Donar" 
#define VERSION "1.3" 
#define AUTHOR "Stereo" 

const MAX_PLAYERS 32 

new gidPlayer[33
new 
g_msgSayText 

public plugin_init() { 
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_clcmd("say /donar""GiveMoneyMenu"
    
register_clcmd("say .donar""GiveMoneyMenu"
    
register_clcmd("say !donar""GiveMoneyMenu"
    
register_clcmd("say donar""GiveMoneyMenu"
    
register_clcmd("Introducir_Dinero""player")
    
    
g_msgSayText get_user_msgid("SayText"



//Menu donar 
public GiveMoneyMenu(id

    static 
opcion[64
    
    
formatex(opcioncharsmax(opcion),"Selecciona a un jugador:"
    new 
iMenu menu_create(opcion"elejir"
    
    new 
players[32], pnumtempid 
    
new name[32], szTempid[10
    
    
get_players(playerspnum"ch"
    
    for( new 
ii<pnumi++ ) 
    { 
        
tempid players[i
        
        if(
cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED && is_user_connected(tempid) || cs_get_user_team(tempid) == CS_TEAM_SPECTATOR && is_user_connected(tempid) || !is_user_connected(tempid) )  
            continue; 
        
        
        
        
get_user_name(tempidname31
        
num_to_str(tempidszTempid9
        
        
formatex(opcioncharsmax(opcion), "\w%s"name
        
menu_additem(iMenuopcionszTempid0
    } 
    
    
menu_display(idiMenu
    return 
PLUGIN_HANDLED 


public 
elejir(idmenuitem

    if( 
item == MENU_EXIT 
    { 
        
menu_destroy(menu
        return 
PLUGIN_HANDLED 
    

    
    new 
Data[6], Name[64
    new 
AccessCallback 
    menu_item_getinfo
(menuitemAccessData,5Name63Callback
    
    new 
tempid str_to_num(Data
    
    
gidPlayer[id] = tempid 
    client_cmd
(id"messagemode Introducir_Dinero"
    
    
menu_destroy(menu
    return 
PLUGIN_HANDLED 


public 
player(id

    new 
say[300
    
read_args(saycharsmax(say)) 
    
    
remove_quotes(say
    
    if(!
is_str_num(say) || equal(say"")) 
        return 
PLUGIN_HANDLED 
    
    frpacks
(idsay)     
    
    return 
PLUGIN_CONTINUE 


frpacks(idsay[]) { 
    new 
amount str_to_num(say
    new 
victim gidPlayer[id
    new 
money cs_get_user_money(id
    
    new 
vname[32], idname[32
    
    if( 
victim && is_user_connected(id) && is_user_connected(victim) ) 
    { 
        
get_user_name(victimvname31
        
get_user_name(ididname31
        
        if(
amount >= money
        { 
            
client_print(idprint_chat"No puedes donar cantidades que no tienes :|"
        } 
        if(
money >= amount
        { 
            
cs_set_user_money(idcs_get_user_money(id) - amount
            
cs_set_user_money(victimcs_get_user_money(victim) + amount
            
ChatColor(0"!g[Furien] !yEl Jugador !g%s !yha donado !g%d !yal jugador !g%s"idnameamountvname
        } 
    } 
    return 
PLUGIN_HANDLED 
}   

stock ChatColor(const id, const input[], any:...) 

    new 
count 1players[32
    static 
msg[191
    
vformat(msg190input3
    
    
replace_all(msg190"!g""^4"
    
replace_all(msg190"!y""^1"
    
replace_all(msg190"!t""^3"
    
    if (
idplayers[0] = id 
    
else get_players(playerscount"ch"
    for (new 
0counti++) 
    { 
        if (
is_user_connected(players[i])) 
        { 
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_players[i]) 
            
write_byte(players[i]) 
            
write_string(msg
            
message_end() 
        } 
    } 



xGreat 04-30-2013 15:27

Re: [Ayuda] Furien Donar
 
Quote:

Originally Posted by Geoslide (Post 1943148)
naa


saca ese chatcolor que no sirve

PHP Code:

#include <amxmodx> 
#include <hamsandwich> 
#include <cstrike> 

#define PLUGIN "Donar" 
#define VERSION "1.3" 
#define AUTHOR "Stereo" 

const MAX_PLAYERS 32 

new gidPlayer[33
new 
g_msgSayText 

public plugin_init() { 
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_clcmd("say /donar""GiveMoneyMenu"
    
register_clcmd("say .donar""GiveMoneyMenu"
    
register_clcmd("say !donar""GiveMoneyMenu"
    
register_clcmd("say donar""GiveMoneyMenu"
    
register_clcmd("Introducir_Dinero""player")
    
    
g_msgSayText get_user_msgid("SayText"



//Menu donar 
public GiveMoneyMenu(id

    static 
opcion[64
    
    
formatex(opcioncharsmax(opcion),"Selecciona a un jugador:"
    new 
iMenu menu_create(opcion"elejir"
    
    new 
players[32], pnumtempid 
    
new name[32], szTempid[10
    
    
get_players(playerspnum"ch"
    
    for( new 
ii<pnumi++ ) 
    { 
        
tempid players[i
        
        if(
cs_get_user_team(tempid) == CS_TEAM_UNASSIGNED && is_user_connected(tempid) || cs_get_user_team(tempid) == CS_TEAM_SPECTATOR && is_user_connected(tempid) || !is_user_connected(tempid) )  
            continue; 
        
        
        
        
get_user_name(tempidname31
        
num_to_str(tempidszTempid9
        
        
formatex(opcioncharsmax(opcion), "\w%s"name
        
menu_additem(iMenuopcionszTempid0
    } 
    
    
menu_display(idiMenu
    return 
PLUGIN_HANDLED 


public 
elejir(idmenuitem

    if( 
item == MENU_EXIT 
    { 
        
menu_destroy(menu
        return 
PLUGIN_HANDLED 
    

    
    new 
Data[6], Name[64
    new 
AccessCallback 
    menu_item_getinfo
(menuitemAccessData,5Name63Callback
    
    new 
tempid str_to_num(Data
    
    
gidPlayer[id] = tempid 
    client_cmd
(id"messagemode Introducir_Dinero"
    
    
menu_destroy(menu
    return 
PLUGIN_HANDLED 


public 
player(id

    new 
say[300
    
read_args(saycharsmax(say)) 
    
    
remove_quotes(say
    
    if(!
is_str_num(say) || equal(say"")) 
        return 
PLUGIN_HANDLED 
    
    frpacks
(idsay)     
    
    return 
PLUGIN_CONTINUE 


frpacks(idsay[]) { 
    new 
amount str_to_num(say
    new 
victim gidPlayer[id
    new 
money cs_get_user_money(id
    
    new 
vname[32], idname[32
    
    if( 
victim && is_user_connected(id) && is_user_connected(victim) ) 
    { 
        
get_user_name(victimvname31
        
get_user_name(ididname31
        
        if(
amount >= money
        { 
            
client_print(idprint_chat"No puedes donar cantidades que no tienes :|"
        } 
        if(
money >= amount
        { 
            
cs_set_user_money(idcs_get_user_money(id) - amount
            
cs_set_user_money(victimcs_get_user_money(victim) + amount
            
ChatColor(0"!g[Furien] !yEl Jugador !g%s !yha donado !g%d !yal jugador !g%s"idnameamountvname
        } 
    } 
    return 
PLUGIN_HANDLED 
}   

stock ChatColor(const id, const input[], any:...) 

    new 
count 1players[32
    static 
msg[191
    
vformat(msg190input3
    
    
replace_all(msg190"!g""^4"
    
replace_all(msg190"!y""^1"
    
replace_all(msg190"!t""^3"
    
    if (
idplayers[0] = id 
    
else get_players(playerscount"ch"
    for (new 
0counti++) 
    { 
        if (
is_user_connected(players[i])) 
        { 
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_players[i]) 
            
write_byte(players[i]) 
            
write_string(msg
            
message_end() 
        } 
    } 



Esa forma esta bien , pero tampoco se esta usando "new g_msgSayText" y "g_msgSayText = get_user_msgid("SayText") "

MLZz3 04-30-2013 15:34

Re: [Ayuda] Furien Donar
 
Bueno, no se si funcionara no probé...

PHP Code:

/* Plugin generated by AMX/X-Studio. */

#include <amxmodx>
#include <cstrike>

#define VERSION "1.3"

new g_iMaxPlayers;

public 
plugin_init( )
{
    
register_plugin"[FM] Addon: Donate Money"VERSION"Stereo" );
    
    
register_clcmd"say /donar""ClCmd_DonateMoney" );
    
    
register_clcmd"ENTER_MONEY""ClCmd_ENTER_MONEY" );
    
    
g_iMaxPlayers get_maxplayers( );


public 
ClCmd_DonateMoneyid 
{
    new 
iName32 ], iNum10 ], iText64 ];
    new 
iMenu menu_create"Elige un jugador:""DonateMoney_Handler" );
    
    for( new 
1<= g_iMaxPlayersi++ )
    {
        if( !
is_user_connected
        || 
cs_get_user_team) == CS_TEAM_UNASSIGNED && is_user_connected
        || 
cs_get_user_team) == CS_TEAM_SPECTATOR && is_user_connected) )
            continue;
        
        
get_user_nameiiNamecharsmaxiName ) );
        
num_to_striiNumcharsmaxiNum ) );
        
        
formatexiTextcharsmaxiText ), "%s"iName );
        
        
menu_additemiMenuiTextiNum);
    }
    
    
menu_setpropiMenuMPROP_BACKNAME"Anterior" ); 
    
menu_setpropiMenuMPROP_NEXTNAME"Siguiente" );
    
menu_setpropiMenuMPROP_EXITNAME"Salir" );
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
    
menu_displayidiMenu);
    
    return 
PLUGIN_HANDLED;
}

public 
DonateMoney_HandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }
    
    new 
iAccessiData], iName64 ], iCallBack
    
menu_item_getinfoiMenuiItemiAccessiDatacharsmaxiData ), iNamecharsmaxiName ), iCallBack ); 
    
    new 
iPlayer str_to_numiData );
    
    if( !
is_user_connectediPlayer ) )
    {
        
client_printidprint_chat"[AMX/X] El jugador se ha desconectado!" );
        return 
PLUGIN_HANDLED;
    }
    
    
client_cmd (id"messagemode ENTER_MONEY" );
    
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

public 
ClCmd_ENTER_MONEYid 

    new 
iSay256 ];
    
read_argsiSaycharsmaxiSay ) );
    
    
remove_quotesiSay );
    
    if( !
is_str_numiSay ) || equaliSay"0" ) || equaliSay"" ) );
        return 
PLUGIN_HANDLED;
    
    
GiveMoneyidiSay );
    
    return 
PLUGIN_CONTINUE;


GiveMoneyidiSay[ ] )
{
    new 
iPSelected32 ], iAmountiMoney;
    
iAmount str_to_numiSay );
    
iMoney cs_get_user_moneyid );
    
    new 
iName32 ], iPSName32 ];
    
    if( 
iPSelected && is_user_connectedid ) && is_user_connectediPSelected ) )
    {
        
get_user_nameidiNamecharsmaxiName ) );
        
get_user_nameiPSelectediPSNamecharsmaxiPSName ) );
        
        if( 
iAmount >= iMoney 
        { 
            
client_printidprint_chat"[AMX/X] No puedes donar mas dinero del que tienes!" );
        }
        else if( 
iMoney >= iAmount )
        { 
            
cs_set_user_moneyidcs_get_user_moneyid ) - iAmount );
            
cs_set_user_moneyiPSelectedcs_get_user_moneyiPSelected ) + iAmount );
            
            
client_print0print_chat"[AMX/X] %s ha donado $%d a %s!"iNameiAmountiPSName );
        }
    }
    return 
PLUGIN_HANDLED;



arslan 04-30-2013 15:52

Re: [Ayuda] Furien Donar
 
Quote:

Originally Posted by MLZz3 (Post 1943160)
Bueno, no se si funcionara no probé...

PHP Code:

/* Plugin generated by AMX/X-Studio. */

#include <amxmodx>
#include <cstrike>

#define VERSION "1.3"

new g_iMaxPlayers;

public 
plugin_init( )
{
    
register_plugin"[FM] Addon: Donate Money"VERSION"Stereo" );
    
    
register_clcmd"say /donar""ClCmd_DonateMoney" );
    
    
register_clcmd"ENTER_MONEY""ClCmd_ENTER_MONEY" );
    
    
g_iMaxPlayers get_maxplayers( );


public 
ClCmd_DonateMoneyid 
{
    new 
iName32 ], iNum10 ], iText64 ];
    new 
iMenu menu_create"Elige un jugador:""DonateMoney_Handler" );
    
    for( new 
1<= g_iMaxPlayersi++ )
    {
        if( !
is_user_connected
        || 
cs_get_user_team) == CS_TEAM_UNASSIGNED && is_user_connected
        || 
cs_get_user_team) == CS_TEAM_SPECTATOR && is_user_connected) )
            continue;
        
        
get_user_nameiiNamecharsmaxiName ) );
        
num_to_striiNumcharsmaxiNum ) );
        
        
formatexiTextcharsmaxiText ), "%s"iName );
        
        
menu_additemiMenuiTextiNum);
    }
    
    
menu_setpropiMenuMPROP_BACKNAME"Anterior" ); 
    
menu_setpropiMenuMPROP_NEXTNAME"Siguiente" );
    
menu_setpropiMenuMPROP_EXITNAME"Salir" );
    
menu_setpropiMenuMPROP_EXITMEXIT_ALL );
    
    
menu_displayidiMenu);
    
    return 
PLUGIN_HANDLED;
}

public 
DonateMoney_HandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }
    
    new 
iAccessiData], iName64 ], iCallBack
    
menu_item_getinfoiMenuiItemiAccessiDatacharsmaxiData ), iNamecharsmaxiName ), iCallBack ); 
    
    new 
iPlayer str_to_numiData );
    
    if( !
is_user_connectediPlayer ) )
    {
        
client_printidprint_chat"[AMX/X] El jugador se ha desconectado!" );
        return 
PLUGIN_HANDLED;
    }
    
    
client_cmd (id"messagemode ENTER_MONEY" );
    
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

public 
ClCmd_ENTER_MONEYid 

    new 
iSay256 ];
    
read_argsiSaycharsmaxiSay ) );
    
    
remove_quotesiSay );
    
    if( !
is_str_numiSay ) || equaliSay"0" ) || equaliSay"" ) );
        return 
PLUGIN_HANDLED;
    
    
GiveMoneyidiSay );
    
    return 
PLUGIN_CONTINUE;


GiveMoneyidiSay[ ] )
{
    new 
iPSelected32 ], iAmountiMoney;
    
iAmount str_to_numiSay );
    
iMoney cs_get_user_moneyid );
    
    new 
iName32 ], iPSName32 ];
    
    if( 
iPSelected && is_user_connectedid ) && is_user_connectediPSelected ) )
    {
        
get_user_nameidiNamecharsmaxiName ) );
        
get_user_nameiPSelectediPSNamecharsmaxiPSName ) );
        
        if( 
iAmount >= iMoney 
        { 
            
client_printidprint_chat"[AMX/X] No puedes donar mas dinero del que tienes!" );
        }
        else if( 
iMoney >= iAmount )
        { 
            
cs_set_user_moneyidcs_get_user_moneyid ) - iAmount );
            
cs_set_user_moneyiPSelectedcs_get_user_moneyiPSelected ) + iAmount );
            
            
client_print0print_chat"[AMX/X] %s ha donado $%d a %s!"iNameiAmountiPSName );
        }
    }
    return 
PLUGIN_HANDLED;



me da:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

Error: Empty statement on line 83
Warning: Loose indentation on line 84
Warning: Unreachable code on line 86
Warning: Loose indentation on line 86
Error: Array must be indexed (variable "iPSelected") on line 99
Error: Argument type mismatch (argument 1) on line 102
Error: Argument type mismatch (argument 1) on line 111

4 Errors.
Could not locate output file C:\Users\Arslan\Desktop\prueba.amx (compile failed).

ERRORES


All times are GMT -4. The time now is 20:47.

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