Raised This Month: $32 Target: $400
 8% 

respawn money


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 01-12-2019 , 08:26   respawn money
Reply With Quote #1

PHP Code:
/*    Formatright © 2010, ConnorMcLeod

    Kill Money is free software;
    you can redistribute it and/or modify it under the terms of the
    GNU General Public License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Kill Money; if not, write to the
    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <cstrike>
#include <fakemeta>

#define VERSION "0.1.1"

enum
{    
    
DeathMsg_KillerID 1// byte
    
DeathMsg_VictimID// byte
    
DeathMsg_IsHeadshot// byte
    
DeathMsg_TruncatedWeaponName // string
}

#define Money_Amount 1

new g_iMaxPlayers
#define IsPlayer(%1)    ( 1 <= %1 <= g_iMaxPlayers )

#define XTRA_OFS_PLAYER 5
#define m_iAccount 115
#define cs_set_money_value(%1,%2)    set_pdata_int(%1, m_iAccount, %2, XTRA_OFS_PLAYER)

new g_pCvarKillMoneyg_pCvarTkMoneyg_pCvarMaxMoneyg_pCvarKillMoneyHs

new g_iNewMoney
new g_iMsgHookMoney
new gmsgMoney

public plugin_init()
{
    
register_plugin("Kill Money"VERSION"ConnorMcLeod")

    
g_pCvarKillMoney register_cvar("amx_kill_money""1")
    
g_pCvarKillMoneyHs register_cvar("amx_kill_money_hs""1")
    
g_pCvarTkMoney register_cvar("amx_teamkill_money""-1")
    
g_pCvarMaxMoney register_cvar("amx_killmoney_maxmoney""16000")

    
register_event("DeathMsg""Event_DeathMsg""a")

    
g_iMaxPlayers get_maxplayers()
    
gmsgMoney get_user_msgid("Money")
    
}

public 
Event_DeathMsg()
{
    new 
iKiller read_data(DeathMsg_KillerID)
    if( 
IsPlayer(iKiller) && is_user_connected(iKiller) )
    {
        new 
iVictim read_data(DeathMsg_VictimID)
        if( 
iVictim != iKiller )
        {
            
g_iNewMoney clamp
                        

                            
cs_get_user_money(iKiller) + get_pcvar_numcs_get_user_team(iVictim) == cs_get_user_team(iKiller) ? g_pCvarTkMoney : (read_data(DeathMsg_IsHeadshot) ? g_pCvarKillMoneyHs g_pCvarKillMoney) ), 
                            
0
                            
get_pcvar_num(g_pCvarMaxMoney)
                        )
            
g_iMsgHookMoney register_message(gmsgMoney"Message_Money")
        }
    }
}

public 
Message_Money(iMsgIdiMsgDestid)
{
    
unregister_message(gmsgMoneyg_iMsgHookMoney)
    
cs_set_money_value(idg_iNewMoney)
    
set_msg_arg_int(Money_AmountARG_LONGg_iNewMoney)

is there a possibilty to add that amount of money that you get on new round/respawn on a cvar, i mean, i dont want to get any money on respawn, only 1 for every kill, but when rounds start you get more money, how could i change that?
EDIT: also to save the amount of money on steam id? is that possible? even if player retry, or he dissconect, when he came back he would have the same amount of money, is that possible,
PS: i put mp_startmoney to 1 but it still gives me 800, how can i put that to 1 too? :v

EDIT2: i fixed start money with this plugin
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define MONEY_TIER 8000 // DON'T MESS WITH, Money total at which the plugin switches over keeping track of money
new money_total[33// Keep track of peeps money if above MONEY_TIER
new gmsg_Money

new amx_maxmoney
new amx_startmoney

public client_connect(id)
{
    
set_cvar_float("mp_startmoney"801.0// So you can track when to change to amx_startmoney ammount, I know.. a crude method
    
money_total[id] = 0
}


public 
read_gmsg_Money(id) {
    if(!
is_user_connected(id)) return PLUGIN_HANDLED
    
    
new current_total read_data(1)
    
    if(
current_total == 801){         // If CS is spawning you with mp_startmoney default
        
current_total get_pcvar_num(amx_startmoney)      // current total is actually amx_startmoney
        
cs_set_user_money(idcurrent_total,0)         // so set user money to amx_startmoney
        
money_total[id] = // reset
    
}
    if(
current_total >= MONEY_TIER && !money_total[id]) // If first time above MONEY_TIER
    
{
        
money_total[id] = current_total // Keep track of current total
        
        
send_moneymsg(id,current_total-MONEY_TIER,read_data(2)) // send money msg of current total
        
        
return PLUGIN_CONTINUE
    
}
    if(
money_total[id]) // If was over tier on last money message
    
{
        
money_total[id] += current_total MONEY_TIER  // figure the term of current total - tier
        
        
if(money_total[id] < MONEY_TIER){  // If less then tier set user money to money_total[id] and stop keeping track
            
cs_set_user_money(id,money_total[id],1)
            
money_total[id] = 0
        
}
        else{
            
send_moneymsg(id,current_total-MONEY_TIER,read_data(2)) // else send money message
        
}
        
        return 
PLUGIN_CONTINUE
    
}
    
    return 
PLUGIN_CONTINUE
}

//change flash to ammount
public send_moneymsg(id,ammount,flash)
{
    
cs_set_user_money(id,MONEY_TIER,0//Set user money to tier ammount so easy to track add and subtract terms
    
    
new maxamount get_pcvar_num(amx_maxmoney)
    
    if(
money_total[id] >  maxamount)
        
money_total[id] =  maxamount
    
    
//send old money
    
message_beginMSG_ONE gmsg_Money , {0,0,0}, id )
    
write_long(money_total[id]-ammount)
    
write_byte(0)
    
message_end()
    
    
//send current money
    
message_beginMSG_ONE gmsg_Money , {0,0,0}, id //Send money message with ammount stored in money_total[id]
    
write_long(money_total[id])
    
write_byte(flash)
    
message_end()
}


public 
find_money_target(idlevelcid)
{
    if(!
cmd_access(idlevelcid3))
        return 
PLUGIN_HANDLED
    
    
new target[16], ammount[8], players[32]
    new 
num
    
    read_argv
(1,target,15)
    
read_argv(2,ammount,7)
    
    if(
target[0] == '@'){    //If trying to give a team money
        
if(target[1] == 'C' || target[1] == 'c'){
            
get_players(playersnum ,"e""CT")
        }
        else if(
target[1] == 'T' || target[1] == 't'){
            
get_players(playersnum ,"e""TERRORIST")
        }
        else{
            
console_print(id"*** No known team by that name. ***")
            return 
PLUGIN_HANDLED
        
}
    }
    else if(
target[0] == '#'){  //If trying to give a player(userid) money
        
new userid str_to_num(target[1])
        
players[0] = find_player("k"userid)
    }
    else{  
// else search for matching name to try and give money
        
players[0] = find_player("bl"target)
    }
    
    if(
players[0] == 0){  //If no target(s) could be found
        
console_print(id"*** No target(s) could be found. ***")
        return 
PLUGIN_HANDLED
    
}
    else 
        
give_money(playersstr_to_num(ammount))
    
    return 
PLUGIN_HANDLED
}


public 
give_money(players[], ammount)
{
    new 
i
    
while(players[i]){
        if(
money_total[players[i]]){
            
money_total[players[i]] += ammount // Keep track of current total
            
send_moneymsg(players[i],ammount,1// send money msg of current total
        
}
        else if( (
cs_get_user_money(players[i]) + ammount) >= MONEY_TIER){
            
money_total[players[i]] = cs_get_user_money(players[i]) + ammount // Keep track of current total
            
send_moneymsg(players[i],ammount,1// send money msg of current total
        
}
        else{
            
ammount += cs_get_user_money(players[i])
            
cs_set_user_money(players[i],ammount,1)
            
money_total[players[i]] = 0
        
}
        
        ++
i
    
}
}

public 
restartround() 

    for (new 
i=1i<33i++)
        
money_total[i] = 0


public 
_cs_get_user_money_ul(plug,param) {
    if(
param != 1)
        return 
PLUGIN_HANDLED
    
    
new id get_param(1)
    
    
    if (
id || id get_maxplayers()) {
        
log_error(AMX_ERR_NATIVE"Player out of range (%d)"id)
        return 
PLUGIN_HANDLED
        
} else {
        if (!
is_user_connected(id)) {
            
log_error(AMX_ERR_NATIVE"Invalid player %d"id)
            return 
PLUGIN_HANDLED
        
}
    }
    
    if(
money_total[id] < MONEY_TIER) {
        return 
cs_get_user_money(id)
    }
    else {
        return 
money_total[id]
    }
    
    return 
PLUGIN_HANDLED
    
}

public 
_cs_set_user_money_ul(plug,param) {
    if(
param != && param != )
        return 
PLUGIN_HANDLED
    
    
new id get_param(1)
    
    if (
id || id get_maxplayers()) {
        
log_error(AMX_ERR_NATIVE"Player out of range (%d)"id)
        return 
PLUGIN_HANDLED
        
} else {
        if (!
is_user_connected(id)) {
            
log_error(AMX_ERR_NATIVE"Invalid player %d"id)
            return 
PLUGIN_HANDLED
        
}
    }
    
    new 
ammount get_param(2)
    
    if(
ammount >= MONEY_TIER){
        new 
change ammount money_total[id]
        
money_total[id] = ammount
        send_moneymsg
(id,change,get_param(3))
    }
    else{
        if (
ammount 0ammount 0
        cs_set_user_money
(id,ammount,get_param(3))
        
money_total[id] = 0
    
}
    return 
PLUGIN_HANDLED    
}

public 
plugin_natives() {
    
register_library("money_ul")
    
register_native("cs_get_user_money_ul","_cs_get_user_money_ul")
    
register_native("cs_set_user_money_ul","_cs_set_user_money_ul")
}

public 
plugin_init()
{
    
register_plugin("Unlimited Money","2.0","NL)Ramon(NL")
    
    
register_event("Money","read_gmsg_Money","b")
    
register_event("TextMsg""restartround""a""2&#Game_C","2&#Game_w"
    
    
amx_startmoney register_cvar("amx_startmoney""1")
    
amx_maxmoney register_cvar("amx_maxmoney""16000")
    
    
register_concmd("amx_setmoney""find_money_target",ADMIN_LEVEL_A"{@team, #userid, or name(can be partial)} <ammount>")
    
    
gmsg_Money get_user_msgid("Money")
    
    return 
PLUGIN_CONTINUE

but i still havent found anything to save money even after reconnect, and removing respawn money

EDIT3: found ocixcrom save money plugin, so now i just need that amount of money you get at respawn removed
__________________
a simple act of caring creates an endless ripple.

Last edited by Nutu_; 01-12-2019 at 12:31.
Nutu_ is offline
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 02-03-2019 , 06:46   Re: respawn money
Reply With Quote #2

a little bump, is there any method to stop the money giving at every respawn? or atleast to change the amount?
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
eat1k
Senior Member
Join Date: Apr 2018
Old 02-03-2019 , 07:07   Re: respawn money
Reply With Quote #3

Use Money Rewards by the_hunter - https://dev-cs.ru/resources/470/. It requires ReAPI.
__________________

Last edited by eat1k; 02-03-2019 at 07:08.
eat1k is offline
Oops9499
Junior Member
Join Date: Dec 2017
Old 02-03-2019 , 15:37   Re: respawn money
Reply With Quote #4

Found this: https://forums.alliedmods.net/showthread.php?t=203573
Oops9499 is offline
Nutu_
AlliedModders Donor
Join Date: Mar 2016
Location: Germany
Old 02-03-2019 , 16:02   Re: respawn money
Reply With Quote #5

thank you Oops!
__________________
a simple act of caring creates an endless ripple.
Nutu_ is offline
Reply


Thread Tools
Display Modes

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 05:45.


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