让bot每局选用不同的僵尸类型

Home Home
引用 | 編輯 lydjjlyd
2014-01-21 22:35
樓主
推文 x0
我发现第一局开始,所有bot都是第一种默认僵尸,每当感染,bot会自动选择一个僵尸类型,可是bot始终用当时他选的那一种僵尸类型,我看什么nst这些服务器不会记住你选的僵尸类型,每当感染会自动弹出僵尸类型选择,所以我打nst时,bot就可以换不同的僵尸类型,所以我想每当被感染自动让bot选择僵尸类型,那么每一局种类就不一样了,大大能不能帮帮小弟。


随便问一下能不能每局开始只有刀,枪要自己买,不记上一轮的枪,否则僵尸只有被虐的。

獻花 x0
引用 | 編輯 岳岳
2014-01-22 00:07
1樓
  
下面是引用 lydjjlyd 於 2014-01-21 22:35 發表的 弱弱最后问这一个问题,因为游戏也改的差不多了。,|让bot每局选用不同的僵尸类型: 到引言文
我发现第一局开始,所有bot都是第一种默认僵尸,每当感染,bot会自动选择一个僵尸类型,可是bot始终用当时他选的那一种僵尸类型,我看什么nst这些服务器不会记住你选的僵尸类型,每当感染会自动弹出僵尸类型选择,所以我打nst时,bot就可以换不同的僵尸类型,所以我想每当被感染自动让bot选择僵尸类型,那么每一局种类就不一样了,大大能不能帮帮小弟。


随便问一下能不能每局开始只有刀,枪要自己买,不记上一轮的枪,否则僵尸只有被虐的。



BOT會選擇殭屍類型好像是因為有彈出選擇殭屍類型的選單


好像只要讓選殭屍類型的選單變成每局都顯示好像就能達到這目的了


至於改插件我不會改你要另請別人了= =

獻花 x0
引用 | 編輯 弒血
2014-01-22 09:25
2樓
  
下面是引用 lydjjlyd 於 2014-01-21 22:35 發表的 弱弱最后问这一个问题,因为游戏也改的差不多了。,|让bot每局选用不同的僵尸类型: 到引言文
我发现第一局开始,所有bot都是第一种默认僵尸,每当感染,bot会自动选择一个僵尸类型,可是bot始终用当时他选的那一种僵尸类型,我看什么nst这些服务器不会记住你选的僵尸类型,每当感染会自动弹出僵尸类型选择,所以我打nst时,bot就可以换不同的僵尸类型,所以我想每当被感染自动让bot选择僵尸类型,那么每一局种类就不一样了,大大能不能帮帮小弟。


随便问一下能不能每局开始只有刀,枪要自己买,不记上一轮的枪,否则僵尸只有被虐的。



只要在被感染那段寫上
if (is_user_bot(id))
{
   //用隨機亂數去決定選擇方式
   .....
   //殭屍的選單
   ......

}

獻花 x1
引用 | 編輯 lydjjlyd
2014-01-22 20:52
3樓
  
那怎么开局只有刀,枪每次重买。

獻花 x0
引用 | 編輯 弒血
2014-01-22 21:57
4樓
  
下面是引用 lydjjlyd 於 2014-01-22 20:52 發表的 : 到引言文
那怎么开局只有刀,枪每次重买。



#include <fakemeta>


//每回合移除所有武器,給予小刀...


public plugin_init()
               register_event("HLTV", "event_round_start", "a", "1=0", "2=0")




public event_round_start() {

               for (new id; id<33; id++) {
                        
                        if(is_user_alive(id)) {
                        
                           fm_strip_user_weapons(id)
                           fm_give_item(id, "weapon_knife")
                        }
               }
}



stock fm_strip_user_weapons(id)
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"))
if (!pev_valid(ent)) return;

dllfunc(DLLFunc_Spawn, ent)
dllfunc(DLLFunc_Use, ent, id)
if (pev_valid(ent)) engfunc(EngFunc_RemoveEntity, ent)
}



stock fm_give_item(id, const item[])
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
if (!pev_valid(ent)) return;

static Float:originF[3]
pev(id, pev_origin, originF)
set_pev(ent, pev_origin, originF)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)

static save
save = pev(ent, pev_solid)
dllfunc(DLLFunc_Touch, ent, id)
if (pev(ent, pev_solid) != save)
return;

engfunc(EngFunc_RemoveEntity, ent)
}

獻花 x0
引用 | 編輯 lydjjlyd
2014-01-27 12:52
5樓
  
这个开局只有刀插件有问题,此源码编译不出来。

獻花 x0
引用 | 編輯 lydjjlyd
2014-01-27 13:09
6樓
  
前面缺一个#include <amxmodx>

獻花 x0
引用 | 編輯 lydjjlyd
2014-01-27 14:05
7樓
  
僵尸选单找到了可改不来,是zp4.3。
複製程式
// Show zombie class menu if they haven't chosen any (e.g. just connected)
       if (g_zombieclassnext[id] == ZCLASS_NONE && get_pcvar_num(cvar_zclasses))
              set_task(0.2, "show_menu_zclass", id)


獻花 x0
引用 | 編輯 lydjjlyd
2014-01-27 14:20
8樓
  
我把它改为
複製程式
// Show zombie class menu if they haven't chosen any (e.g. just connected)
       if (get_pcvar_num(cvar_zclasses))
              set_task(0.2, "show_menu_zclass", id)
好像就可以每次弹出,但不知道游戏会不会出错。

獻花 x0