baili1258 发表于 2007-12-3 11:41:43

关于购买武器的限制~

关于购买武器的限制~
我这边的服务器有安装一个插件,就是CT可以买AK,T可以买M4的插件~但插件的似乎是些问题,就当你用自己一键买枪,或用B菜单买的话,然后用/Ak,或者/m4 就又可以买多一把枪,就是说有可能
有一把M4,一把ak,,双枪,或者是三枪...
我想在源码上加一段检测,就是说检测他已经有了一把长枪,就不可以执行/ak /m4的命令..
但不知道要怎么加~
希望大家帮帮忙~~
还想加一个,可以每局都显示的文字...

zwfgdlc 发表于 2007-12-6 01:55:37

回复: 关于购买武器的限制~

你自己试下,没测试过

#include <amxmodx>
#include <cstrike>
#include <fun>
#define DEBUG
public plugin_init() {
register_plugin("buy m4&ak","2.3","kid741010")
register_clcmd("say /m4","M4")
register_clcmd("say /ak","AK")
register_cvar("m4cost","3100")
register_cvar("akcost","2500")
new Float:maptime = get_cvar_float("mp_timelimit")
if (maptime == 0.0)
maptime = 15.0
new Float:anntime = 60.0 * 5.0 // 5 minutes
if (maptime < 5.0)
anntime = maptime / 3.0
set_task(anntime, "Announcement", 0, "", 0, "b")
}
public client_putinserver(id) {
set_task(25.0, "Announcement", id)
return PLUGIN_CONTINUE
}
public Announcement(id) {
client_color(id, id, "CT可以買 AK & TS可以買 M4a1 say/m4 & say/ak")
}
public M4(id) {
new m4cost = get_cvar_num("m4cost")
new money = cs_get_user_money(id)
if(!is_user_alive(id)) {
client_print(id,print_chat,"活著才能買^n")
}
if(money < m4cost) {
client_print(id,print_chat,"金額不足^n")
}
if (cs_get_user_hasprim(id))   //增加行
client_print(id,print_chat,"你已经有主武器了,不能再购买^n")    //增加行
else {
cs_set_user_money(id,money-m4cost)
give_item(id, "weapon_m4a1")
}
}
public AK(id) {
new akcost = get_cvar_num("akcost")
new moneyy = cs_get_user_money(id)
if(!is_user_alive(id)) {
client_print(id,print_chat,"活著才能買^n")
}
if(moneyy < akcost) {
client_print(id,print_chat,"金額不足^n")
}
if (cs_get_user_hasprim(id))//增加行
client_print(id,print_chat,"你已经有主武器了,不能再购买^n")    //增加行
else {
cs_set_user_money(id,moneyy-akcost)
give_item(id, "weapon_ak47")
}
}

baili1258 发表于 2007-12-6 17:25:34

回复: 关于购买武器的限制~

谢谢咯~
问题解决了

Osker Lee 发表于 2007-12-18 21:02:47

回复: 关于购买武器的限制~

zwfgdlc楼主,能不能对插件再做一下改动,实现下面的功能:

1. 虽然通过输入/ak和/m4可以购买相应的武器,但得到的武器只有30发弹药,能不能改成拥有全部弹药(90发)呢?

2. 如何让玩家只能在购买时间内购买?

3. 如何让玩家只能在购买区内购买?

这样一来的话,那么插件就比较符合CS的游戏规则了.

zwfgdlc 发表于 2007-12-19 04:38:54

回复: 关于购买武器的限制~

随便改了下,没测试,自己试下.

#include <amxmodx>
#include <cstrike>
#include <fun>
#define DEBUG
new bool:buyswitch
public plugin_init() {
register_plugin("buy m4&ak","2.3","kid741010")
register_clcmd("say /m4","M4")
register_clcmd("say /ak","AK")
register_cvar("m4cost","3100")
register_cvar("akcost","2500")
new Float:maptime = get_cvar_float("mp_timelimit")
if (maptime == 0.0)
maptime = 15.0
new Float:anntime = 60.0 * 5.0 // 5 minutes
if (maptime < 5.0)
anntime = maptime / 3.0
set_task(anntime, "Announcement", 0, "", 0, "b")
register_event("ResetHUD", "eResetHUD", "a")
}
public client_putinserver(id) {
set_task(25.0, "Announcement", id)
return PLUGIN_CONTINUE
}
public Announcement(id) {
client_print(id, id, "CT可以買 AK & TS可以買 M4a1 say/m4 & say/ak")
}
public M4(id) {
new m4cost = get_cvar_num("m4cost")
new money = cs_get_user_money(id)
if(!is_user_alive(id)) {
client_print(id,print_chat,"活著才能買^n")
}
if(money < m4cost) {
client_print(id,print_chat,"金額不足^n")
}
if (cs_get_user_hasprim(id)){   //增加行
client_print(id,print_chat,"你已经有主武器了,不能再购买^n") //增加行
}
if(!cs_get_user_buyzone(id)){
client_print(id,print_chat,"只能在购买区购买武器")
}
if(!buyswitch){
client_print(id,print_chat,"购买武器时间已过")
}else {
cs_set_user_money(id,money-m4cost)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id,CSW_M4A1,90)
}
}
public AK(id) {
new akcost = get_cvar_num("akcost")
new moneyy = cs_get_user_money(id)
if(!is_user_alive(id)) {
client_print(id,print_chat,"活著才能買^n")
}
if(moneyy < akcost) {
client_print(id,print_chat,"金額不足^n")
}
if (cs_get_user_hasprim(id))//增加行
client_print(id,print_chat,"你已经有主武器了,不能再购买^n")    //增加行
if(!cs_get_user_buyzone(id)){
client_print(id,print_chat,"只能在购买区购买武器")
}
if(!buyswitch){
client_print(id,print_chat,"购买武器时间已过")
}else {
cs_set_user_money(id,moneyy-akcost)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id,CSW_AK47,90)
}
}

public eResetHUD()
{
new Float:buytime=get_cvar_float("mp_buytime")*60
buyswitch=true
set_task(buytime,"buy")
}
public buy()
{
buyswitch=false
}

Osker Lee 发表于 2007-12-19 14:30:04

回复: 关于购买武器的限制~

当玩家不在购买区或超过购买时间时,若输入命令/m4或/ak确实可以出现相应的提示,并且也无法购买武器了,已经解决上面的第2和第3个问题了.

但问题是,当玩家在购买区和购买时间内却居然无法通过用命令/m4和/ak来购买武器了!何解?

米高佐敦 发表于 2007-12-21 01:43:41

回复: 关于购买武器的限制~

Post by Osker Lee
当玩家不在购买区或超过购买时间时,若输入命令/m4或/ak确实可以出现相应的提示,并且也无法购买武器了,已经解决上面的第2和第3个问题了.

但问题是,当玩家在购买区和购买时间内却居然无法通过用命令/m4和/ak来购买武器了!何解?


好像是这样的,在1.6下是可以正常,1.5老毛病!

Osker Lee 发表于 2007-12-21 17:30:57

回复: 关于购买武器的限制~

我测试的结果是,CS1.5和CS1.6都不能通过输入命令/m4或/ak来买枪了.

zwfgdlc 发表于 2007-12-26 00:29:23

回复: 关于购买武器的限制~

是注册ResetHUD事件搞错了,

Osker Lee 发表于 2007-12-28 06:39:10

回复: 关于购买武器的限制~

真奇怪啊!玩家可以输入/m4购买相应的武器;但输入/ak时,游戏居然中断,直接弹出到桌面上了!:eek:
页: [1] 2
查看完整版本: 关于购买武器的限制~