Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
phpdts
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nemo Ma
phpdts
Commits
0614f15d
Commit
0614f15d
authored
Mar 31, 2023
by
Nemo Ma
Committed by
GitHub
Mar 31, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #99 from hikawiier/waaagh
rev combat phase 4.44
parents
f0f46ac1
86cac374
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
637 additions
and
116 deletions
+637
-116
command.php
command.php
+10
-2
gamedata/cache/clubskills_1.php
gamedata/cache/clubskills_1.php
+203
-32
gamedata/cache/combatcfg_1.php
gamedata/cache/combatcfg_1.php
+7
-5
include/game/elementmix.calc.php
include/game/elementmix.calc.php
+15
-0
include/game/elementmix.func.php
include/game/elementmix.func.php
+72
-12
include/game/item.func.php
include/game/item.func.php
+4
-1
include/game/itemmain.func.php
include/game/itemmain.func.php
+8
-7
include/game/revattr.func.php
include/game/revattr.func.php
+184
-22
include/game/revclubskills.func.php
include/game/revclubskills.func.php
+6
-8
include/game/revclubskills_extra.func.php
include/game/revclubskills_extra.func.php
+47
-2
include/game/revcombat.func.php
include/game/revcombat.func.php
+15
-1
include/game/search.func.php
include/game/search.func.php
+46
-15
include/news.func.php
include/news.func.php
+10
-0
templates/default/corpse.htm
templates/default/corpse.htm
+5
-1
templates/default/help.htm
templates/default/help.htm
+1
-3
templates/default/itemfind.htm
templates/default/itemfind.htm
+1
-1
templates/default/itemmix_tips.htm
templates/default/itemmix_tips.htm
+3
-4
No files found.
command.php
View file @
0614f15d
...
...
@@ -126,8 +126,16 @@ if($hp > 0){
$command
=
'itemmain'
;
$itemcmd
=
'itemmix'
;
}
if
(
$action
!=
'chase'
&&
$action
!=
'dfight'
&&
$mode
!==
'combat'
&&
$mode
!==
'revcombat'
&&
$mode
!==
'corpse'
&&
$action
!=
'pacorpse'
&&
$mode
!==
'senditem'
){
$action
=
''
;
$bid
=
0
;
if
(
!
empty
(
$action
))
{
if
(
$action
==
'tpmove'
)
{
$mode
=
'command'
;
$command
=
'search'
;
}
if
(
$action
!=
'chase'
&&
$action
!=
'dfight'
&&
$mode
!==
'combat'
&&
$mode
!==
'revcombat'
&&
$mode
!==
'corpse'
&&
$action
!=
'pacorpse'
&&
$mode
!==
'senditem'
){
$action
=
''
;
$bid
=
0
;
}
}
if
(
$command
==
'menu'
)
{
$mode
=
'command'
;
...
...
gamedata/cache/clubskills_1.php
View file @
0614f15d
This diff is collapsed.
Click to expand it.
gamedata/cache/combatcfg_1.php
View file @
0614f15d
...
...
@@ -42,17 +42,19 @@ $weather_active_r = Array(10,20,0,-5,-10,-20,-15,0,-7,-10,-10,-5,0,-5,-20,-5,0,2
//姿态对攻击力的影响始终生效(1:只在作出先制攻击时生效)
$pose_attack_active
=
0
;
//姿态对攻击力的影响(单位:百分比加算)
$pose_attack_modifier
=
Array
(
0
,
100
,
0
,
-
25
,
25
,
-
50
,
50
,
-
777
,
5
);
$pose_attack_modifier
=
Array
(
0
,
100
,
0
,
-
25
,
25
,
-
50
,
50
,
-
777
,
0
);
//姿态对防御力的影响始终生效(1:只在受到先制攻击伤害时生效)
$pose_defend_active
=
0
;
//姿态对防御力的影响(单位:百分比加算)
$pose_defend_modifier
=
Array
(
0
,
25
,
0
,
-
25
,
-
50
,
-
50
,
-
466
,
777
,
0
);
$pose_defend_modifier
=
Array
(
0
,
25
,
0
,
-
25
,
-
50
,
-
50
,
-
466
,
777
,
10
);
//姿态对遇敌率的影响(遇敌率越低道具发现率越高)
$pose_find_modifier
=
Array
(
0
,
5
,
10
,
-
20
,
10
,
25
,
-
20
,
85
,
10
);
//姿态对躲避率的影响
$pose_hide_modifier
=
Array
(
0
,
-
25
,
0
,
-
10
,
10
,
-
25
,
-
40
,
-
40
,
0
,
0
);
$pose_hide_modifier
=
Array
(
0
,
-
25
,
-
10
,
-
10
,
10
,
-
25
,
-
40
,
-
4
0
,
0
);
//姿态对先制率的影响(单位:百分比加算)(计算方式:进攻方姿态先制率-防守方姿态先制率)
$pose_active_modifier
=
Array
(
0
,
0
,
50
,
0
,
25
,
-
25
,
5
,
-
100
,
5
);
$pose_active_modifier
=
Array
(
0
,
0
,
50
,
0
,
25
,
-
25
,
5
,
-
100
,
0
);
//姿态对反击率的影响(单位:百分比加算)
$pose_counter_modifier
=
Array
(
0
,
0
,
0
,
0
,
0
,
-
100
,
0
,
-
100
,
5
);
$pose_counter_modifier
=
Array
(
0
,
0
,
0
,
0
,
0
,
-
100
,
0
,
-
100
,
0
);
//'通常','','重视防御','重视反击','重视躲避'
//应战策略对攻击力的影响始终生效(1:只在作出反击时生效)
...
...
include/game/elementmix.calc.php
View file @
0614f15d
...
...
@@ -4,6 +4,21 @@
exit
(
'Access Denied'
);
}
function
get_clbskill_emgain_r
(
$ev
,
&
$data
)
{
if
(
!
check_skill_unlock
(
'c20_fertile'
,
$data
))
{
$sk
=
'c20_fertile'
;
$sk_lvl
=
get_skilllvl
(
$sk
,
$data
);
$sk_var
=
rand
(
0
,
get_skillvars
(
$sk
,
'emsgain'
,
$sk_lvl
));
if
(
!
empty
(
$sk_var
))
{
$ev
=
ceil
(
$ev
*
(
1
+
(
$sk_var
/
100
)));
}
}
return
$ev
;
}
# 过滤不能拆解的道具(数组) 不能分解返回1 能分解返回0
function
split_to_elements_filter
(
$i
)
{
...
...
include/game/elementmix.func.php
View file @
0614f15d
...
...
@@ -147,9 +147,11 @@
/********拆解元素部分********/
# 把尸体打散成元素
function
split_corpse_to_elements
(
&
$edata
)
function
split_corpse_to_elements
(
&
$edata
,
$emode
)
{
global
$log
,
$mode
,
$typeinfo
,
$elements_info
,
$gamecfg
,
$gamevars
;
global
$now
,
$log
,
$mode
,
$typeinfo
,
$elements_info
,
$gamecfg
,
$gamevars
;
global
$db
,
$tablepre
;
include
config
(
'elementmix'
,
$gamecfg
);
if
(
!
isset
(
$data
))
{
...
...
@@ -157,25 +159,39 @@
$data
=
&
$pdata
;
}
extract
(
$data
,
EXTR_REFS
);
if
(
$club
!=
20
)
$edata
[
'clbpara'
]
=
get_clbpara
(
$edata
[
'clbpara'
]);
if
(
$club
!=
20
||
(
$emode
==
'c20_zombie'
&&
check_skill_unlock
(
'c20_zombie'
,
$data
)))
{
$log
.=
"你还想对这具可怜的尸体干什么?<br>"
;
$mode
=
'command'
;
return
;
}
# 过滤不能分解的尸体
if
(
in_array
(
$edata
[
'type'
],
$no_type_to_e_list
))
if
((
$emode
==
'element_split'
&&
in_array
(
$edata
[
'type'
],
$no_type_to_e_list
))
||
(
$emode
==
'c20_zombie'
&&
in_array
(
$edata
[
'type'
],
get_skillvars
(
$emode
,
'notype'
)))
)
{
$desc
=
(
$emode
==
'element_split'
)
?
'提炼为元素'
:
'转化成灵俑'
;
$log
.=
"无法将
{
$edata
[
'name'
]
}{
$desc
}
……为什么呢?<br>"
;
$mode
=
'command'
;
return
;
}
# 不能灵俑套娃……
if
(
$emode
==
'c20_zombie'
&&
!
check_skill_unlock
(
'inf_zombie'
,
$edata
))
{
$log
.=
"
无法从
{
$edata
[
'name'
]
}
身上提炼元素……为什么呢?
<br>"
;
$log
.=
"
竟然想让一个已经死了两次的人再起来替你打工……你的良心不会痛吗!
<br>"
;
$mode
=
'command'
;
return
;
}
# 开始提炼尸体
$ev_arr
=
Array
();
$log
.=
"<span class='grey'>
{
$edata
[
'name'
]
}
化作点点荧光四散开来……</span><br>"
;
if
(
$emode
==
'element_split'
)
$log
.=
"<span class='grey'>
{
$edata
[
'name'
]
}
化作点点荧光四散开来……</span><br>"
;
else
$log
.=
"<span class='grey'>
{
$edata
[
'name'
]
}
身上升腾起缕缕不详黑气……</span><br>"
;
# 处理绑定有秘钥的尸体
if
(
!
empty
(
$split_spcorpse_fix
[
$edata
[
'type'
]]))
esplit_vip_things
(
$ev_arr
,
$edata
,
$data
);
if
(
$emode
==
'element_split'
&&
!
empty
(
$split_spcorpse_fix
[
$edata
[
'type'
]]))
esplit_vip_things
(
$ev_arr
,
$edata
,
$data
);
# 根据尸体等级计算能获得的全种类元素数量
$ev_lvl
=
ceil
(
$edata
[
'lvl'
]
*
$split_corpse_lvl_r
);
...
...
@@ -197,15 +213,57 @@
$add_ev
+=
$edata
[
'element'
.
$e_key
];
$edata
[
'element'
.
$e_key
]
=
0
;
}
$
{
'element'
.
$e_key
}
+=
$add_ev
;
$total_addev
+=
$add_ev
;
$log
.=
"获得了
{
$add_ev
}
份
{
$e_info
}
!<br>"
;
if
(
$emode
==
'element_split'
)
{
# 计算技能加成
$add_ev
=
get_clbskill_emgain_r
(
$add_ev
,
$data
);
$
{
'element'
.
$e_key
}
+=
$add_ev
;
$total_addev
+=
$add_ev
;
$log
.=
"获得了
{
$add_ev
}
份
{
$e_info
}
!<br>"
;
}
else
{
$add_ev
=
ceil
(
$add_ev
*
sqrt
(
$edata
[
'lvl'
]));
if
(
$
{
'element'
.
$e_key
}
<
$add_ev
)
{
$log
.=
"但是你的元素库存告罄了!转化被迫中止了……<br>"
;
$mode
=
'command'
;
return
;
}
$
{
'element'
.
$e_key
}
-=
$add_ev
;
$log
.=
"<span class='grey'>消耗了
{
$add_ev
}
份
{
$e_info
}
...</span><br>"
;
}
}
# 转化灵俑成功,复制一个相同属性的人丢进战场,然后把旧尸体销毁
if
(
$emode
==
'c20_zombie'
)
{
$gdata
=
$edata
;
unset
(
$gdata
[
'pid'
]);
$gdata
[
'name'
]
.=
'的灵俑'
;
$gdata
[
'hp'
]
=
$gdata
[
'mhp'
];
$gdata
[
'action'
]
=
''
;
$gdata
[
'state'
]
=
$gdata
[
'endtime'
]
=
$gdata
[
'deathtime'
]
=
$gdata
[
'bid'
]
=
0
;
# 登记为盟友,并记录创造者id
$gdata
[
'clbpara'
][
'mate'
][]
=
$pid
;
$gdata
[
'clbpara'
][
'zombieoid'
]
=
$pid
;
# 获得灵俑状态技能
getclubskill
(
'inf_zombie'
,
$gdata
[
'clbpara'
]);
# 插入
$gdata
=
player_format_with_db_structure
(
$gdata
);
if
(
!
empty
(
$gdata
))
{
$db
->
array_insert
(
"
{
$tablepre
}
players"
,
$gdata
);
$gid
=
$db
->
insert_id
();
$clbpara
[
'mate'
][]
=
$gid
;
$clbpara
[
'zombieid'
][]
=
$gid
;
# addnews
addnews
(
$now
,
'ctozombie'
,
$name
,
$edata
[
'name'
]);
}
unset
(
$gdata
);
}
if
(
$mode
==
'element_split'
)
addnews
(
$now
,
'cesplit'
,
$name
,
$edata
[
'name'
]);
# 分解的结果有参数合法的特殊道具
if
(
!
empty
(
$ev_arr
[
'spitm'
])
&&
count
(
$ev_arr
[
'spitm'
])
>
3
)
if
(
$emode
==
'element_split'
&&
!
empty
(
$ev_arr
[
'spitm'
])
&&
count
(
$ev_arr
[
'spitm'
])
>
3
)
{
global
$itm0
,
$itmk0
,
$itme0
,
$itms0
,
$itmsk0
;
$log
.=
"但出现在你面前的不是元素,而是<span class='yellow'>
{
$ev_arr
[
'result'
][
0
]
}
</span>!<br>……这又是什么鬼东西!<br>"
;
$itm0
=
$ev_arr
[
'result'
][
0
];
$itmk0
=
$ev_arr
[
'result'
][
1
];
$itmsk0
=
$ev_arr
[
'result'
][
4
];
$itme0
=
$ev_arr
[
'result'
][
2
];
$itms0
=
$ev_arr
[
'result'
][
3
];
...
...
@@ -290,6 +348,8 @@
}
else
{
# 计算技能加成
$ev
=
get_clbskill_emgain_r
(
$ev
,
$data
);
$ev
=
ceil
(
$ev
);
$
{
'element'
.
$e_key
}
+=
$ev
;
$total_addev
+=
$ev
;
...
...
include/game/item.func.php
View file @
0614f15d
...
...
@@ -14,7 +14,7 @@ function itemuse($itmn,&$data=NULL) {
global
$exdmginf
,
$ex_inf
,
$cskills
,
$elements_info
,
$sparkle
,
$event_bgm
;
global
$upexp
,
$baseexp
,
$elec_cap
;
//Some globals seems to be still needed... ...
global
$itemspkinfo
;
global
$itemspkinfo
,
$plsinfo
;
if
(
!
isset
(
$data
))
{
...
...
@@ -1570,6 +1570,9 @@ function itemuse($itmn,&$data=NULL) {
addnpc
(
2
,
1
,
4
);
addnpc
(
2
,
2
,
4
);
addnpc
(
2
,
3
,
4
);
addnews
(
$now
,
'key0'
,
$name
);
$itm
=
$itmk
=
$itmsk
=
''
;
$itme
=
$itms
=
0
;
}
elseif
(
$itm
==
'✦NPC钥匙·一阶段'
)
{
include_once
GAME_ROOT
.
'./include/system.func.php'
;
$log
.=
'已解锁一阶段NPC!<br>似乎大量NPC已经部署至游戏内……<br>'
;
...
...
include/game/itemmain.func.php
View file @
0614f15d
...
...
@@ -1293,7 +1293,7 @@ function getcorpse($item,&$data=NULL)
# 销毁尸体rp结算
$rp_up
=
diceroll
(
$rpup_destory_corpse
);
include_once
GAME_ROOT
.
'./include/game/revcombat.func.php'
;
rpup_rev
(
$data
,
$rpup
);
rpup_rev
(
$data
,
$rp
_
up
);
addnews
(
$now
,
'cdestroy'
,
$name
,
$edata
[
'name'
]);
destory_corpse
(
$edata
);
...
...
@@ -1301,7 +1301,7 @@ function getcorpse($item,&$data=NULL)
$mode
=
'command'
;
return
;
}
elseif
(
$item
==
'element_split'
)
elseif
(
$item
==
'element_split'
||
$item
==
'c20_zombie'
)
{
if
(
$club
!=
20
)
{
...
...
@@ -1311,7 +1311,7 @@ function getcorpse($item,&$data=NULL)
return
;
}
include_once
GAME_ROOT
.
'./include/game/elementmix.func.php'
;
split_corpse_to_elements
(
$edata
);
split_corpse_to_elements
(
$edata
,
$item
);
$action
=
''
;
$bid
=
0
;
$mode
=
'command'
;
return
;
...
...
@@ -1455,19 +1455,20 @@ function reload_single_set_item(&$pa,$eqp,$enm,$active=0)
//在背包内寻找道具进行编辑
function
check_item_edit_event
(
&
$pa
,
$event
)
function
check_item_edit_event
(
$pa
,
&
$pd
,
$event
)
{
$flag
=
0
;
for
(
$i
=
0
;
$i
<=
6
;
$i
++
)
{
if
(
!
empty
(
$p
a
[
'itms'
.
$i
]))
if
(
!
empty
(
$p
d
[
'itms'
.
$i
]))
{
# 「渗透」效果判定
if
(
$event
==
'c8_infilt'
)
{
if
(
strpos
(
$p
a
[
'itmk'
.
$i
],
'H'
)
===
0
)
if
(
strpos
(
$p
d
[
'itmk'
.
$i
],
'H'
)
===
0
)
{
$pa
[
'itmk'
.
$i
]
=
str_replace
(
"H"
,
'P'
,
$pa
[
'itmk'
.
$i
]);
$pd
[
'itmk'
.
$i
]
=
str_replace
(
"H"
,
'P'
,
$pd
[
'itmk'
.
$i
]);
$pd
[
'itmsk'
.
$i
]
=
$pa
[
'pid'
];
$flag
=
1
;
}
}
...
...
include/game/revattr.func.php
View file @
0614f15d
This diff is collapsed.
Click to expand it.
include/game/revclubskills.func.php
View file @
0614f15d
...
...
@@ -353,20 +353,18 @@
# 检查冷却时间
if
(
is_array
(
$lock
))
{
$cd
=
$lock
[
0
];
$lock
=
$lock
[
1
];
$cd
=
$lock
[
1
];
$lock
=
$lock
[
0
];
}
# 通用未解锁项目
if
(
$lock
==
'noskill'
||
!
isset
(
$cskill
[
'lockdesc'
]))
return
"技能未解锁或解锁条件不明!<br>"
;
# 返回对应的未解锁描述
if
(
is_array
(
$cskill
[
'lockdesc'
]))
$lockdesc
=
$cskill
[
'lockdesc'
];
if
(
is_array
(
$lockdesc
))
{
$lockdesc
=
isset
(
$cskill
[
'lockdesc'
][
$lock
])
?
$cskill
[
'lockdesc'
][
$lock
]
:
"技能不可用,可能是因为:
{
$lock
}
<br>"
;
}
else
{
$lockdesc
=
$cskill
[
'lockdesc'
];
$lockdesc
=
isset
(
$lockdesc
[
$lock
])
?
$lockdesc
[
$lock
]
:
"技能不可用,可能是因为:
{
$lock
}
<br>"
;
}
if
(
isset
(
$cd
))
$lockdesc
=
str_replace
(
"[:cd:]"
,
$cd
,
$lockdesc
);
return
$lockdesc
;
}
...
...
include/game/revclubskills_extra.func.php
View file @
0614f15d
...
...
@@ -10,6 +10,7 @@
function
upgclbskills_events
(
$event
,
$sk
,
&
$data
=
NULL
)
{
global
$log
,
$cskills
,
$now
,
$club_skillslist
,
$weather
,
$gamevars
,
$wthinfo
,
$db
,
$tablepre
;
global
$elements_info
;
if
(
!
isset
(
$data
))
{
...
...
@@ -62,7 +63,7 @@
// 第3次使用时开始冷却
if
(
$active_t
+
1
>
get_skillvars
(
$sk
,
'freet'
))
{
$event
=
'setstarttimes_'
.
$sk
.
'_charge'
;
$event
=
'setstarttimes_'
.
$sk
;
}
else
{
...
...
@@ -210,7 +211,7 @@
$mid
=
get_skillpara
(
$sk
,
'active_t'
,
$clbpara
);
# 召唤佣兵,并获取佣兵pid
include_once
GAME_ROOT
.
'./include/system.func.php'
;
$merc_pid
=
addnpc
(
25
,
$merc
,
1
,
$now
,
Array
(
'clbpara'
=>
Array
(
'mkey'
=>
$mid
,
'oid'
=>
$pid
,
'onm'
=>
$name
)),
NULL
,
$pls
)[
0
];
$merc_pid
=
addnpc
(
25
,
$merc
,
1
,
$now
,
Array
(
'clbpara'
=>
Array
(
'mkey'
=>
$mid
,
'oid'
=>
$pid
,
'onm'
=>
$name
,
'mate'
=>
Array
(
$pid
)
)),
NULL
,
$pls
)[
0
];
# 初始化佣兵参数
$clbpara
[
'skillpara'
][
$sk
][
'id'
][
$mid
]
=
$merc_pid
;
# 登记佣兵薪水
...
...
@@ -226,6 +227,50 @@
$log
.=
"你掏出千元大钞振臂一呼,「
{
$mercinfo
[
$merc
][
'name'
]
}
」突然出现在了你的面前!<br>"
;
return
1
;
}
# 事件:横财
if
(
$event
==
'windfall'
)
{
$tot
=
$element0
+
$element1
+
$element2
+
$element3
+
$element4
+
$element5
;
if
(
$tot
<
5
)
{
$log
.=
"你口袋中的元素太少了!再去捡点吧!<br>"
;
return
0
;
}
$numbers
=
array_fill
(
0
,
6
,
14
);
# 生成5个随机数,使它们的和等于15
$t
=
16
;
for
(
$i
=
0
;
$i
<
6
;
$i
++
)
{
$at
=
rand
(
1
,
$t
);
$t
-=
$at
;
$numbers
[
$i
]
+=
$at
;
}
$log
.=
"你把口袋中的元素搅混在一起……然后满怀期待得等着它们自己把自己整理好……<br>"
;
foreach
(
$elements_info
as
$key
=>
$info
)
{
$
{
'element'
.
$key
}
=
0
;
$add_ev
=
ceil
(
$tot
*
(
$numbers
[
$key
]
/
100
));
include_once
GAME_ROOT
.
'./include/game/elementmix.calc.php'
;
$add_ev
=
get_clbskill_emgain_r
(
$add_ev
,
$data
);
$
{
'element'
.
$key
}
+=
$add_ev
;
$log
.=
"获得了
{
$add_ev
}
份
{
$info
}
!<br>"
;
}
return
1
;
}
# 事件:黑莲花
if
(
$event
==
'lotus'
)
{
foreach
(
$elements_info
as
$key
=>
$info
)
{
# 不足3000的,补足到3000
if
(
$
{
'element'
.
$key
}
<
3000
)
{
$
{
'element'
.
$key
}
=
3000
;
continue
;
}
$
{
'element'
.
$key
}
*=
3
;
}
return
1
;
}
# 事件:获取指定技能
if
(
strpos
(
$event
,
'getskill_'
)
===
0
)
{
...
...
include/game/revcombat.func.php
View file @
0614f15d
...
...
@@ -49,9 +49,11 @@
get_wep_kind
(
$pd
);
$pd
[
'wep_range'
]
=
get_wep_range
(
$pd
);
$pd
[
'wep_skill'
]
=
get_wep_skill
(
$pd
);
$pd
[
'wep_name'
]
=
$pd
[
'wep'
];
get_wep_kind
(
$pa
,
$wep_kind
,
$pd
[
'wep_range'
]);
$pa
[
'wep_range'
]
=
get_wep_range
(
$pa
);
$pa
[
'wep_skill'
]
=
get_wep_skill
(
$pa
);
$pa
[
'wep_name'
]
=
$pa
[
'wep'
];
# 传入pa为玩家、pd为NPC,且存在鏖战/追击标志时,判断战斗流程类型(标准/追击/鏖战/协战)
if
(
!
$pa
[
'type'
]
&&
$pd
[
'type'
]
&&
(
strpos
(
$pa
[
'action'
],
'dfight'
)
!==
false
||
strpos
(
$pa
[
'action'
],
'chase'
)
!==
false
))
...
...
@@ -393,7 +395,7 @@
findcorpse
(
$edata
);
return
;
}
elseif
(
$action
==
'chase'
||
$action
==
'pchase'
||
$action
==
'dfight'
||
$action
==
'cover'
)
elseif
(
$action
==
'chase'
||
$action
==
'pchase'
||
$action
==
'dfight'
||
$action
==
'cover'
||
$action
==
'tpmove'
)
{
$chase_flag
=
1
;
}
...
...
@@ -1053,6 +1055,18 @@
$log
.=
"<span clas='red'>由于战死,"
;
skill_merc_fire
(
'c11_merc'
,
$pd
[
'clbpara'
][
'mkey'
],
$pd
,
1
);
}
# 灵俑死亡时,从创造者的灵俑队列中删除
if
(
isset
(
$pd
[
'clbpara'
][
'zombieoid'
]))
{
$odata
=
fetch_playerdata_by_pid
(
$pd
[
'clbpara'
][
'zombieoid'
]);
$mkey
=
array_search
(
$pd
[
'pid'
],
$odata
[
'clbpara'
][
'mate'
]);
unset
(
$odata
[
'clbpara'
][
'mate'
][
$mkey
]);
$zkey
=
array_search
(
$pd
[
'pid'
],
$odata
[
'clbpara'
][
'zombieid'
]);
unset
(
$odata
[
'clbpara'
][
'zombieid'
][
$zkey
]);
player_save
(
$odata
);
$w_log
=
"<span class=
\"
grey
\"
>你的灵俑
{
$pd
[
'name'
]
}
归于尘土了……</span><br>"
;
logsave
(
$odata
[
'pid'
],
$now
,
$w_log
,
'c'
);
}
return
;
}
...
...
include/game/search.func.php
View file @
0614f15d
...
...
@@ -370,7 +370,7 @@ function search(&$data=NULL){
function
move_search_events
(
&
$data
=
NULL
,
$act
)
{
global
$log
,
$inf_move_hp
,
$inf_move_sp
,
$infwords
,
$weather
,
$gamevars
,
$now
;
global
$log
,
$inf_move_hp
,
$inf_move_sp
,
$infwords
,
$weather
,
$gamevars
,
$now
,
$elements_info
;
if
(
!
isset
(
$data
))
{
...
...
@@ -487,6 +487,41 @@ function move_search_events(&$data=NULL,$act)
player_save
(
$mdata
);
}
}
# 「沃土」效果判定:
if
(
!
check_skill_unlock
(
'c20_fertile'
,
$data
))
{
$sk
=
'c20_fertile'
;
$sk_lvl
=
get_skilllvl
(
$sk
,
$data
);
$sk_mst
=
get_skillvars
(
$sk
,
'mst'
,
$sk_lvl
);
$ms
=
get_skillpara
(
$sk
,
'ms'
,
$data
[
'clbpara'
])
+
1
;
# 赚钱!
if
(
$ms
>=
$sk_mst
)
{
$temp_enums
=
0
;
$temp_ekey
=
0
;
foreach
(
$elements_info
as
$key
=>
$info
)
{
if
(
!
empty
(
$data
[
'element'
.
$key
]))
{
if
(
empty
(
$temp_enums
)
||
$data
[
'element'
.
$key
]
<
$temp_enums
)
{
$temp_enums
=
$data
[
'element'
.
$key
];
$temp_ekey
=
$key
;
}
}
}
if
(
$temp_enums
)
{
$sk_var
=
get_skillvars
(
$sk
,
'minemsgain'
,
$sk_lvl
);
$add_ev
=
$temp_enums
*
(
1
+
(
$sk_var
/
100
));
$data
[
'element'
.
$temp_ekey
]
=
$add_ev
;
$ms
=
0
;
$log
.=
"<span class='yellow'>你的口袋里冒出了新的元素!</span><br>"
;
}
}
set_skillpara
(
$sk
,
'ms'
,
$ms
,
$data
[
'clbpara'
]);
}
return
;
}
...
...
@@ -584,9 +619,6 @@ function discover($schmode = 0,&$data=NULL)
$mode_dice
=
rand
(
0
,
99
);
if
(
$mode_dice
<
$schmode
)
{
//echo "进入遇敌判定<br>";
//global $pid,$corpse_obbs,$teamID,$fog,$bid,$gamestate;
//global $clbstatusa,$clbstatusb,$clbstatusc,$clbstatusd,$clbstatuse;
global
$fog
,
$gamestate
;
$result
=
$db
->
query
(
"SELECT * FROM
{
$tablepre
}
players WHERE pls='
$pls
' AND pid!='
$pid
'"
);
...
...
@@ -600,8 +632,6 @@ function discover($schmode = 0,&$data=NULL)
$enemynum
=
$db
->
num_rows
(
$result
);
$enemyarray
=
range
(
0
,
$enemynum
-
1
);
shuffle
(
$enemyarray
);
$find_r
=
get_find_r
(
$weather
,
$pls
,
$pose
,
$tactic
,
$club
,
$inf
);
$find_obbs
=
$enemy_obbs
+
$find_r
;
//移除了重复调用discover()的设定,尝试用一种正常一点的办法确保敌人/尸体发现率符合基础设定值,不然现在的尸体确实太难摸了。
//现在触发遇敌事件只会返回三种结果:1、发现尸体;2、发现敌人、3、敌人隐藏起来;所以实际的尸体发现率=$enemyrate*$corpse_obbs
...
...
@@ -611,6 +641,7 @@ function discover($schmode = 0,&$data=NULL)
{
$db
->
data_seek
(
$result
,
$enum
);
$edata
=
$db
->
fetch_array
(
$result
);
$edata
[
'clbpara'
]
=
get_clbpara
(
$edata
[
'clbpara'
]);
if
(
!
$edata
[
'type'
]
||
$gamestate
<
50
)
{
if
(
$edata
[
'hp'
]
<=
0
)
...
...
@@ -639,21 +670,21 @@ function discover($schmode = 0,&$data=NULL)
}
else
{
//直接略过决斗者
//global $artk;
# 略过决斗者
if
((
!
$edata
[
'type'
])
&&
(
$artk
==
'XX'
)
&&
((
$edata
[
'artk'
]
!=
'XX'
)
||
(
$edata
[
'art'
]
!=
$name
))
&&
(
$gamestate
<
50
))
continue
;
if
((
$artk
!=
'XX'
)
&&
(
$edata
[
'artk'
]
==
'XX'
)
&&
(
$gamestate
<
50
))
continue
;
//暂时直接略过自己的佣兵,之后做完组队面板交互再加回来
if
(
!
empty
(
get_skillpara
(
'c11_merc'
,
'id'
,
$clbpara
))
&&
in_array
(
$edata
[
'pid'
],
get_skillpara
(
'c11_merc'
,
'id'
,
$clbpara
)
))
continue
;
//
灵子状态只能遭遇同为灵子状态的对象,非灵子状态对象无法发现灵子状态下的对象……但是尸体就没有这种考量了
# 暂时直接略过盟友单位
if
(
!
empty
(
$edata
[
'clbpara'
][
'mate'
])
&&
in_array
(
$pid
,
$edata
[
'clbpara'
][
'mate'
]
))
continue
;
#
灵子状态只能遭遇同为灵子状态的对象,非灵子状态对象无法发现灵子状态下的对象……但是尸体就没有这种考量了
if
((
$edata
[
'pose'
]
==
8
||
$data
[
'pose'
]
==
8
)
&&
$data
[
'pose'
]
!=
$edata
[
'pose'
])
continue
;
//
「量心」技能效果判定:
#
「量心」技能效果判定:
if
(
!
check_skill_unlock
(
'c19_dispel'
,
$data
)
&&
!
empty
(
get_skillpara
(
'c19_dispel'
,
'active'
,
$clbpara
))
&&
$edata
[
'hp'
]
<=
1
)
continue
;
//计算活人发现率
# 计算活人发现率
$hide_r
=
get_hide_r_rev
(
$data
,
$edata
);
$enemy_dice
=
diceroll
(
99
);
//echo "hide_r = {$hide_r} | find_obbs = {$find_obbs} | dice = {$enemy_dice}";
$meetman_flag
=
$enemy_dice
<
(
$find
_obbs
-
$hide_r
)
?
1
:
-
1
;
# 把find_r杀了,现在技能都是用躲避率去判断的了,躲避率为负就等于发现率增幅了
$meetman_flag
=
$enemy_dice
<
(
$enemy
_obbs
-
$hide_r
)
?
1
:
-
1
;
break
;
}
}
...
...
include/news.func.php
View file @
0614f15d
...
...
@@ -276,6 +276,8 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
lime
\"
>
{
$a
}
使用了黑色碎片,让1名未知存在加入了战场!打倒她去获得ID卡来解除游戏吧!</span><br>
\n
"
;
}
elseif
(
$news
==
'dfsecphase'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
lime
\"
>
{
$a
}
闯了大祸,打破了Dark Force的封印!</span><br>
\n
"
;
}
elseif
(
$news
==
'key0'
){
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
lime
\"
>
{
$a
}
释放了少量被封印的NPC存在!</span><br>
\n
"
;
}
elseif
(
$news
==
'key1'
){
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
lime
\"
>
{
$a
}
释放了第一批被封印的NPC存在!</span><br>
\n
"
;
}
elseif
(
$news
==
'key2'
){
...
...
@@ -317,6 +319,10 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
grey
\"
>
{
$a
}
将
{
$b
}
生前存放在安全箱里的东西转移到了自己的名下。哇……真是世风日下,道德沦丧啊!</span><br>
\n
"
;
}
elseif
(
$news
==
'cdestroy'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
red
\"
>
{
$a
}
把
{
$b
}
的尸体销毁了</span><br>
\n
"
;
}
elseif
(
$news
==
'cesplit'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
red
\"
>
{
$a
}
把
{
$b
}
的尸体提炼成了元素</span><br>
\n
"
;
}
elseif
(
$news
==
'ctozombie'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
mtgblack
\"
>
{
$a
}
把
{
$b
}
的尸体转化成了灵俑...</span><br>
\n
"
;
}
elseif
(
$news
==
'csl_wthchange'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
orange
\"
>
{
$a
}
发送了控制指令,战场的天气变成了
{
$wthinfo
[
$b
]
}
!</span><br>
\n
"
;
}
elseif
(
$news
==
'csl_hack'
)
{
...
...
@@ -348,6 +354,10 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
yellow
\"
>
{
$a
}
指挥佣兵
{
$b
}
移动到了
{
$plsinfo
[
$c
]
}
!</span><br>
\n
"
;
}
elseif
(
strpos
(
$news
,
'mercleave'
)
===
0
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
yellow
\"
>
{
$a
}
的佣兵
{
$b
}
离开了战场!</span><br>
\n
"
;
}
elseif
(
$news
==
'sparklemove'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
mtgred
\"
>
{
$a
}
点燃火花将
{
$b
}
传送到了
{
$c
}
!</span><br>
\n
"
;
}
elseif
(
$news
==
'sparklerevival'
)
{
$newsinfo
.=
"<li>
{
$hour
}
时
{
$min
}
分
{
$sec
}
秒,<span class=
\"
mtggreen
\"
>
{
$a
}
在危急时刻点燃火花传送到了
{
$c
}
!</span><br>
\n
"
;
}
else
{
$newsinfo
.=
"<li>
$time
,
$news
,
$a
,
$b
,
$c
,
$d
<br>
\n
"
;
}
...
...
templates/default/corpse.htm
View file @
0614f15d
想要从尸体上拾取什么?
<br><br>
<input
type=
"hidden"
name=
"mode"
value=
"corpse"
>
<!--{if $club==20}-->
<input
type=
"radio"
name=
"command"
id=
"element_split"
value=
"element_split"
<!
--
{
if
!$
w_money
}
--
>
checked
<!--{/if}-->
>
<a
onclick=
sl('element_split');
href=
"javascript:void(0);"
>
提炼元素
</a><br>
<input
type=
"radio"
name=
"command"
id=
"element_split"
value=
"element_split"
<!
--
{
if
!$
w_money
}
--
>
checked
<!--{/if}-->
>
<a
onclick=
sl('element_split');
href=
"javascript:void(0);"
>
提炼元素
</a>
<!--{if !check_skill_unlock('c20_zombie',$pdata)}-->
<input
type=
"radio"
name=
"command"
id=
"c20_zombie"
value=
"c20_zombie"
style=
"margin-left:5px;"
><a
onclick=
sl('c20_zombie');
href=
"javascript:void(0);"
><span
class=
"mtgblack"
>
转化灵俑
</span></a>
<!--{/if}-->
<br>
<!--{elseif $allow_destory_corpse && !in_array($w_type,$no_destory_corpse_type)}-->
<input
type=
"radio"
name=
"command"
id=
"destory"
value=
"destory"
<!
--
{
if
!$
w_money
}
--
>
checked
<!--{/if}-->
>
<a
onclick=
sl('destory');
href=
"javascript:void(0);"
>
销毁尸体
</a><br>
<!--{/if}-->
...
...
templates/default/help.htm
View file @
0614f15d
...
...
@@ -1858,9 +1858,7 @@ NPC也会发出重击和必杀技,请随时小心。</p>
</span>
</td>
<td
class=
"b3"
>
<span>
待实装
</span>
<span><input
type=
"button"
class=
"cmdbutton"
value=
"点击查看称号技能"
onclick=
"showModalDialog($('skillhelp-c20'));"
></span>
</tr>
</table>
<br>
...
...
templates/default/itemfind.htm
View file @
0614f15d
...
...
@@ -7,7 +7,7 @@
<input
type=
"hidden"
id=
"command"
name=
"command"
value=
"itemget"
>
<input
type=
"button"
class=
"cmdbutton"
id=
"zz"
name=
"itemget"
value=
"[Z]拾取"
onclick=
"postCmd('gamecmd','command.php');this.disabled=true;"
>
<!--{if $club==20}-->
<input
type=
"button"
id=
"
aa"
class=
"cmdbutton"
name=
"split_itm"
value=
"[A
]提炼"
onclick=
"$('command').value='split_itm0';postCmd('gamecmd','command.php');this.disabled=true;"
>
<input
type=
"button"
id=
"
cc"
class=
"cmdbutton"
name=
"split_itm"
value=
"[C
]提炼"
onclick=
"$('command').value='split_itm0';postCmd('gamecmd','command.php');this.disabled=true;"
>
<!--{/if}-->
<br><br>
<input
type=
"button"
class=
"cmdbutton"
id=
"xx"
name=
"dropitm0"
value=
"[X]丢弃"
onclick=
"$('command').value='dropitm0';postCmd('gamecmd','command.php');this.disabled=true;"
>
\ No newline at end of file
templates/default/itemmix_tips.htm
View file @
0614f15d
...
...
@@ -42,7 +42,7 @@
border
:
1px
solid
rgba
(
225
,
124
,
226
,
0.4
);
}
</style>
<div
style=
"width:740px"
>
<div
style=
"width:7
20px max-width:7
40px"
>
<div
class=
"b1"
style=
"height:20px"
><span>
元素笔记
</span></div>
<div
class=
"b3"
style=
"min-height:380px;display: flex;position:relative;justify-content: center;"
>
<div
style=
"min-width: 500px;max-width:720px;max-height:400px;text-align:left;word-break:break-all;overflow:auto;"
>
...
...
@@ -91,9 +91,8 @@
</tr>
</table>
<!--{/loop}-->
<br>
<hr
style=
"clear:both; border: 1px solid rgba(225, 124, 226, 0.25);"
>
<div
style=
"display: block;word-break:break-all;overflow:auto;"
>
<div
style=
"clear:both; display: block;word-break:break-all;overflow:auto;"
>
<br>
{$smhint}
</div>
</div>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment