wangyang5008 发表于 2011-10-6 08:20:38

不需要那么麻烦
//Disables the CSDM welcome message
//This is useful if you only use CSDM as an engine
//Returns the old value. Pass -1 to do nothing.
native csdm_set_intromsg(value=-1);

这个就是怎样关闭CSDM welcome message的方法。
如果你不懂就算了,会的人一眼就看出来了

wangyang5008 发表于 2011-10-6 10:37:43

算了,源码发给你,自己修改吧/*
* csdm_main.sma
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csdm>
new D_PLUGIN[]        = "CSDM Main"
new D_ACCESS        = ADMIN_MAP
#define CSDM_OPTIONS_TOTAL                2
#define WELCOMEMSG_1    "* 老秋汉化最终版 @ CSDM 2.1.2!"
#define WELCOMEMSG_2    " Have fun my baby!"
new bool:g_StripWeapons = true
new bool:g_RemoveBomb = true
new g_StayTime
new g_drop_fwd
new g_options

//new g_MenuPages
new g_MainMenu = -1

public plugin_init()
{
        register_plugin(D_PLUGIN, CSDM_VERSION, "CSDM Team")
        csdm_set_intromsg( 0 );                //关闭CSDM广告信息
        register_clcmd("say respawn", "say_respawn")
        register_clcmd("say /respawn", "say_respawn")
        register_concmd("csdm_enable", "csdm_enable", D_ACCESS, "Enables CSDM")
        register_concmd("csdm_disable", "csdm_disable", D_ACCESS, "Disables CSDM")
        register_concmd("csdm_ctrl", "csdm_ctrl", D_ACCESS, "")
        register_concmd("csdm_reload", "csdm_reload", D_ACCESS, "Reloads CSDM Config")
        register_clcmd("csdm_menu", "csdm_menu", ADMIN_MENU, "CSDM Menu")
        register_clcmd("drop", "hook_drop")
       
        register_concmd("csdm_cache", "cacheInfo", ADMIN_MAP, "Shows cache information")
       
        AddMenuItem("死亡竞技", "csdm_menu", D_ACCESS, D_PLUGIN)
        g_MainMenu = menu_create("CSDM 设置菜单", "use_csdm_menu")
       
        new callback = menu_makecallback("hook_item_display")
        menu_additem(g_MainMenu, "Enable/Disable", "csdm_ctrl", D_ACCESS, callback)
        menu_additem(g_MainMenu, "Reload Config", "csdm_reload", D_ACCESS)
       
        g_drop_fwd = CreateMultiForward("csdm_HandleDrop", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL)
}


public plugin_natives()
{
        register_native("csdm_main_menu", "native_main_menu")
        register_native("csdm_set_mainoption", "__csdm_allow_option")
        register_native("csdm_fwd_drop", "__csdm_fwd_drop")
        register_library("csdm_main")
}

public client_putinserver( id )
        set_task( 5.0, "WelcomeMsg", id );

public WelcomeMsg( id ) {
        if( is_user_connected( id ) ) {
                client_print( id, print_chat, "%s", WELCOMEMSG_1 );
                client_print( id, print_chat, "%s", WELCOMEMSG_2 );
            }
}

public native_main_menu(id, num)
{
        return g_MainMenu
}

public __csdm_allow_option(id, num)
{
        new option = get_param(1)
       
        if (option <= 0 || option >= CSDM_OPTIONS_TOTAL)
        {
                log_error(AMX_ERR_NATIVE, "Invalid option number: %d", option)
                return 0
        }
       
        g_options = get_param(2)
       
        return 1
}

public __csdm_fwd_drop(id, num)
{
        new id = get_param(1)
        new wp = get_param(2)
        new name
       
        get_string(3, name, 31)
       
        return run_drop(id, wp, name)       
}

public csdm_Init(const version[])
{
        if (version == 0)
        {
                set_fail_state("CSDM failed to load.")
                return
        }
}

public csdm_CfgInit()
{       
        csdm_reg_cfg("settings", "read_cfg")
}

public cacheInfo(id, level, cid)
{
        if (!cmd_access(id, level, cid, 1))
                return PLUGIN_HANDLED
               
        new ar
        csdm_cache(ar)
       
        console_print(id, " Free tasks: respawn=%d, findweapon=%d", ar, ar)
        console_print(id, " Weapon removal cache: %d total, %d live", ar, ar)
        console_print(id, " Live tasks: %d (%d free)", ar, ar)
       
        return PLUGIN_HANDLED
}

public hook_drop(id)
{
        if (!csdm_active())
        {
                return
        }
       
        if (!is_user_connected(id))
        {
                return
        }
       
        new wp, c, a, name
        if (cs_get_user_shield(id))
        {
                //entirely different...
                wp = -1
                copy(name, 23, "weapon_shield")
        } else {
                if (read_argc() <= 1)
                {
                        wp = get_user_weapon(id, c, a)
                } else {
                        read_argv(1, name, 23)
                        wp = getWepId(name)
                }
        }

        run_drop(id, wp, name)
}

run_drop(id, wp, const name[])
{
        new ret
        ExecuteForward(g_drop_fwd, ret, id, wp, 0)
       
        if (ret == CSDM_DROP_REMOVE)
        {
                new _name
                if (name == 0)
                {
                        get_weaponname(wp, _name, 23)
                }
                csdm_remove_weapon(id, _name, 0, 1)
                return 1
        } else if (ret == CSDM_DROP_IGNORE) {
                return 0
        }
       
        if (g_StayTime > 20 || g_StayTime < 0)
        {
                return 0
        }
       
        if (wp)
        {
                remove_weapon(id, wp)
                return 1
        }
       
        return 0
}

public csdm_PostDeath(killer, victim, headshot, const weapon[])
{
        if (g_StayTime > 20 || g_StayTime < 0)
                return PLUGIN_CONTINUE

        new weapons, num, name
        new wp, slot, ret

        get_user_weapons(victim, weapons, num)

        for (new i=0; i<num; i++)
        {
                wp = weapons
                slot = g_WeaponSlots

                ExecuteForward(g_drop_fwd, ret, victim, wp, 1)

                if (ret == CSDM_DROP_REMOVE)
                {
                        get_weaponname(wp, name, 23)
                        csdm_remove_weapon(victim, name, 0, 1)
                } else if (ret == CSDM_DROP_IGNORE) {
                        continue
                } else {
                        if (slot == SLOT_PRIMARY || slot == SLOT_SECONDARY || slot == SLOT_C4)
                        {
                                remove_weapon(victim, wp)
                        }
                }
        }
       
        if (cs_get_user_shield(victim))
        {
                ExecuteForward(g_drop_fwd, ret, victim, -1, 1)
                if (ret == CSDM_DROP_REMOVE)
                {
                        csdm_remove_weapon(victim, "weapon_shield", 0, 1)
                } else if (ret == CSDM_DROP_IGNORE) {
                        /* do nothing */
                } else {
                        remove_weapon(victim, -1)
                }
        }
       
        return PLUGIN_CONTINUE
}

