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
fbab5ee3
Commit
fbab5ee3
authored
Mar 23, 2023
by
Nemo Ma
Committed by
GitHub
Mar 23, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #83 from hikawiier/waaagh
Update & Fix
parents
6bd5d589
f48f7db7
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
243 additions
and
211 deletions
+243
-211
game.php
game.php
+1
-1
gamedata/cache/clubskills_1.php
gamedata/cache/clubskills_1.php
+23
-0
gamedata/cache/gamecfg_1.php
gamedata/cache/gamecfg_1.php
+2
-0
gamedata/cache/shopitem_1.php
gamedata/cache/shopitem_1.php
+16
-16
gamedata/cache/tooltip_1.php
gamedata/cache/tooltip_1.php
+10
-0
include/common.inc.php
include/common.inc.php
+1
-0
include/game.func.php
include/game.func.php
+1
-2
include/game/item.func.php
include/game/item.func.php
+2
-2
include/game/revattr.func.php
include/game/revattr.func.php
+43
-11
include/game/revattr_extra.func.php
include/game/revattr_extra.func.php
+5
-0
include/game/revbattle.func.php
include/game/revbattle.func.php
+1
-1
include/game/revcombat.func.php
include/game/revcombat.func.php
+3
-2
include/game20130526.js
include/game20130526.js
+2
-0
include/global.func.php
include/global.func.php
+9
-0
include/state.func.php
include/state.func.php
+117
-173
templates/default/command.htm
templates/default/command.htm
+7
-3
No files found.
game.php
View file @
fbab5ee3
...
...
@@ -3,7 +3,7 @@
define
(
'CURSCRIPT'
,
'game'
);
require
'./include/common.inc.php'
;
require
GAME_ROOT
.
'./include/game.func.php'
;
requir
e_once
GAME_ROOT
.
'./include/game/titles.func.php'
;
includ
e_once
GAME_ROOT
.
'./include/game/titles.func.php'
;
if
(
!
$cuser
||!
$cpass
)
{
gexit
(
$_ERROR
[
'no_login'
],
__file__
,
__line__
);
}
if
(
isset
(
$mode
)
&&
$mode
==
'quit'
)
{
...
...
gamedata/cache/clubskills_1.php
View file @
fbab5ee3
...
...
@@ -185,6 +185,7 @@ $cskills = Array
(
'name'
=>
'偷袭'
,
'tags'
=>
Array
(
'battle'
,
'opening'
),
'wepk'
=>
Array
(
'P'
),
'desc'
=>
'本次攻击必定触发技能“<span class="yellow">猛击</span>”且不会被反击。<br>
持殴系武器方可发动,发动消耗<span class="yellow">[:ragecost:]</span>点怒气。<br>'
,
'bdesc'
=>
'必定触发技能“<span class="yellow">猛击</span>”且不会被反击。消耗<span class="red">[:ragecost:]</span>怒气'
,
...
...
@@ -224,6 +225,7 @@ $cskills = Array
(
'name'
=>
'闷棍'
,
'tags'
=>
Array
(
'battle'
),
'wepk'
=>
Array
(
'P'
),
'desc'
=>
'本次攻击必定触发技能“<span class="yellow">猛击</span>”,<br>
并对敌人额外造成(<span class="yellow">敌方体力上限减当前体力</span>)点的最终伤害。<br>
持钝器方可发动,发动消耗<span class="yellow">[:ragecost:]</span>点怒气。'
,
...
...
@@ -261,6 +263,7 @@ $cskills = Array
(
'name'
=>
'解牛'
,
'tags'
=>
Array
(
'battle'
),
'wepk'
=>
Array
(
'K'
),
'desc'
=>
'本次攻击附加<span class="yellow">([:fixdmg:]+<span tooltip="基于你目前的等级">[^lvl^]</span>)</span>点的最终伤害,且武器损耗率减半。<br>
持斩系武器方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气'
,
'bdesc'
=>
'本次攻击附加<span class="yellow">[:fixdmg:]+[^lvl^]</span>点伤害,且武器损耗率减半,消耗<span class="red">[:ragecost:]</span>怒气'
,
...
...
@@ -313,6 +316,7 @@ $cskills = Array
(
'name'
=>
'强袭'
,
'tags'
=>
Array
(
'battle'
),
'wepk'
=>
Array
(
'K'
),
'desc'
=>
'本次攻击无视减半类防御属性,最终伤害<span class="yellow">+[:findmgr:]%</span>'
,
'bdesc'
=>
'本次攻击攻击最终伤害<span class="yellow">+[:findmgr:]%</span>,无视敌方减半类防御属性;消耗<span class="red">[:ragecost:]</span>怒气'
,
'vars'
=>
Array
(
...
...
@@ -430,6 +434,7 @@ $cskills = Array
(
'name'
=>
'附魔'
,
'tags'
=>
Array
(
'battle'
,
'passive'
),
'wepk'
=>
Array
(
'C'
),
'desc'
=>
'<span tooltip="主动发动时,若角色身上不存在伤害类属性,则会为其临时附加一项随机属性。"><span class="grey">[附加提示]</span>
主动发动时,<br>在本次施加的下列属性中随机选择一种,<br>你持投系武器造成的该属性伤害永久<span class="yellow">+[:exdmggain:]%</span>(最高[:exdmgmax:]%)。<br>
持投掷兵器时生效,消耗<span class="yellow">[:ragecost:]</span>点怒气。<br>
...
...
@@ -479,6 +484,7 @@ $cskills = Array
(
'name'
=>
'潜能'
,
'tags'
=>
Array
(
'battle'
),
'wepk'
=>
Array
(
'C'
),
'desc'
=>
'本次攻击必中且物理伤害<span class="yellow">+[:phydmgr:]%</span><br>
持投系武器方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气'
,
'bdesc'
=>
'攻击必中且物理伤害<span class="yellow">+[:phydmgr:]%</span><br>消耗<span class="red">[:ragecost:]</span>怒气'
,
...
...
@@ -594,9 +600,11 @@ $cskills = Array
),
'lockdesc'
=>
Array
(
'wepk+wep_kind'
=>
'武器不适用,持<span class="yellow">射系武器</span>或<span class="yellow">重型枪械</span>时生效'
,
'weps'
=>
'武器弹药不足,无法发动'
,
),
'unlock'
=>
Array
(
'wepk+wep_kind'
=>
"[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'"
,
'weps'
=>
"[:weps:] != '∞'"
,
),
),
'c4_break'
=>
Array
...
...
@@ -627,15 +635,18 @@ $cskills = Array
),
'lockdesc'
=>
Array
(
'wepk+wep_kind'
=>
'武器不适用,持<span class="yellow">射系武器</span>或<span class="yellow">重型枪械</span>时生效'
,
'weps'
=>
'武器弹药不足,无法发动'
,
),
'unlock'
=>
Array
(
'wepk+wep_kind'
=>
"[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'"
,
'weps'
=>
"[:weps:] != '∞'"
,
),
),
'c4_aiming'
=>
Array
(
'name'
=>
'瞄准'
,
'tags'
=>
Array
(
'battle'
),
'wepk'
=>
Array
(
'G'
,
'J'
),
'desc'
=>
'本次攻击物理伤害<span class="yellow">+[:phydmgr:]</span>,命中率<span class="yellow">+[:accgain:]%</span><br>
使用射系武器方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气'
,
'bdesc'
=>
'本次攻击物理伤害<span class="yellow">+[:phydmgr:]%</span>,<br>命中率<span class="yellow">+[:accgain:]%</span><br>
...
...
@@ -648,10 +659,12 @@ $cskills = Array
'lockdesc'
=>
Array
(
'lvl'
=>
'3级时解锁'
,
'wepk+wep_kind'
=>
'武器不适用,持<span class="yellow">射系武器</span>或<span class="yellow">重型枪械</span>时生效'
,
'weps'
=>
'武器弹药不足,无法发动'
,
),
'unlock'
=>
Array
(
'lvl'
=>
'[:lvl:] >= 3'
,
'wepk+wep_kind'
=>
"[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'"
,
'weps'
=>
"[:weps:] != '∞'"
,
),
),
'c4_loot'
=>
Array
...
...
@@ -674,6 +687,7 @@ $cskills = Array
(
'name'
=>
'咆哮'
,
'tags'
=>
Array
(
'battle'
,
'unlock_battle_hidden'
),
'wepk'
=>
Array
(
'G'
,
'J'
),
'desc'
=>
'本次攻击物理伤害<span class="yellow">+[:phydmgr:]%</span>,属性伤害<span class="yellow">+[:exdmgr:]%</span>,<br>
防具损坏效果<span class="yellow">+[:inftfix:]</span>。使用射系武器方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气'
,
'bdesc'
=>
'物理伤害<span class="yellow">+[:phydmgr:]%</span>,属性伤害<span class="yellow">+[:exdmgr:]%</span>,
...
...
@@ -690,18 +704,21 @@ $cskills = Array
'skillpara|c4_roar-active'
=>
'点击「解锁」获得此技能,之后将无法使用技能「穿杨」<br>'
,
'lvl'
=>
'已解锁,15级后可用'
,
'wepk+wep_kind'
=>
'武器不适用,持<span class="yellow">射系武器</span>或<span class="yellow">重型枪械</span>时生效'
,
'weps'
=>
'武器弹药不足,无法发动'
,
),
'unlock'
=>
Array
(
'skillpara|c4_roar-disable'
=>
'empty([:skillpara|c4_roar-disable:])'
,
'skillpara|c4_roar-active'
=>
'!empty([:skillpara|c4_roar-active:])'
,
'lvl'
=>
'[:lvl:] >= 15'
,
'wepk+wep_kind'
=>
"[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'"
,
'weps'
=>
"[:weps:] != '∞'"
,
),
),
'c4_sniper'
=>
Array
(
'name'
=>
'穿杨'
,
'tags'
=>
Array
(
'battle'
,
'unlock_battle_hidden'
),
'wepk'
=>
Array
(
'G'
,
'J'
),
'desc'
=>
'物理伤害<span class="yellow">+[:phydmgr:]%</span>,命中率<span class="yellow">+[:accgain:]%</span>,射程<span class="yellow">+[:rangegain:]</span>,<span class="yellow">连击</span>无效,<br>
但<span class="yellow">[:prfix:]%概率贯穿</span>。使用远程武器/重型枪械方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气'
,
'bdesc'
=>
'物理伤害<span class="yellow">+[:phydmgr:]%</span>,命中率<span class="yellow">+[:accgain:]%</span>,射程<span class="yellow">+[:rangegain:]</span>,<span class="yellow">连击</span>无效,
...
...
@@ -719,12 +736,14 @@ $cskills = Array
'skillpara|c4_sniper-active'
=>
"点击「解锁」获得此技能,之后将无法使用技能「咆哮」<br>"
,
'lvl'
=>
'已解锁,15级后可用'
,
'wepk+wep_kind'
=>
'武器不适用,持<span class="yellow">射系武器</span>或<span class="yellow">重型枪械</span>时生效'
,
'weps'
=>
'武器弹药不足,无法发动'
,
),
'unlock'
=>
Array
(
'skillpara|c4_sniper-disable'
=>
'empty([:skillpara|c4_sniper-disable:])'
,
'skillpara|c4_sniper-active'
=>
'!empty([:skillpara|c4_sniper-active:])'
,
'lvl'
=>
'[:lvl:] >= 15'
,
'wepk+wep_kind'
=>
"[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'"
,
'weps'
=>
"[:weps:] != '∞'"
,
),
),
'c4_headshot'
=>
Array
...
...
@@ -739,11 +758,13 @@ $cskills = Array
'lvl'
=>
'15级时解锁'
,
'skillpara|c4_stable-costcount+skillpara|c4_break-costcount'
=>
'在「静息」和「破甲」上共计花费至少15技能点以解锁'
,
'wepk+wep_kind'
=>
'武器不适用,持<span class="yellow">射系武器</span>或<span class="yellow">重型枪械</span>时生效'
,
'weps'
=>
'武器弹药不足,无法发动'
,
),
'unlock'
=>
Array
(
'lvl'
=>
'[:lvl:] >= 15'
,
'skillpara|c4_stable-costcount+skillpara|c4_break-costcount'
=>
'[:skillpara|c4_stable-costcount:]+[:skillpara|c4_break-costcount:] >= 15'
,
'wepk+wep_kind'
=>
"[:wepk:] == 'WG' || [:wepk:] == 'WJ' || [:wepk:] == 'WGK' || [:wepk:] == 'WDG' || [:wep_kind:] == 'G' || [:wep_kind:] == 'J'"
,
'weps'
=>
"[:weps:] != '∞'"
,
),
),
'c5_sneak'
=>
Array
...
...
@@ -824,6 +845,7 @@ $cskills = Array
(
'name'
=>
'高能'
,
'tags'
=>
Array
(
'battle'
),
'wepk'
=>
Array
(
'D'
),
'desc'
=>
'本次攻击中爆炸属性伤害无视一切增益减益效果,<br>
使用爆系武器方可发动,消耗<span class="yellow">[:ragecost:]</span>点怒气。'
,
'bdesc'
=>
'本次攻击中爆炸属性伤害无视一切增益减益效果;消耗<span class="red">[:ragecost:]</span>怒气'
,
...
...
@@ -843,6 +865,7 @@ $cskills = Array
(
'name'
=>
'双响'
,
'tags'
=>
Array
(
'battle'
,
'limit'
),
'wepk'
=>
Array
(
'D'
),
'desc'
=>
'本局已发动<span class="redseed"> [^skillpara|c5_double-active_t^]/[:maxactive_t:] </span>次<br>使用爆系武器方可发动,连续攻击[:chase_t:]次。'
,
'bdesc'
=>
'本次战斗你将连续攻击[:chase_t:]次;本局已发动<span class="redseed">[^skillpara|c5_double-active_t^]/[:maxactive_t:]</span>次'
,
'svars'
=>
Array
(
...
...
gamedata/cache/gamecfg_1.php
View file @
fbab5ee3
...
...
@@ -75,6 +75,8 @@ $moneylimit = 65500;
$sleep_time
=
3
;
//生命恢复时间(秒):*秒1点恢复
$heal_time
=
6
;
//静养时怒气增长时间(秒):*秒1点恢复
$rage_time
=
6
;
//包扎伤口需要的体力
$inf_sp
=
50
;
//治疗特殊状态需要的体力
...
...
gamedata/cache/shopitem_1.php
View file @
fbab5ee3
<?
if
(
!
defined
(
'IN_GAME'
))
exit
(
'Access Denied'
);
?>
0,2,,,补给,,,,,
1,
1000,13,0,体力饮料,HS,5
0,1,,
1,
500,17,0,体力回复药,HS,10
0,1,,
1,
200,26,1,圆形罐头,HS,2
00,1,,
1,
1000,12,0,疗伤粉,HH,30,2
,,
1,
500,22,0,治疗针,HH,10
0,1,,
1,
200,55,1,超级治疗针,HH,20
0,1,,
1,
500,43,0,美味水,HB,50,1
,,
1,
200,98,1,非常食,HB,80
,2,,
1,100,113,2,龙料理,HB,100,2,,
1,
300,13,0,矿泉水,HS,12
0,1,,
1,
150,17,0,体力回复药,HS,24
0,1,,
1,
100,26,1,圆形罐头,HS,6
00,1,,
1,
300,12,0,面包,HH,120,1
,,
1,
150,22,0,治疗针,HH,22
0,1,,
1,
100,55,1,超级治疗针,HH,64
0,1,,
1,
100,43,0,美味水,HB,75,2
,,
1,
100,98,1,非常食,HB,788
,2,,
1,100,113,2,龙料理,HB,1
5
00,2,,
0,2,,,药剂,,,,,
2,1000,1,0,装有H173的注射器,Y,1,1,,
2,50,20,0,溶剂SCP-294_PT_Poini_Kune,Y,1,1,,
...
...
@@ -16,12 +16,12 @@
2,50,20,0,溶剂SCP-294_PT_Strarf,Y,1,1,,
2,50,20,1,溶剂SCP-294_PT_ErulTron,Y,1,1,,
2,750,5,0,毒药,Y,1,1,,
2,
5000
,10,0,解毒剂,Cp,1,1,,
2,
5000
,20,0,烧伤药剂,Cu,1,1,,
2,
5000
,20,0,解冻药水,Ci,1,1,,
2,
5000
,20,0,麻痹药剂,Ce,1,1,,
2,
5000
,20,0,清醒药剂,Cw,1,1,,
2,10
00,20
0,1,全恢复药剂,Ca,1,1,,
2,
25
,10,0,解毒剂,Cp,1,1,,
2,
25
,20,0,烧伤药剂,Cu,1,1,,
2,
25
,20,0,解冻药水,Ci,1,1,,
2,
25
,20,0,麻痹药剂,Ce,1,1,,
2,
25
,20,0,清醒药剂,Cw,1,1,,
2,10
,6
0,1,全恢复药剂,Ca,1,1,,
0,3,,,钝器,,,,,
3,500,10,0,桌球拍,WP,20,15,,
3,100,300,0,超级重锤,WP,80,15,,
...
...
@@ -86,7 +86,7 @@
9,300,14,0,死库水,DB,1,75,,
9,1,5,0,『Poini Kune的死库水』,DB,5,75,,
9,1,5,0,『Erul Tron的泳装』,DB,10,75,,
9,1,32768,0,数据……碎片,DB,
573,765
,Z,
9,1,32768,0,数据……碎片,DB,
3756,7
,Z,
9,100,600,0,防弹背心,DB,25,30,G,
9,50,1500,1,☆能量装甲☆,DB,50,30,GC,
9,25,3200,2,☆光学迷彩改进型☆,DB,90,20,GC,
...
...
gamedata/cache/tooltip_1.php
0 → 100644
View file @
fbab5ee3
<?php
if
(
!
defined
(
'IN_GAME'
))
exit
(
'Access Denied'
);
$cmd_tips
=
Array
(
);
?>
include/common.inc.php
View file @
fbab5ee3
...
...
@@ -51,6 +51,7 @@ require config('combatcfg',$gamecfg);
require
config
(
'clubskills'
,
$gamecfg
);
require
config
(
'dialogue'
,
$gamecfg
);
require
config
(
'audio'
,
$gamecfg
);
require
config
(
'tooltip'
,
$gamecfg
);
include
GAME_ROOT
.
'./gamedata/combatinfo.php'
;
...
...
include/game.func.php
View file @
fbab5ee3
...
...
@@ -392,14 +392,13 @@ function init_bgm($force_update=0)
if
(
!
empty
(
$bgmlink
)
&&
!
empty
(
$bgmtype
))
{
$bgmplayer
=
<<<EOT
<audio id="gamebgm" autoplay controls
onplay="$('gamebgm').volume=$volume_r;
">
<audio id="gamebgm" autoplay controls
=1
">
<source id="gbgm" src="$bgmlink" type="$bgmtype">
</audio>
<div id="bgmlist">$json_bgmarr</div>
<div id="nowbgm">0</div>
<script>
$('gamebgm').volume = $volume_r;
$('bgmname').innerHTML = $bgmname;
gamebgm.addEventListener('ended', function () {
changeBGM();
}, false);
...
...
include/game/item.func.php
View file @
fbab5ee3
...
...
@@ -13,6 +13,8 @@ function itemuse($itmn,&$data=NULL) {
global
$url
,
$cmd
,
$mode
,
$db
,
$tablepre
,
$log
,
$nosta
,
$noarb
,
$gamevars
,
$corpseprotect
,
$now
,
$gamecfg
,
$hack
,
$gamevars
;
global
$exdmginf
,
$ex_inf
,
$cskills
,
$elements_info
,
$sparkle
,
$event_bgm
;
global
$upexp
,
$baseexp
,
$elec_cap
;
//Some globals seems to be still needed... ...
global
$itemspkinfo
;
if
(
!
isset
(
$data
))
{
...
...
@@ -2162,8 +2164,6 @@ function itemuse($itmn,&$data=NULL) {
$log
.=
$emix_slip
[
array_rand
(
$emix_slip
)];
//除商店纸条外:提供一条元素特征(TODO)、或一条固定配方、或一条随机属性组合
$log
.=
"<br><span class='yellow'>附:见面有缘,再送你一条提示吧:<br>“将带有"
;
//Some globals seems to be still needed... ...
global
$itemspkinfo
;
include_once
GAME_ROOT
.
'./include/game/elementmix.func.php'
;
if
(
!
preg_match
(
'/(A|B|C|D)/'
,
$itm
))
{
...
...
include/game/revattr.func.php
View file @
fbab5ee3
...
...
@@ -11,28 +11,60 @@
include_once
GAME_ROOT
.
'./include/game/revattr_extra.func.php'
;
//获取真实攻击类别
function
get_wep_kind
(
&
$pa
,
$wep_kind
=
''
)
function
get_wep_kind
(
&
$pa
,
$wep_kind
=
''
,
$pd_range
=
NULL
)
{
global
$nosta
;
global
$nosta
,
$attinfo
;
# 刷新空弹药判定
if
(
isset
(
$pa
[
'is_wpg'
]))
unset
(
$pa
[
'is_wpg'
]);
if
(
!
empty
(
$wep_kind
))
# 检查是否为双系武器
$w1
=
substr
(
$pa
[
'wepk'
],
1
,
1
);
$w2
=
substr
(
$pa
[
'wepk'
],
2
,
1
);
$w2
=
!
empty
(
$w2
)
&&
isset
(
$attinfo
[
$w2
])
?
$w2
:
''
;
# 输入了预设的攻击方式,检查是否合法
if
(
!
empty
(
$wep_kind
))
{
$pa
[
'wep_kind'
]
=
strpos
(
$pa
[
'wepk'
],
$wep_kind
)
===
false
?
substr
(
$pa
[
'wepk'
],
1
,
1
)
:
$wep_kind
;
if
(
strpos
(
$pa
[
'wepk'
],
$wep_kind
)
!==
false
)
$pa
[
'wep_kind'
]
=
$wep_kind
;
else
$pa
[
'wep_kind'
]
=
$wep_kind
==
$w2
?
$w2
:
$w1
;
}
else
# 没有输入预设攻击方式,自动选择
else
{
$w1
=
substr
(
$pa
[
'wepk'
],
1
,
1
);
$w2
=
substr
(
$pa
[
'wepk'
],
2
,
1
);
# 这里是判断双系武器没有弹药的情况下 能否使用第二系武器
if
(((
$w1
==
'G'
)
||
(
$w1
==
'J'
))
&&
(
$pa
[
'weps'
]
==
$nosta
))
if
(
empty
(
$w2
))
{
$pa
[
'wep_kind'
]
=
$w2
?
$w2
:
$w1
;
$pa
[
'wep_kind'
]
=
$w1
;
}
else
{
$pa
[
'wep_kind'
]
=
$w1
;
# 射系武器没有子弹的情况下,自动选用第二攻击模式
if
((
$w1
==
'G'
||
$w1
==
'J'
)
&&
$pa
[
'weps'
]
==
$nosta
)
{
$pa
[
'wep_kind'
]
=
$w2
;
}
elseif
((
$w2
==
'G'
||
$w2
==
'J'
)
&&
$pa
[
'weps'
]
==
$nosta
)
{
$pa
[
'wep_kind'
]
=
$w1
;
}
# 检查策略模式:射程优先 & 熟练优先
else
{
$pa
[
'wep_kind'
]
=
$w1
;
$w1_skill
=
get_wep_skill
(
$pa
);
$w1_range
=
get_wep_range
(
$pa
);
$pa
[
'wep_kind'
]
=
$w2
;
$w2_skill
=
get_wep_skill
(
$pa
);
$w2_range
=
get_wep_range
(
$pa
);
# 传入pd射程,且当前两种攻击方式在射程判定上没有区别,则熟练优先
if
(
isset
(
$pd_range
)
&&
((
$w1_range
>
$pd_range
&&
$w2_range
>
$pd_range
)
||
(
$w1_range
<
$pd_range
&&
$w2_range
<
$pd_range
)))
{
$pa
[
'wep_kind'
]
=
$w1_skill
>
$w2_skill
?
$w1
:
$w2
;
}
else
{
# 两把武器熟练都大于250的情况下,射程优先
if
(
$w1_skill
>
250
&&
$w2_skill
>
250
)
$pa
[
'wep_kind'
]
=
$w1_range
>
$w2_range
?
$w1
:
$w2
;
# 否则熟练优先
else
$pa
[
'wep_kind'
]
=
$w1_skill
>
$w2_skill
?
$w1
:
$w2
;
}
}
}
}
# 这里是最终判断是否为枪托打人的环节
...
...
include/game/revattr_extra.func.php
View file @
fbab5ee3
...
...
@@ -34,6 +34,11 @@
{
set_skillpara
(
$bsk
,
'active_t'
,
get_skillpara
(
$bsk
,
'active_t'
,
$pa
[
'clbpara'
])
+
1
,
$pa
[
'clbpara'
]);
}
# 重新判定双系武器的攻击方式
if
(
isset
(
$cskills
[
$bsk
][
'wepk'
])
&&
!
in_array
(
$pa
[
'wep_kind'
],
$cskills
[
$bsk
][
'wepk'
]))
{
get_wep_kind
(
$pa
,
$cskills
[
$bsk
][
'wepk'
][
0
]);
}
# 检查是否需要addnews
addnews
(
$now
,
'bsk_'
.
$bsk
,
$pa
[
'name'
],
$pd
[
'name'
]);
# 检查是否需要进行logsave
...
...
include/game/revbattle.func.php
View file @
fbab5ee3
...
...
@@ -63,7 +63,7 @@
//初始化玩家攻击方式信息
$w1
=
substr
(
$pdata
[
'wepk'
],
1
,
1
);
$w2
=
substr
(
$pdata
[
'wepk'
],
2
,
1
);
if
(
$w2
==
'0'
||
$w2
==
'1'
)
$w2
=
''
;
if
(
empty
(
$w2
)
||
is_numeric
(
$w2
)
)
$w2
=
''
;
if
((
$w1
==
'G'
||
$w1
==
'J'
)
&&
(
$pdata
[
'weps'
]
==
$nosta
))
$w1
=
'P'
;
include
template
(
'battlecmd_rev'
);
...
...
include/game/revcombat.func.php
View file @
fbab5ee3
...
...
@@ -137,13 +137,14 @@
{
$bskill
=
substr
(
$wep_kind
,
7
);
$pa
[
'bskill'
]
=
$bskill
;
$wep_kind
=
''
;
}
# 初始化双方的真实攻击方式wep_kind,传入了攻击方式/主动技的情况下,在这里判断传入参数的合法性。
get_wep_kind
(
$pa
,
$wep_kind
);
$pa
[
'wep_range'
]
=
get_wep_range
(
$pa
);
get_wep_kind
(
$pd
);
$pd
[
'wep_range'
]
=
get_wep_range
(
$pd
);
get_wep_kind
(
$pa
,
$wep_kind
,
$pd
[
'wep_range'
]);
$pa
[
'wep_range'
]
=
get_wep_range
(
$pa
);
# 传入pa为玩家、pd为NPC,且存在鏖战/追击标志时,判断战斗流程类型(标准/追击/鏖战/协战)
if
(
!
$pa
[
'type'
]
&&
$pd
[
'type'
]
&&
(
strpos
(
$pa
[
'action'
],
'dfight'
)
!==
false
||
strpos
(
$pa
[
'action'
],
'chase'
)
!==
false
))
...
...
include/game20130526.js
View file @
fbab5ee3
...
...
@@ -408,8 +408,10 @@ function changeBGM(mode=1){
Cookie
.
setCookie
(
"
nowbgmid
"
,
bgmlist
[
nowbgm
].
id
,
{
path
:
"
/
"
,
});
var
v
=
$
(
'
gamebgm
'
).
volume
;
$
(
'
bgmname
'
).
innerHTML
=
bgmlist
[
nowbgm
].
name
;
$
(
'
gamebgm
'
).
load
();
$
(
'
gamebgm
'
).
volume
=
v
;
$
(
'
gamebgm
'
).
play
();
}
...
...
include/global.func.php
View file @
fbab5ee3
...
...
@@ -657,6 +657,15 @@ function parse_info_desc($info,$type,$vars='',$short=0)
}
$sk_nums
++
;
}
# 枪械弹药类型特判
if
(
$vars
==
'WG'
||
$vars
==
'WGK'
||
$vars
==
'WDG'
)
{
if
(
empty
(
$info
))
$sk_tp
.=
"
\r
【需装填】:手枪子弹"
;
elseif
(
in_array
(
'e'
,
$info
)
||
in_array
(
'w'
,
$info
))
$sk_tp
.=
"
\r
【需装填】:枪械电池"
;
elseif
(
in_array
(
'u'
,
$info
)
||
in_array
(
'i'
,
$info
))
$sk_tp
.=
"
\r
【需装填】:能源弹药"
;
elseif
(
in_array
(
'r'
,
$info
))
$sk_tp
.=
"
\r
【需装填】:机枪子弹"
;
}
if
(
$vars
==
'WJ'
)
$sk_tp
.=
"
\r
【需装填】:重型弹药"
;
if
(
!
empty
(
$sk_info
))
$ret
=
$sk_info
;
if
(
$sk_max
>
$short_nums
&&
$short
)
$ret
=
$itemspkinfo
[
$info
[
0
]]
.
"+...+"
.
$itemspkinfo
[
end
(
$info
)];
if
(
!
empty
(
$sk_tp
))
...
...
include/state.func.php
View file @
fbab5ee3
...
...
@@ -369,194 +369,138 @@ function lvlup(&$lvl, &$exp, $isplayer = 1) {
return
;
}
/*function lvlup(&$lvl, &$exp, $isplayer = 1) {
global $log,$baseexp;
$up_exp_temp = round((2*$lvl+1)*$baseexp);
if($exp >= $up_exp_temp && $lvl<255) {
if($isplayer){
global $name,$hp,$mhp,$sp,$msp,$att,$def,$upexp,$club;
$sknlist=Array(1=>'wp',2=>'wk',3=>'wc',4=>'wg',5=>'wd',9=>'wf');//每级提升熟练
$skname=$sknlist[$club];
if($skname){
global ${$skname},$skilllaninfo;
}
$lvup = 1+floor(($exp - $up_exp_temp)/$baseexp/2);
$lvup = $lvup > 255-$lvl ? 255-$lvl : $lvup;
//$log .="$lvup<br>";
$lvuphp = $lvupatt = $lvupdef = $lvupskill =0;
for ($i=0;$i<$lvup;$i+=1){
$lvuphp += rand(8,10);$lvupatt += rand(2,4);$lvupdef += rand(3,5);
if($skname){
$lvupskill += rand(3,5);
}
$sp += ($msp * 0.1);
}
$lvl += $lvup;$up_exp_temp = round((2*$lvl+1)*$baseexp);
if($lvl>=255){$lvl=255;$exp=$up_exp_temp;}
$upexp=$up_exp_temp;
$hp += $lvuphp;$mhp += $lvuphp;
$att += $lvupatt;$def += $lvupdef;
${$skname} += $lvupskill;
if($sp >= $msp){$sp = $msp;}
if($skname){
$sklog = ",{$skilllaninfo[$skname]}+{$lvupskill}";
}
$log .= "<span class=\"yellow\">你升了{$lvup}级!生命+{$lvuphp},攻击+{$lvupatt},防御+{$lvupdef}{$sklog}!</span><br>";
} else {
global $now,$w_type,$w_pid,$w_name,$w_hp,$w_mhp,$w_sp,$w_msp,$w_att,$w_def,$w_upexp,$w_club;
$sknlist=Array(1=>'wp',2=>'wk',3=>'wg',4=>'wc',5=>'wd',9=>'wf');//每级提升熟练
$skname=$sknlist[$w_club];
if($skname){
global ${'w_'.$skname},$skilllaninfo;
}
$lvup = 1+floor(($exp - $up_exp_temp)/$baseexp/2);
$lvup = $lvup > 255-$lvl ? 255-$lvl : $lvup;
$lvuphp = $lvupatt = $lvupdef = $lvupskill = 0;
for ($i=0;$i<$lvup;$i+=1){
$lvuphp += rand(8,10);$lvupatt += rand(2,4);$lvupdef += rand(3,5);
if($skname){
$lvupskill += rand(3,5);
}
$w_sp += ($w_msp * 0.1);
}
$lvl += $lvup;$up_exp_temp = round((2*$lvl+1)*$baseexp);
//玩家被攻击时的生命恢复未实现
if($lvl>=255){$lvl=255;$exp=$up_exp_temp;}
$w_upexp=$up_exp_temp;
$w_hp += $lvuphp;$w_mhp += $lvuphp;
$w_att += $lvupatt;$w_def += $lvupdef;
${'w_'.$skname} += $lvupskill;
if($w_sp >= $w_msp){$w_sp = $w_msp;}
if(!$w_type){
if($skname){
$sklog = ",{$skilllaninfo[$skname]}+{$lvupskill}";
}
$w_log = "<span class=\"yellow\">你升了{$lvup}级!生命+{$lvuphp},攻击+{$lvupatt},防御+{$lvupdef}{$sklog}!</span><br>";
logsave($w_pid,$now,$w_log);
}
function
calculate_rest_upsp
(
$rtime
,
&
$pa
)
{
global
$sleep_time
,
$db
,
$tablepre
,
$log
;
# 治疗姿态下恢复速率变为3倍
if
(
$pa
[
'pose'
]
==
5
)
$rtime
*=
3
;
$upsp
=
round
(
$pa
[
'msp'
]
*
$rtime
/
$sleep_time
/
100
);
# 灵子姿态下,恢复速率受种火数量加成
if
(
$pa
[
'pose'
]
==
8
&&
$pa
[
'sp'
]
<
$pa
[
'msp'
])
{
$result
=
$db
->
query
(
"SELECT pid FROM
{
$tablepre
}
players WHERE type=92 AND pls=
{
$pa
[
'pls'
]
}
AND hp>0 "
);
$nums
=
$db
->
num_rows
(
$result
);
if
(
$nums
)
{
$log
.=
"在你闭目养神之际……似乎有什么东西戳了戳你的脸……<br>感觉身体轻松了不少。<br>"
;
$upsp
+=
$nums
*
10
*
$rtime
;
}
} elseif($lvl >= 255){$lvl=255;$exp=$up_exp_temp;}
return;
}*/
}
return
$upsp
;
}
function
calculate_rest_uphp
(
$rtime
,
&
$pa
)
{
global
$heal_time
,
$db
,
$tablepre
,
$log
;
# 治疗姿态下恢复速率变为3倍
if
(
$pa
[
'pose'
]
==
5
)
$rtime
*=
3
;
$uphp
=
round
(
$pa
[
'mhp'
]
*
$rtime
/
$heal_time
/
100
);
/*if (strpos ($pa['inf'], 'b' ) !== false) {
$uphp = round ( $uphp / 2 );
}*/
# 灵子姿态下,恢复速率受种火数量加成
if
(
$pa
[
'pose'
]
==
8
&&
$pa
[
'hp'
]
<
$pa
[
'mhp'
])
{
$result
=
$db
->
query
(
"SELECT pid FROM
{
$tablepre
}
players WHERE type=92 AND pls=
{
$pa
[
'pls'
]
}
AND hp>0 "
);
$nums
=
$db
->
num_rows
(
$result
);
if
(
$nums
)
{
$log
.=
"在你专心治疗伤口时……似乎有什么东西靠了过来……<br>伤口好像不那么疼了。<br>"
;
$uphp
+=
$nums
*
10
*
$rtime
;
}
}
return
$uphp
;
}
//静养获得怒气
function
calculate_rest_rageup
(
$rtime
,
&
$pa
)
{
global
$rage_time
;
$max_rage
=
255
;
$rageup
=
round
(
$max_rage
*
$rtime
/
$rage_time
/
100
);
if
(
strpos
(
$pa
[
'inf'
],
'h'
)
!==
false
)
{
//脑袋受伤不容易愤怒(
$rageup
=
round
(
$rageup
/
2
);
}
return
$rageup
;
}
function
rest
(
$command
,
&
$data
=
NULL
)
{
//global $now, $log, $mode, $cmd, $state, $endtime, $hp, $mhp, $sp, $msp, $sleep_time, $heal_time, $restinfo, $pose, $inf,$club,$exdmginf;
global
$now
,
$log
,
$mode
,
$cmd
,
$sleep_time
,
$heal_time
,
$restinfo
,
$exdmginf
;
global
$pdata
;
//玩家被攻击时的生命恢复未实现
if
(
!
isset
(
$data
))
{
global
$pdata
;
$data
=
&
$pdata
;
}
extract
(
$data
,
EXTR_REFS
);
$resttime
=
$now
-
$endtime
;
$endtime
=
$now
;
function
rest
(
$command
)
{
global
$now
,
$log
,
$mode
,
$cmd
,
$state
,
$endtime
,
$hp
,
$mhp
,
$sp
,
$msp
,
$sleep_time
,
$heal_time
,
$restinfo
,
$pose
,
$inf
,
$club
,
$exdmginf
;
if
(
$state
==
1
)
{
$resttime
=
$now
-
$endtime
;
$endtime
=
$now
;
$oldsp
=
$sp
;
$upsp
=
round
(
$msp
*
$resttime
/
$sleep_time
/
100
);
if
(
$pose
==
5
)
{
$upsp
*=
2
;
}
if
(
strpos
(
$inf
,
'b'
)
!==
false
)
{
$upsp
=
round
(
$upsp
/
2
);
}
if
(
$club
==
16
){
$upsp
*=
2
;
}
$sp
+=
$upsp
;
if
(
$sp
>=
$msp
)
{
$sp
=
$msp
;
}
$upsp
=
$sp
-
$oldsp
;
$log
.=
"你的体力恢复了<span class=
\"
yellow
\"
>
$upsp
</span>点。<br>"
;
}
elseif
(
$state
==
2
)
{
$resttime
=
$now
-
$endtime
;
$endtime
=
$now
;
$oldhp
=
$hp
;
$uphp
=
round
(
$mhp
*
$resttime
/
$heal_time
/
100
);
if
(
$pose
==
5
)
{
$uphp
*=
2
;
}
if
(
strpos
(
$inf
,
'b'
)
!==
false
)
{
$uphp
=
round
(
$uphp
/
2
);
}
if
(
$club
==
16
){
$uphp
*=
2
;
}
$hp
+=
$uphp
;
if
(
$hp
>=
$mhp
)
{
$hp
=
$mhp
;
}
$uphp
=
$hp
-
$oldhp
;
$log
.=
"你的生命恢复了<span class=
\"
yellow
\"
>
$uphp
</span>点。<br>"
;
}
elseif
(
$state
==
3
)
{
$resttime
=
$now
-
$endtime
;
$endtime
=
$now
;
if
(
$state
==
1
||
$state
==
3
)
{
$oldsp
=
$sp
;
$upsp
=
round
(
$msp
*
$resttime
/
$sleep_time
/
100
);
if
(
$pose
==
5
)
{
$upsp
*=
2
;
}
if
(
strpos
(
$inf
,
'b'
)
!==
false
)
{
$upsp
=
round
(
$upsp
/
2
);
}
if
(
$club
==
16
){
$upsp
*=
2
;
}
$sp
+=
$upsp
;
if
(
$sp
>=
$msp
)
{
$sp
=
$msp
;
}
$upsp
=
calculate_rest_upsp
(
$resttime
,
$data
);
$sp
+=
$upsp
;
$sp
=
min
(
$sp
,
$msp
);
$upsp
=
$sp
-
$oldsp
;
$upsp
=
max
(
0
,
$upsp
);
if
(
!
$upsp
&&
$sp
>=
$msp
)
$log
.=
"已经不需要休息了。"
;
else
$log
.=
"你的体力恢复了<span class=
\"
yellow
\"
>
$upsp
</span>点。"
;
}
if
(
$state
==
2
||
$state
==
3
)
{
$oldhp
=
$hp
;
$uphp
=
round
(
$mhp
*
$resttime
/
$heal_time
/
100
);
if
(
$pose
==
5
)
{
$uphp
*=
2
;
}
if
(
strpos
(
$inf
,
'b'
)
!==
false
)
{
$uphp
=
round
(
$uphp
/
2
);
}
if
(
$club
==
16
){
$uphp
*=
2
;
}
$hp
+=
$uphp
;
if
(
$hp
>=
$mhp
)
{
$hp
=
$mhp
;
}
$uphp
=
calculate_rest_uphp
(
$resttime
,
$data
);
$hp
+=
$uphp
;
$hp
=
min
(
$hp
,
$mhp
);
$uphp
=
$hp
-
$oldhp
;
$log
.=
"你的体力恢复了<span class=
\"
yellow
\"
>
$upsp
</span>点,生命恢复了<span class=
\"
yellow
\"
>
$uphp
</span>点。<br>"
;
$refintv
=
90
;
if
(
$pose
==
5
)
{
$refintv
-=
30
;
}
if
(
strpos
(
$inf
,
'b'
)
!==
false
)
{
$refintv
+=
30
;
$uphp
=
max
(
0
,
$uphp
);
if
(
!
$uphp
&&
$hp
>=
$mhp
)
$log
.=
"没有伤口需要治疗了。"
;
else
$log
.=
"你的生命恢复了<span class=
\"
yellow b
\"
>
$uphp
</span>点。"
;
}
if
(
$state
==
3
)
{
if
(
$pose
!=
8
)
{
$rageup
=
min
(
255
-
$rage
,
calculate_rest_rageup
(
$resttime
,
$data
));
$rage
+=
$rageup
;
$log
.=
"<br>但你在病床上辗转反侧,脑中回忆起种种倒霉遭遇,忍不住越想越气!<br>怒气增加了<span class=
\"
yellow
\"
>
$rageup
</span>点!"
;
}
$spinf
=
preg_replace
(
"/[h|b|a|f]/"
,
""
,
$inf
);
$spinflength
=
strlen
(
$spinf
);
if
(
$spinf
){
$refflag
=
false
;
do
{
$dice
=
rand
(
0
,
$refintv
);
if
(
$dice
+
15
<
$resttime
){
$infno
=
rand
(
0
,
$spinflength
-
1
);
$refinfstr
=
substr
(
$spinf
,
$infno
,
1
);
$inf
=
str_replace
(
$refinfstr
,
''
,
$inf
);
$spinf
=
str_replace
(
$refinfstr
,
''
,
$spinf
);
$log
.=
"<span class=
\"
yellow
\"
>你从
{
$exdmginf
[
$refinfstr
]
}
状态中恢复了!</span><br>"
;
$spinflength
-=
1
;
$refflag
=
true
;
if
(
!
empty
(
$inf
))
{
$refintv
=
90
;
if
(
$pose
==
5
)
{
$refintv
-=
30
;
}
if
(
strpos
(
$inf
,
'b'
)
!==
false
)
{
$refintv
+=
30
;
}
$spinf
=
preg_replace
(
"/[h|b|a|f]/"
,
""
,
$inf
);
$spinflength
=
strlen
(
$spinf
);
if
(
$spinf
){
$refflag
=
false
;
do
{
$dice
=
rand
(
0
,
$refintv
);
if
(
$dice
+
15
<
$resttime
){
$infno
=
rand
(
0
,
$spinflength
-
1
);
$refinfstr
=
substr
(
$spinf
,
$infno
,
1
);
$inf
=
str_replace
(
$refinfstr
,
''
,
$inf
);
$spinf
=
str_replace
(
$refinfstr
,
''
,
$spinf
);
$log
.=
"<span class=
\"
yellow
\"
>你从
{
$exdmginf
[
$refinfstr
]
}
状态中恢复了!</span><br>"
;
$spinflength
-=
1
;
$refflag
=
true
;
}
$resttime
-=
$refintv
;
}
while
(
$resttime
>
0
&&
$spinflength
>
0
);
if
(
!
$refflag
){
$log
.=
"也许是时间不够吧……你没有治好任何异常状态。<br>"
;
}
$resttime
-=
$refintv
;
}
while
(
$resttime
>
0
&&
$spinflength
>
0
);
if
(
!
$refflag
){
$log
.=
"也许是时间不够吧……你没有治好任何异常状态。<br>"
;
}
}
}
else
{
$mode
=
'command'
;
}
$log
.=
'<br>'
;
if
(
$command
!=
'rest'
)
{
$state
=
0
;
$endtime
=
$now
;
...
...
templates/default/command.htm
View file @
fbab5ee3
...
...
@@ -73,14 +73,18 @@
<!--{/if}-->
<!-- 第 3 行:休养指令-->
<span
tooltip=
"进入睡眠状态,随时间缓慢恢复体力"
>
<span
tooltip=
"进入睡眠状态,随时间缓慢恢复体力
<!--{if $pose == 8}-->当前地图存活种火数量越多,恢复速率越快<!--{/if}-->
"
>
<input
type=
"button"
class=
"cmdbutton"
id=
"rest1"
name=
"rest1"
value=
"睡眠"
onclick=
"$('command').value='rest1';postCmd('gamecmd','command.php');this.disabled=true;"
>
</span>
<span
tooltip=
"进入治疗状态,随时间缓慢恢复生命"
>
<span
tooltip=
"进入治疗状态,随时间缓慢恢复生命
<!--{if $pose == 8}-->当前地图存活种火数量越多,恢复速率越快<!--{/if}-->
"
>
<input
type=
"button"
class=
"cmdbutton"
id=
"rest2"
name=
"rest2"
value=
"治疗"
onclick=
"$('command').value='rest2';postCmd('gamecmd','command.php');this.disabled=true;"
>
</span>
<!--{if in_array($pls,$hospitals)}-->
<span
tooltip=
"进入静养状态,随时间缓慢恢复生命与体力"
>
<span
tooltip=
"进入静养状态,随时间缓慢恢复生命与体力
,同时可以积攒怒气
"
>
<input
type=
"button"
class=
"cmdbutton"
id=
"rest3"
name=
"rest3"
value=
"静养"
onclick=
"$('command').value='rest3';postCmd('gamecmd','command.php');this.disabled=true;"
>
</span>
<!--{/if}-->
...
...
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