Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

merge money plugins


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Code:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "No RoundEnd Money Bonus"
#define VERSION "0.0.1"

const m_iAccount = 115

new bool:g_bIsRestarting
new bool:g_bIsNewRound
new gmsgMoney
new g_iNewRoundPlayerMoney[33]

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, "ConnorMcLeod" )

    register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
    register_event("TextMsg", "Event_TextMsg_Restart", "a", "2&#Game_C", "2&#Game_w")
    register_forward(FM_PlaybackEvent, "OnPlaybackEvent_Post", true)
    RegisterHam(Ham_Spawn, "player", "OnCBasePlayer_Spawn_Post", true)

    gmsgMoney = get_user_msgid("Money")
}

public Event_TextMsg_Restart()
{
    g_bIsRestarting = true
}

public Event_HLTV_New_Round()
{
    if( g_bIsRestarting )
    {
        g_bIsRestarting = false
        return
    }

    g_bIsNewRound = true
    set_msg_block(gmsgMoney, BLOCK_SET)

    new players[32], num, id
    get_players(players, num, "h")
    for(--num; num>=0; num--)
    {
        id = players[num]
        g_iNewRoundPlayerMoney[id] = get_pdata_int(id, m_iAccount)
    }
}

public OnCBasePlayer_Spawn_Post( id )
{
    if( g_bIsNewRound && is_user_alive(id) )
    {
        set_pdata_int(id, m_iAccount, g_iNewRoundPlayerMoney[id])
    }
}

public OnPlaybackEvent_Post()
{
    if( g_bIsNewRound )
    {
        g_bIsNewRound = false
        set_msg_block(gmsgMoney, BLOCK_NOT)
    }
}

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_pCvarKillMoney, g_pCvarTkMoney, g_pCvarMaxMoney, g_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_num( cs_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(iMsgId, iMsgDest, id)
{
    unregister_message(gmsgMoney, g_iMsgHookMoney)
    cs_set_money_value(id, g_iNewMoney)
    set_msg_arg_int(Money_Amount, ARG_LONG, g_iNewMoney)
}

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(id, current_total,0)        // so set user money to amx_startmoney
        money_total[id] = 0 // 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_begin( MSG_ONE , gmsg_Money , {0,0,0}, id )
    write_long(money_total[id]-ammount)
    write_byte(0)
    message_end()
   
    //send current money
    message_begin( MSG_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(id, level, cid)
{
    if(!cmd_access(id, level, cid, 3))
        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(players, num ,"e", "CT")
        }
        else if(target[1] == 'T' || target[1] == 't'){
            get_players(players, num ,"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(players, str_to_num(ammount))
   
    return PLUGIN_HANDLED
}


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

public restartround()
{
    for (new i=1; i<33; i++)
        money_total = 0
}

public _cs_get_user_money_ul(plug,param) {
    if(param != 1)
        return PLUGIN_HANDLED
   
    new id = get_param(1)
   
   
    if (id < 1 || 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 != 2 && param != 3 )
        return PLUGIN_HANDLED
   
    new id = get_param(1)
   
    if (id < 1 || 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 < 0) ammount = 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
}

could anyone help? all i want is to merge into one those plugins! shortly what exactly i want is that
1. Money are saved forever (whenever you enter, you got your money back <fvault, nvault?>)
2. When you enter the server you got 0$
3. When you kill some (even if you're ct or t) get +25$
4. When another rounds beginds you dont get that bonus!
5. To be Unlimited Money, default plugin, as you know over 16k
6. The Command amx_addmoney <nick> <ammount>
7. The Command amx_removemoney <nick> <ammont>

Thanks indeed!

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

×
×
  • Dodaj nową pozycję...