public csdm_PreSpawn(player, bool:fake)
{
        //we'll just have to back out for now
        if (cs_get_user_shield(player))
        {
                return
        }
        new team = get_user_team(player)
        if (g_StripWeapons)
        {
                if (team == _TEAM_T)
                {
                        if (cs_get_user_shield(player))
                        {
                                drop_with_shield(player, CSW_GLOCK18)
                        } else {
                                csdm_force_drop(player, "weapon_glock18")
                        }
                } else if (team == _TEAM_CT) {
                        if (cs_get_user_shield(player))
                        {
                                drop_with_shield(player, CSW_USP)
                        } else {
                                csdm_force_drop(player, "weapon_usp")
                        }
                }
        }
        if (team == _TEAM_T)
        {
                if (g_RemoveBomb)
                {
                        new weapons, num
                        get_user_weapons(player, weapons, num)
                        for (new i=0; i<num; i++)
                        {
                                if (weapons == CSW_C4)
                                {
                                        if (cs_get_user_shield(player))
                                        {
                                                drop_with_shield(player, CSW_C4)
                                        } else {
                                                csdm_force_drop(player, "weapon_c4")
                                        }
                                        break
                                }
                        }
                }
        }
}

remove_weapon(id, wp)
{
        new name
       
        if (wp == -1)
        {
                copy(name, 23, "weapon_shield")
        } else {
                get_weaponname(wp, name, 23)
        }

        if ((wp == CSW_C4) && g_RemoveBomb)
        {       
                csdm_remove_weapon(id, name, 0, 1)
        } else {
                if (wp != CSW_C4)
                {
                        csdm_remove_weapon(id, name, g_StayTime, 1)
                }
        }
}

public hook_item_display(player, menu, item)
{
        new paccess, command, call
       
        menu_item_getinfo(menu, item, paccess, command, 23, _, 0, call)
       
        if (equali(command, "csdm_ctrl"))
        {
                if (!csdm_active())
                {
                        menu_item_setname(menu, item, "Enable")
                } else {
                        menu_item_setname(menu, item, "Disable")
                }
        }
}

