- 好友
- 3
- 在线时间
- 0 小时
- 最后登录
- 2024-11-18
男爵[见习版主]
- UID
- 3588356
- 第纳尔
- 151
- 精华
- 0
- 互助
- 15
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 70
- 注册时间
- 2023-12-7
鲜花( 16) 鸡蛋( 0)
|
hi,我是普信女
首先先感谢这一位a1550887802很抱歉,他这边是数字名字,不知道这位大佬的原名字叫什么感谢他的望远镜的一段代码,给我的启示,让我更改出了狙击枪
这个狙击枪还是依靠战团的准心来实现的如果想要依靠另一种射击方式,那个比较麻烦本人技术不好
1.原理是先使用一把准度非常高的步枪作为狙击枪模型item里面设置准度最高 2.使用一个简单的面板放大来实现这个效果3.在场景触发器里面写上指定按键开启指定按键关闭
这是很久以前弄的代码了,有错误的地方大佬请指出
有反编译的地方,是因为之前我的源码丢失,从我自己模组反编译出来的
然后单独提取这个功能的理解一下
第一步打开module_items.py
狙击枪物品代码
["97shibuqiang", "97shibuqiang", [("type_97", 0), ("type_97", 0)], itp_type_crossbow|itp_primary|itp_civilian|itp_next_item_as_melee, itcf_shoot_crossbow|itcf_carry_sword_back|itcf_reload_musket, 1110, weight(12.500000)|abundance(110)|difficulty(0)|accuracy(120)|spd_rtng(40)|shoot_speed(180)|max_ammo(5)|thrust_damage(60, pierce)|weapon_length(0), imodbits_none, [
(ti_on_weapon_attack, [
(play_sound, "snd_type_38_shot"),##音效
##自己设置粒子特效
]),
], ],
第二步打开module_meshes.py
在最后一行的】上面写
("mm_jujiqiang", 0,"mm_spyglass_ui_buqiang", 0, 0, 0, 0, 0, 0, 1, 1, 1),
第三步
##############狙击枪
("jujiqiang", prsntf_read_only|prsntf_manual_end_only, 0,
[
(ti_on_presentation_load, #在读取这个presentation时
[
(get_player_agent_no,":agent_id"), #获得玩家的agent编号
(agent_is_alive,":agent_id"), #玩家活着
(agent_set_visibility, ":agent_id", 0), #隐藏玩家
(set_fixed_point_multiplier,100), #设置定点乘数
(set_zoom_amount,165), #设置摄像机焦距 可以理解为狙击枪距离设置(个人理解)
(create_mesh_overlay, reg0, "mesh_mm_jujiqiang"), #这些是设置望远镜的效果的
(position_set_x, pos1, 50), #-1
(position_set_y, pos1, 40), #-1
(overlay_set_position, reg0, pos1),
(position_set_x, pos1, 101), #-1
(position_set_y, pos1, 100), #-1
(overlay_set_size, reg0, pos1),
(presentation_set_duration, 999999), #运行时间很长,设置一个很大的数值
]),
(ti_on_presentation_run, #在这个presentation运行时
[
#(call_script,"script_client_get_my_agent"),
#(assign,":agent_id",reg0),
(get_player_agent_no,":agent_id"), #玩家的agent编号
#(agent_is_active,":agent_id"),
(assign,":continue",0), #设置,局部变量":continue",为0
(try_begin), #尝试开始
(neg|key_is_down, key_tilde),
(key_is_down, key_left_shift),###shift键关闭狙击枪
(assign,":continue",1), #设置,局部变量":continue",为1
(else_try), #或者
(agent_get_wielded_item,":item_id",":agent_id",0), #获得玩家手上拿着的装备
(neq,":item_id","itm_97shibuqiang"), #如果不是望远镜
(assign,":continue",1), #设置,局部变量":continue",为1
(try_end), #尝试结束
(eq,":continue",1),#如果,局部变量":continue",等于1
(set_fixed_point_multiplier,100), #设置定点乘数
(set_zoom_amount,0), #设置摄像机焦距,为0(也就是不变焦)
(agent_set_visibility, ":agent_id", 1), #使玩家为可见的
(presentation_set_duration, 0), #停止这个presentation的运行
]),
]),
第四步打开module_mission_templates.py
在39行添加代码
jujiqiang = (0, 0, 0,
[
(game_key_is_down, gk_defend),###右键开启
],
[
(neg|is_presentation_active, "prsnt_jujiqiang"),##忘记了哈哈大半夜有点懵
(get_player_agent_no, ":wanjia"),##获取玩家编号
(agent_is_alive, ":wanjia"),###玩家是否活着
(agent_get_wielded_item, ":wuqi", ":wanjia", 0),###获取玩家的当前武器
(eq, ":wanjia", "itm_97shibuqiang"),###如果武器等于这个狙击枪那就触发下面面板
(start_presentation, "prsnt_jujiqiang"),###运行这个prsnt_jujiqiang面板
])
第五步在module_mission_templates.py搜索lead_charge这个是野战触发器
#################
(
"lead_charge",mtf_battle_mode|mtf_synch_inventory,charge,
"You lead your men to battle.",
[
(1,mtef_defenders|mtef_team_0,0,aif_start_alarmed,12,[]),
(0,mtef_defenders|mtef_team_0,0,aif_start_alarmed,0,[]),
(4,mtef_attackers|mtef_team_1,0,aif_start_alarmed,12,[]),
(4,mtef_attackers|mtef_team_1,0,aif_start_alarmed,0,[]),
],
[
jujiqiang,###在这个位置添加狙击枪触发器id
好像没了就这些
再次希望各位能做出更好的er zhan MOD能写出更好的代码 有错误,请指出谢谢各位了
|
评分
-
查看全部评分
鲜花鸡蛋幼稚园殺手 在2024-9-13 21:12 送朵鲜花 并说:我非常同意你的观点,送朵鲜花鼓励一下
|