QQ8 发表于 2005-8-30 12:26:17

请教金闪闪、 nwb13、wzf828、Hydralisk等源码高手

以下是Hydralisk修改的首局小刀+C4,第二局手雷+C4的源代码。
我想在第二局加上可用手枪类,于是就在下面红色代码处加上了

|| wpn == CSW_USP|| wpn == CSW_deagle||wpn == CSW_Glock

等几种手枪名称,结果编译的时候只有|| wpn == CSW_USP可以通过编译
其他都出错,请教为什么?

/* AMX Mod script.
*
* Knife Arena
*
* amx_knives 1 - restricts weapons to knives
*                                        0 - enables all weapons
*
* NOTE: Plugin adminvote from AMX 0.9.x required!!!
*/

#include <amxmod>
#include <amxmisc>

new bool:KnifeEnabled
new option
new round

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

        new arg1
        read_argv(1,arg1,3)
       
        if (equal(arg1,"1")||equali(arg1,"on")){
                KnifeEnabled = true
                unpause("b","switchweapon")
        }
        else if (equal(arg1,"0")||equali(arg1,"off")){
                KnifeEnabled = false
                pause("b","switchweapon")
        }
        else {
                console_print(id,"Knives Only Mode is %s",KnifeEnabled ? "enabled" : "disabled")
                return PLUGIN_HANDLED
        }

        console_print(id,"Knives Only Mode %s",KnifeEnabled ? "enabled" : "disabled")
        client_print(0,print_center,"Knives Only Mode Has Been %s!",KnifeEnabled ? "Enabled" : "Disabled")
       
        engclient_cmd(0,"weapon_knife")
                       
        set_hudmessage(0, 100, 0, 0.05, 0.65, 2, 0.02, 10.0, 0.01, 0.1, 2)       
        show_hudmessage(0,KnifeEnabled ? "Knives Only Allowed" : "All Guns Allowed" )
        return PLUGIN_HANDLED
}

public switchweapon(id){
        new wpn = read_data(2)
        if (wpn == CSW_C4) return PLUGIN_CONTINUE
        if (round < get_cvar_num("amx_kniferound") && (wpn == CSW_HEGRENADE || wpn == CSW_SMOKEGRENADE || wpn == CSW_FLASHBANG)) return PLUGIN_CONTINUE
        engclient_cmd(id,"weapon_knife")
        return PLUGIN_CONTINUE
}

new votepistols[] = "\yAMX %s Knives Only Mode?\w^n^n1. Yes^n2. No"

public vote_knives(id){
        new Float:voting = get_cvar_float("amx_last_voting")
        if (voting > get_gametime()){
                client_print(id,print_chat,"* There is already one voting...")
                return PLUGIN_HANDLED
        }
        if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()) {
                client_print(id,print_chat,"* Voting not allowed at this time...")
                return PLUGIN_HANDLED
        }
        new menu_msg
        format(menu_msg,255,votepistols,KnifeEnabled ? "Disable" : "Enable")
        new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
        set_cvar_float("amx_last_voting",get_gametime() + vote_time )
        show_menu(0,(1<<0)|(1<<1),menu_msg,floatround(vote_time))
        set_task(vote_time,"check_votes")
        client_print(0,print_chat,"* Voting has started...")
        option=option=0
        return PLUGIN_HANDLED        
}

public vote_count(id,key){
        if ( get_cvar_float("amx_vote_answers") ) {
                new name
                get_user_name(id,name,31)
                client_print(0,print_chat,"* %s voted %s", name, key ? "against" : "for" )
        }
        ++option
        return PLUGIN_HANDLED
}

public check_votes(id){
        if (option > option){
                server_cmd("amx_knives %s", KnifeEnabled ? "off" : "on" )
                client_print(0,print_chat,"* Voting successful (yes ^"%d^") (no ^"%d^").",option,option)
        }
        else{
                client_print(0,print_chat,"* Voting failed (yes ^"%d^") (no ^"%d^").",option,option)
        }
        return PLUGIN_CONTINUE
}

public end_round(){
        if (round >0)
          round --
        else
          round = 0
        if (!round)
                pause("b","switchweapon")
        else
          unpause("b","switchweapon")
        return PLUGIN_CONTINUE
}

public reset_round(){
        round = get_cvar_num("amx_kniferound")
        if (round >0) unpause("b","switchweapon")
        return PLUGIN_CONTINUE
}

public reset_player(id){
        if (round>0){
                new sz
                new len = format(sz,89," 还有%i局为刀战模式。",round)
                if (round < get_cvar_num("amx_kniferound")) format(sz,89-len,"^n 但是本局您可以使用手雷.")
                set_hudmessage(200,0,0,-1.0,0.35,1,6.0,12.0,0.3,0.3,5)
                show_hudmessage(id,sz)
        }
}

public plugin_init() {
        register_plugin("Knife Arena","0.9","tcquest78")
        register_cvar("amx_kniferound","2")
        register_event("CurWeapon","switchweapon","be","1=1","2!29")
        register_concmd("amx_knives","amx_enableknife",ADMIN_LEVEL_B,"<1|0> - knives only mode")
        register_clcmd("say /voteknives","vote_knives",0,"- start voting session for knives only mode")
        register_menucmd(register_menuid("Knives Only Mode?"),(1<<0)|(1<<1),"vote_count")
        register_event("SendAudio", "end_round", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin", "2=%!MRAD_rounddraw")
        register_event("TextMsg", "reset_round", "a", "2&#Game_C", "2&#Game_w")
        register_event("ResetHUD","reset_player","b")
        round = get_cvar_num("amx_kniferound")
        if (!round) pause("b","switchweapon")
        return PLUGIN_CONTINUE
}

nwb13 发表于 2005-8-30 12:55:17

回复: 请教金闪闪、 nwb13、wzf828、Hydralisk等源码高手

注意大写,应该是
CSW_DEAGLE
CSW_GLOCK18
CSW_USP

QQ8 发表于 2005-8-30 14:49:50

回复: 请教金闪闪、 nwb13、wzf828、Hydralisk等源码高手

感谢nwb13
没想到还要分大小写
起初还以为他故意用大写 :cold:

顺便问一下
还有三支手枪的名称不是很了解

SIG P228
FN Five-seveN
Dual Beretta Elites
对应的枪支代码是什么呢?

nwb13 发表于 2005-8-30 16:00:06

回复: 请教金闪闪、 nwb13、wzf828、Hydralisk等源码高手

自己在include目录里翻翻那些inc文件
页: [1]
查看完整版本: 请教金闪闪、 nwb13、wzf828、Hydralisk等源码高手