public read_cfg(readAction, line[], section[])
{
        if (readAction == CFG_READ)
        {
                new setting, sign, value;

                parse(line, setting, 23, sign, 2, value, 31);
               
                if (equali(setting, "strip_weapons"))
                {
                        g_StripWeapons = str_to_num(value) ? true : false
                } else if (equali(setting, "weapons_stay")) {
                        g_StayTime = str_to_num(value)
                } else if (equali(setting, "spawnmode")) {
                        new var = csdm_setstyle(value)
                        if (var)
                        {
                                log_amx("CSDM spawn mode set to %s", value)
                        } else {
                                log_amx("CSDM spawn mode %s not found", value)
                        }
                } else if (equali(setting, "remove_bomb")) {
                        g_RemoveBomb = str_to_num(value) ? true : false
                } else if (equali(setting, "enabled")) {
                        csdm_set_active(str_to_num(value))
                } else if (equali(setting, "spawn_wait_time")) {
                        csdm_set_spawnwait(str_to_float(value))
                }
        }
}

public csdm_reload(id, level, cid)
{
        if (!cmd_access(id, level, cid, 1))
                return PLUGIN_HANDLED
               
        new file = ""
        if (read_argc() >= 2)
        {
                read_argv(1, file, 32)
        }
               
        if (csdm_reload_cfg(file))
        {
                client_print(id, print_chat, " 配置文件已重新载入.")
        } else {
                client_print(id, print_chat, " 无法找到配置文件.")
        }
               
        return PLUGIN_HANDLED
}

wangyang5008 发表于 2011-10-6 10:38:42

public csdm_menu(id, level, cid)
{
        if (!cmd_access(id, level, cid, 1))
                return PLUGIN_HANDLED
       
        menu_display(id, g_MainMenu, 0)
       
        return PLUGIN_HANDLED
}

public csdm_ctrl(id, level, cid)
{
        if (!cmd_access(id, level, cid, 1))
                return PLUGIN_HANDLED
       
        csdm_set_active( csdm_active() ? 0 : 1 )
        client_print(id, print_chat, "CSDM active changed.")
       
        return PLUGIN_HANDLED
}

public use_csdm_menu(id, menu, item)
{
        if (item < 0)
                return PLUGIN_CONTINUE
       
        new command, paccess, call
        if (!menu_item_getinfo(g_MainMenu, item, paccess, command, 23, _, 0, call))
        {
                log_amx("Error: csdm_menu_item() failed (menu %d) (page %d) (item %d)", g_MainMenu, 0, item)
                return PLUGIN_HANDLED
        }
        if (paccess && !(get_user_flags(id) & paccess))
        {
                client_print(id, print_chat, "You do not have access to this menu option.")
                return PLUGIN_HANDLED
        }
       
        client_cmd(id, command)
       
        return PLUGIN_HANDLED
}

public csdm_enable(id, level, cid)
{
        if (!cmd_access(id, level, cid, 1))
                return PLUGIN_HANDLED

        csdm_set_active(1)
        client_print(id, print_chat, "CSDM enabled.")
       
        return PLUGIN_HANDLED       
}

public csdm_disable(id, level, cid)
{
        if (!cmd_access(id, level, cid, 1))
                return PLUGIN_HANDLED

        csdm_set_active(0)
        client_print(id, print_chat, "CSDM disabled.")
       
        return PLUGIN_HANDLED       
}

public say_respawn(id)
{
        if (g_options == CSDM_SET_DISABLED)
        {
                client_print(id, print_chat, " This command is disabled!")
                return PLUGIN_HANDLED
        }
       
        if (!is_user_alive(id) && csdm_active())
        {
                new team = get_user_team(id)
                if (team == _TEAM_T || team == _TEAM_CT)
                {
                        csdm_respawn(id)
                }
        }
       
        return PLUGIN_CONTINUE
}

wangyang5008 发表于 2011-10-6 10:41:56

以上是csdm_main.sma的源码,你自己修改编译吧,
这个是去掉了原有的广告,加入了自己的广告。这个是秋海岸的死亡服版本。
这个源码是他自己搞的。
不用修改csdm.dll文件.
这么简单的方法不用,哎。
有些人不懂装懂没办法。

wangyang5008 发表于 2011-10-6 10:44:57

lwj@cser 你的钱那么多,如果帮得上你,给我点钱啊妈的

wangyang5008 发表于 2011-10-6 10:46:58

我是穷疯了,哎哎哎
页: 1 [2]
查看完整版本: CSDM2.1.2运行时,屏幕上出现的两行聊天信息如何修改?