廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3052 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
lydjjlyd
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前上站
推文 x0 鮮花 x157
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[1.6][插件] 关于zp_presents补给包问题
为啥用zp这个补给包会出现一个补给包出现多种枪,就像是坐标重叠,我有源码,但不知道该怎么写,让随机坐标不重复刷。

希望各位大神帮帮忙!


下面就是这插件关键部位,武器设置什么的就没发了,毕竟太多了。


public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

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

register_touch("maximusbroodPresent", "player", "event_presentTouch");

g_persents_time = register_cvar("zp_presents_time", "45")
g_persents_num_o = register_cvar("zp_presents_randm_a", "1")
g_persents_num_t = register_cvar("zp_presents_randm_b", "3")

new cfgdir[32]
get_configsdir(cfgdir, 255)

new mapname[32];
get_mapname(mapname, 31);

format(g_orginFilePath, 255, "%s/presents/%s.ini", cfgdir, mapname);

loadData();

set_task(0.3,"event_round_start") 
}


public event_round_start()
{
removePresents()
set_task(get_pcvar_float(g_persents_time), "set_present",111111,_,_,"b") 
}


public zp_round_ended(winteam)
{
remove_task(111111)
}


public plugin_precache() 
{
precache_sound(sound_present)
precache_sound(sound_get)
precache_model("models/presents.mdl")
}

loadData()
{
g_totalOrigins = 0;

new buffer[128];
new strX[12], strY[12], strZ[12];
if( file_exists(g_orginFilePath) ) 
{
new readPointer = fopen(g_orginFilePath, "rt");

if(!readPointer)
return;

while( !feof(readPointer) )
{
fgets(readPointer, buffer, 127);

if(buffer[0] == ';' || !buffer[0])
continue;

parse(buffer, strX, 11, strY, 11, strZ, 11);

g_spawnOrigins[g_totalOrigins][0] = float(str_to_num(strX));
g_spawnOrigins[g_totalOrigins][1] = float(str_to_num(strY));
g_spawnOrigins[g_totalOrigins][2] = float(str_to_num(strZ));

++g_totalOrigins;
}

fclose(readPointer);
}
}


public removePresents()
{
new currentEntity;


while ( (currentEntity = find_ent_by_class(currentEntity, "maximusbroodPresent")) != 0)
{
remove_entity(currentEntity);
}
}


public spawnPresent()
{
new f,entid

f = random_num(1,g_totalOrigins - 1)

entid = create_entity("info_target")


entity_set_string(entid, EV_SZ_classname, "maximusbroodPresent")

entity_set_model(entid, "models/presents.mdl")

entity_set_origin(entid, g_spawnOrigins[f])


entity_set_int(entid, EV_INT_solid, 1)
entity_set_int(entid, EV_INT_movetype, 6)


return PLUGIN_CONTINUE;
}


public event_presentTouch(pTouched, pToucher)
{
if(zp_get_user_zombie(pToucher))
return PLUGIN_HANDLED;

if(!is_valid_ent(pToucher) || !is_valid_ent(pTouched) || !is_user_connected(pToucher))
return PLUGIN_HANDLED;

client_cmd(pToucher, "spk %s", sound_get)

remove_entity(pTouched);

new t

t = random_num(1,6)

get_user_name(pToucher, szName, 31);

if (t == 1)
{
get_sg552(pToucher)
client_print(0, print_center, "%s 捡到旋风AK",szName);
}
else if (t == 2)
{
get_he(pToucher)
client_print(0, print_center, "%s 捡到两颗高爆手雷",szName);
}
else if (t == 3)
{
get_m249(pToucher)
client_print(0, print_center, "%s 捡到MG3毁灭者",szName);
}
else if (t == 4)
{
get_m4a1(pToucher)
client_print(0, print_center, "%s 捡到迷彩M4A1",szName);
}
else if (t == 5)
{
get_mac10(pToucher)
client_print(0, print_center, "%s 捡到双持MP7A1",szName);
}
else if (t == 6)
{
get_bpammo(pToucher)
client_print(0, print_center, "%s 捡到一些弹药",szName);
}
return PLUGIN_CONTINUE;
}


public set_present()
{
new g


g = random_num(get_pcvar_num(g_persents_num_o),get_pcvar_num(g_persents_num_t))

client_print(0, print_center, "补给箱已经到达!!!");
client_cmd(0, "spk %s", sound_present) 

removePresents()


for (new i = 0; i < g + 1; i++) 
{
set_task(1.0,"spawnPresent")
}
}



獻花 x0 回到頂端 [樓 主] From:歐洲 | Posted:2017-12-01 16:59 |
lydjjlyd
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前上站
推文 x0 鮮花 x157
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

通过自己的努力已经解决了 表情 表情


獻花 x0 回到頂端 [1 樓] From:未知地址 | Posted:2017-12-11 19:16 |
弒血
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎 特殊貢獻獎 創作大師獎
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x108 鮮花 x237
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 lydjjlyd 於 2017-12-11 19:16 發表的 : 到引言文
通过自己的努力已经解决了 表情   表情



晚了9個多月才注意到這篇
方法就在 format(g_orginFilePath, 255, "%s/presents/%s.ini", cfgdir, mapname);
在config資料夾&presents資料夾內新增每張地圖名稱ini檔案內容
說到座標新增 可以用板上 nst內容開放出來的point去設置 每張地圖的ini座標位置
就算是要設製在奇怪的地方 也是可以的



目前傳授教學&有興趣者可以問我
BOT瞄準攻擊NPC&模仿事件觸發計算出場&新增地圖重生位置等等
已修復entity的attachment錯誤問題,開始嘗試寫出各種npc_boss成品
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
按這裡檢視影片,登入論壇可以直接觀看
獻花 x0 回到頂端 [2 樓] From:臺灣中華電信股份有限公司 | Posted:2018-09-22 12:35 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.024457 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言