Commit 76ebdf0b authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #89 from hikawiier/waaagh

rev combat phase 3.?
parents f5697fc5 99ac700f
...@@ -570,7 +570,7 @@ if($hp > 0){ ...@@ -570,7 +570,7 @@ if($hp > 0){
getcorpse($command); getcorpse($command);
} elseif($mode == 'team') { } elseif($mode == 'team') {
include_once GAME_ROOT.'./include/game/team.func.php'; include_once GAME_ROOT.'./include/game/team.func.php';
if ($command=="teammake") teammake($nteamID,$nteamPass); if ($command=="teammake") teammake($nteamID,$nteamPass,(int)$ticon);
if ($command=="teamjoin") teamjoin($nteamID,$nteamPass); if ($command=="teamjoin") teamjoin($nteamID,$nteamPass);
if ($command=="teamquit") teamquit($nteamID,$nteamPass); if ($command=="teamquit") teamquit($nteamID,$nteamPass);
} elseif($mode == 'shop') { } elseif($mode == 'shop') {
......
...@@ -13,7 +13,7 @@ $club_skillslist = Array ...@@ -13,7 +13,7 @@ $club_skillslist = Array
5 => Array('s_hp','s_ad','f_heal','c5_sneak','c5_caution','c5_review','c5_focus','c5_higheg','c5_double'), #'拆弹专家', 5 => Array('s_hp','s_ad','f_heal','c5_sneak','c5_caution','c5_review','c5_focus','c5_higheg','c5_double'), #'拆弹专家',
6 => Array('s_hp','s_ad','f_heal','c6_godluck','c6_godsend','c6_godbless','c6_godpow','c6_godeyes','c6_justice'), #'宛如疾风', 6 => Array('s_hp','s_ad','f_heal','c6_godluck','c6_godsend','c6_godbless','c6_godpow','c6_godeyes','c6_justice'), #'宛如疾风',
7 => Array('s_hp','s_ad','f_heal','c7_radar','c7_shield','c7_electric','c7_field','c7_overload','c7_emp'), #'锡安成员', 7 => Array('s_hp','s_ad','f_heal','c7_radar','c7_shield','c7_electric','c7_field','c7_overload','c7_emp'), #'锡安成员',
8 => Array('s_hp','s_ad','f_heal','c8_assassin','c8_infect','c8_infilt','c8_misty','c8_catalyst','c8_cooker'), #'黑衣组织', 8 => Array('s_hp','s_ad','f_heal','c8_expert','c8_infilt','c8_catalyst','c8_deadheal','c8_assassin'), #'黑衣组织',
9 => Array('s_hp','s_ad','f_heal','c9_spirit','c9_lb','c9_iceheart','c9_charge','c9_heartfire'), #'超能力者', 9 => Array('s_hp','s_ad','f_heal','c9_spirit','c9_lb','c9_iceheart','c9_charge','c9_heartfire'), #'超能力者',
10 => Array('s_hp','s_ad','f_heal'), #'高速成长', 10 => Array('s_hp','s_ad','f_heal'), #'高速成长',
11 => Array('s_hp','s_ad','f_heal'), #'富家子弟', 11 => Array('s_hp','s_ad','f_heal'), #'富家子弟',
...@@ -57,6 +57,7 @@ $cskills_tags = Array ...@@ -57,6 +57,7 @@ $cskills_tags = Array
'limit' => '<span tooltip="每局游戏内可发动次数有限" class="gold">【限次技】</span>', 'limit' => '<span tooltip="每局游戏内可发动次数有限" class="gold">【限次技】</span>',
//'buff' => '<span tooltip="隐藏标签:代表这是一个临时性状态" class="gold">【状态】</span>', //'buff' => '<span tooltip="隐藏标签:代表这是一个临时性状态" class="gold">【状态】</span>',
//'unlock_battle_hidden' => '<span tooltip="隐藏标签:未解锁时不会在战斗界面显示" class="gold">【隐藏】</span>', //'unlock_battle_hidden' => '<span tooltip="隐藏标签:未解锁时不会在战斗界面显示" class="gold">【隐藏】</span>',
//'player' => '<span tooltip="隐藏标签:只有玩家会有此技能" class="gold">【玩家】</span>',
); );
# 技能登记: # 技能登记:
...@@ -102,6 +103,7 @@ $cskills = Array ...@@ -102,6 +103,7 @@ $cskills = Array
's_hp' => Array 's_hp' => Array
( (
'name' => '生命', 'name' => '生命',
'tags' => Array('player'),
'desc' => '每消耗<span class="lime">[:cost:]</span>技能点,生命上限<span class="yellow">+[:hp:]</span>点', 'desc' => '每消耗<span class="lime">[:cost:]</span>技能点,生命上限<span class="yellow">+[:hp:]</span>点',
'cost' => 1, 'cost' => 1,
'input' => '升级', 'input' => '升级',
...@@ -116,6 +118,7 @@ $cskills = Array ...@@ -116,6 +118,7 @@ $cskills = Array
's_ad' => Array 's_ad' => Array
( (
'name' => '攻防', 'name' => '攻防',
'tags' => Array('player'),
'desc' => '每消耗<span class="lime">[:cost:]</span>技能点,基础攻击<span class="yellow">+[:att:]</span>点,基础防御<span class="yellow">+[:def:]</span>点', 'desc' => '每消耗<span class="lime">[:cost:]</span>技能点,基础攻击<span class="yellow">+[:att:]</span>点,基础防御<span class="yellow">+[:def:]</span>点',
'cost' => 1, 'cost' => 1,
'input' => '升级', 'input' => '升级',
...@@ -130,6 +133,7 @@ $cskills = Array ...@@ -130,6 +133,7 @@ $cskills = Array
'f_heal' => Array 'f_heal' => Array
( (
'name' => '自愈', 'name' => '自愈',
'tags' => Array('player'),
'desc' => '消耗<span class="lime">[:cost:]</span>技能点,解除全部受伤与异常状态,并完全恢复生命与体力', 'desc' => '消耗<span class="lime">[:cost:]</span>技能点,解除全部受伤与异常状态,并完全恢复生命与体力',
'cost' => 1, 'cost' => 1,
'input' => '治疗', 'input' => '治疗',
...@@ -1284,6 +1288,135 @@ $cskills = Array ...@@ -1284,6 +1288,135 @@ $cskills = Array
'lvl' => '[:lvl:] >= 21', 'lvl' => '[:lvl:] >= 21',
), ),
), ),
'c8_expert' => Array
(
'name' => '特攻',
'tags' => Array('passive'),
'desc' => '你造成的最终属性伤害提高<span class="yellow">[:exdmgr:]%</span>',
'maxlvl' => 4,
'cost' => Array(6,6,6,6,-1),
'input' => '升级',
'log' => '<span class="yellow">技能「特攻」升级成功。</span><br>',
'status' => Array('skillpara|c8_expert-lvl'),
'effect' => Array(
0 => Array('skillpara|c8_expert-lvl' => '+=::1',),
),
'svars' => Array('lvl' => 0),
'vars' => Array(
'exdmgr' => Array(10,20,30,40,50),
),
),
'c8_infilt' => Array
(
'name' => '渗透',
'tags' => Array('passive'),
'desc' => '当你处于<span class="purple">中毒</span>状态时,攻击额外附加<span class="yellow">[:exext:]</span>次毒属性攻击,<br>
且有<span class="yellow">[:infr:]%</span>概率使敌人陷入<span class="purple">中毒</span>状态,并使敌人背包内的补给<span class="purple">带毒</span>',
'maxlvl' => 6,
'cost' => Array(2,3,4,5,6,9,-1),
'input' => '升级',
'log' => '<span class="yellow">技能「渗透」升级成功。</span><br>',
'status' => Array('skillpara|c8_infilt-lvl'),
'effect' => Array(
0 => Array('skillpara|c8_infilt-lvl' => '+=::1',),
),
'svars' => Array('lvl' => 0),
'vars' => Array(
'exext' => Array(1,1,1,2,2,2,3),
'infr' => Array(0,10,20,30,40,50,60),
),
'lockdesc' => Array(
'inf' => '自身处于<span class="purple">中毒</span>状态时才可触发',
),
'unlock' => Array(
'inf' => "strpos([:inf:],'p')!==false",
),
),
'c8_catalyst' => Array
(
'name' => '催化',
'tags' => Array('battle'),
'desc' => '消耗<span class="yellow">[:ragecost:]</span>点怒气,<br>
本次攻击每造成1次毒属性伤害,最终属性伤害<span class="yellow">+[:exdmgr:]%</span>',
'bdesc' => '本次攻击每造成1次<span class="purple">毒</span>属性伤害,最终属性伤害<span class="yellow">+[:exdmgr:]%</span>;消耗<span class="red">[:ragecost:]</span>怒气',
'vars' => Array(
'ragecost' => 50,
'exdmgr' => 25,
),
'lockdesc' => Array(
'lvl' => '7级时解锁',
),
'unlock' => Array(
'lvl' => '[:lvl:] >= 7',
),
),
'c8_deadheal' => Array
(
'name' => '死疗',
'tags' => Array('passive'),
'desc' => '不再受到<span class="purple">毒性</span>伤害,并将原本伤害的<span class="yellow">[:exdmgr:]%</span>转化为治疗效果',
'vars' => Array(
'exdmgr' => 75,
),
'lockdesc' => Array(
'lvl' => '12级时解锁',
),
'unlock' => Array(
'lvl' => '[:lvl:] >= 12',
),
),
'c8_assassin' => Array
(
'name' => '暗杀',
'tags' => Array('active','limit'),
'desc' => '本局已发动<span class="redseed"> [^skillpara|c8_assassin-active_t^]/[:maxactive_t:] </span>次<br>
发动后获得以下增益:隐蔽率<span class="yellow">+[:hidegain:]%</span>,先制率<span class="yellow">+[:actgain:]%</span>,持续<span class="yellow">60</span>秒;<br>
增益持续时间内发动攻击会解除增益,但使此次攻击<span class="yellow">必中</span>,<br>
且敌人防御、抹消、制御类属性失效(贯穿)率<span class="yellow">+[:pdefbkr:]%</span>',
'input' => '发动',
'log' => '<span class="lime">技能「暗杀」发动成功。</span><br>',
'status' => Array('skillpara|c8_assassin-active','skillpara|c8_assassin-active_t'),
'effect' => Array(
0 => Array(
'skillpara|c8_assassin-active' => '=::1',
'skillpara|c8_assassin-active_t' => '+=::1',
),
),
'events' => Array('getskill_buff_assassin','active_news'),
'link' => Array('buff_assassin'),
'vars' => Array(
'maxactive_t' => 2,
),
'svars' => Array('active' => 0, 'active_t' => 0,),
'pvars' => Array('skillpara|c8_assassin-active_t'),
'lockdesc' => Array(
'skillpara|c8_assassin-active_t' => '次数耗尽,已无法发动该技能',
'lvl' => '21级时解锁',
'skillpara|c8_assassin-active' => '技能发动中!',
),
'unlock' => Array(
'skillpara|c8_assassin-active_t' => '[:skillpara|c8_assassin-active_t:] < 2',
'lvl' => '[:lvl:] >= 21',
'skillpara|c8_assassin-active' => 'empty([:skillpara|c8_assassin-active:])',
),
),
'buff_assassin' => Array
(
'name' => '[状态]暗杀',
'tags' => Array('buff'),
'desc' => '<span class="lime">「暗杀」生效中!<br>
增益效果剩余时间:<span class="yellow">[^lasttimes^]</span> 秒</span>',
'vars' => Array(
'hidegain' => 90,
'actgain' => 100,
'pdefbkr' => 25,
),
'slast' => Array(
'lasttimes' => 60,
),
'pvars' => Array('lasttimes'),
'lostevents' => Array('unactive_c8_assassin'),
),
'tl_cstick' => Array 'tl_cstick' => Array
( (
'name' => '抡尸', 'name' => '抡尸',
......
...@@ -431,7 +431,7 @@ CREATE TABLE `acbra2_winners` ( ...@@ -431,7 +431,7 @@ CREATE TABLE `acbra2_winners` (
`teamID` char(15) NOT NULL DEFAULT '', `teamID` char(15) NOT NULL DEFAULT '',
`teamPass` char(15) NOT NULL DEFAULT '', `teamPass` char(15) NOT NULL DEFAULT '',
`teamMate` text NOT NULL default '', `teamMate` text NOT NULL default '',
`teamIcon` char(15) smallint unsigned NOT NULL default '0', `teamIcon` smallint unsigned NOT NULL default '0',
wep char(30) NOT NULL default '', wep char(30) NOT NULL default '',
wepk char(40) not null default '', wepk char(40) not null default '',
wepe int(10) unsigned NOT NULL DEFAULT '0', wepe int(10) unsigned NOT NULL DEFAULT '0',
......
...@@ -57,6 +57,7 @@ CREATE TABLE bra_players ( ...@@ -57,6 +57,7 @@ CREATE TABLE bra_players (
`wf` smallint unsigned not null default '0', `wf` smallint unsigned not null default '0',
`teamID` char(40) not null default '', `teamID` char(40) not null default '',
`teamPass` char(40) not null default '', `teamPass` char(40) not null default '',
`teamIcon` smallint unsigned NOT NULL default '0',
getitem text NOT NULL default '', getitem text NOT NULL default '',
itembag text NOT NULL default '', itembag text NOT NULL default '',
itmnum smallint unsigned NOT NULL default '0', itmnum smallint unsigned NOT NULL default '0',
......
...@@ -133,7 +133,7 @@ if($command == 'kill' || $command == 'live' || $command == 'del') { ...@@ -133,7 +133,7 @@ if($command == 'kill' || $command == 'live' || $command == 'del') {
$clbpara = Array(); $clbpara = Array();
$tmp_clbpara = json_decode(htmlspecialchars_decode($str_clbpara),1); $tmp_clbpara = json_decode(htmlspecialchars_decode($str_clbpara),1);
foreach($tmp_clbpara as $key=>$res) $clbpara[$key] = $res; foreach($tmp_clbpara as $key=>$res) $clbpara[$key] = $res;
$clbpara = json_encode($clbpara); $clbpara = json_encode($clbpara,JSON_UNESCAPED_UNICODE);
} }
$effect_flag = 0; $effect_flag = 0;
$ndata = update_db_player_structure(); $ndata = update_db_player_structure();
......
...@@ -136,7 +136,7 @@ if($command == 'kill' || $command == 'live' || $command == 'del') { ...@@ -136,7 +136,7 @@ if($command == 'kill' || $command == 'live' || $command == 'del') {
$clbpara = Array(); $clbpara = Array();
$tmp_clbpara = json_decode(htmlspecialchars_decode($str_clbpara),1); $tmp_clbpara = json_decode(htmlspecialchars_decode($str_clbpara),1);
foreach($tmp_clbpara as $key=>$res) $clbpara[$key] = $res; foreach($tmp_clbpara as $key=>$res) $clbpara[$key] = $res;
$clbpara = json_encode($clbpara); $clbpara = json_encode($clbpara,JSON_UNESCAPED_UNICODE);
} }
$effect_flag = 0; $effect_flag = 0;
$ndata = update_db_player_structure(); $ndata = update_db_player_structure();
......
...@@ -316,9 +316,11 @@ function init_battle_rev($pa,$pd,$ismeet=0) ...@@ -316,9 +316,11 @@ function init_battle_rev($pa,$pd,$ismeet=0)
function init_bgm($force_update=0) function init_bgm($force_update=0)
{ {
global $pls,$command,$clbpara,$gamecfg,$bgmname; global $command,$gamecfg,$bgmname;
global $default_volume,$event_bgm,$pls_bgm,$parea_bgm,$regular_bgm,$bgmbook,$bgmlist; global $default_volume,$event_bgm,$pls_bgm,$parea_bgm,$regular_bgm,$bgmbook,$bgmlist;
//include config('audio',$gamecfg);
global $pdata;
extract($pdata,EXTR_REFS);
$clbpara = get_clbpara($clbpara); $clbpara = get_clbpara($clbpara);
# 初始化 # 初始化
...@@ -392,13 +394,13 @@ function init_bgm($force_update=0) ...@@ -392,13 +394,13 @@ function init_bgm($force_update=0)
if(!empty($bgmlink) && !empty($bgmtype)) if(!empty($bgmlink) && !empty($bgmtype))
{ {
$bgmplayer = <<<EOT $bgmplayer = <<<EOT
<audio id="gamebgm" autoplay controls=1"> <audio id="gamebgm" autoplay controls=1" onplay="$('gamebgm').volume=$('nowbgmvolume').innerHTML;">
<source id="gbgm" src="$bgmlink" type="$bgmtype"> <source id="gbgm" src="$bgmlink" type="$bgmtype">
</audio> </audio>
<div id="bgmlist">$json_bgmarr</div> <div id="bgmlist">$json_bgmarr</div>
<div id="nowbgm">0</div> <div id="nowbgm">0</div>
<div id="nowbgmvolume">$volume_r</div>
<script> <script>
$('gamebgm').volume = $volume_r;
gamebgm.addEventListener('ended', function () { gamebgm.addEventListener('ended', function () {
changeBGM(); changeBGM();
}, false); }, false);
......
...@@ -1444,6 +1444,29 @@ function reload_single_set_item(&$pa,$eqp,$enm,$active=0) ...@@ -1444,6 +1444,29 @@ function reload_single_set_item(&$pa,$eqp,$enm,$active=0)
return; return;
} }
//在背包内寻找道具进行编辑
function check_item_edit_event(&$pa,$event)
{
$flag = 0;
for($i=0;$i<=6;$i++)
{
if(!empty($pa['itms'.$i]))
{
# 「渗透」效果判定
if($event == 'c8_infilt')
{
if(strpos($pa['itmk'.$i],'H')===0)
{
$pa['itmk'.$i] = str_replace("H",'P',$pa['itmk'.$i]);
$flag = 1;
}
}
}
}
return $flag;
}
//武器损耗&消耗计算:force_imp:强制扣除武器效果;check_sk:是否在武器毁坏时重新检查属性数组$pa['ex_keys'] //武器损耗&消耗计算:force_imp:强制扣除武器效果;check_sk:是否在武器毁坏时重新检查属性数组$pa['ex_keys']
function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0) function weapon_loss(&$pa,$hurtvalue,$force_imp=0,$check_sk=0)
{ {
......
...@@ -983,6 +983,8 @@ ...@@ -983,6 +983,8 @@
$obbs = 1 - $specialrate['B']; $obbs = 1 - $specialrate['B'];
# 「天义」效果判定: # 「天义」效果判定:
if(isset($pa['skill_c6_justice'])) $obbs *= get_skillvars('c6_justice','pdefbkr'); if(isset($pa['skill_c6_justice'])) $obbs *= get_skillvars('c6_justice','pdefbkr');
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
//检查抹消属性是否生效 //检查抹消属性是否生效
if($dice > $obbs) if($dice > $obbs)
{ {
...@@ -1011,6 +1013,8 @@ ...@@ -1011,6 +1013,8 @@
$obbs = 10; $obbs = 10;
# 「天义」效果判定: # 「天义」效果判定:
if(isset($pa['skill_c6_justice'])) $obbs *= get_skillvars('c6_justice','pdefbkr'); if(isset($pa['skill_c6_justice'])) $obbs *= get_skillvars('c6_justice','pdefbkr');
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
//检查防御属性是否生效 //检查防御属性是否生效
if($dice > $obbs) if($dice > $obbs)
{ {
...@@ -1030,6 +1034,8 @@ ...@@ -1030,6 +1034,8 @@
$obbs = 10; $obbs = 10;
# 「天义」效果判定: # 「天义」效果判定:
if(isset($pa['skill_c6_justice'])) $obbs *= get_skillvars('c6_justice','pdefbkr'); if(isset($pa['skill_c6_justice'])) $obbs *= get_skillvars('c6_justice','pdefbkr');
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
if($dice > $obbs) if($dice > $obbs)
{ {
$pd['phy_def_flag'] = $def_kind[$pa['wep_kind']]; $pd['phy_def_flag'] = $def_kind[$pa['wep_kind']];
...@@ -1044,7 +1050,11 @@ ...@@ -1044,7 +1050,11 @@
if(in_array('n',$pa['ex_keys'])) if(in_array('n',$pa['ex_keys']))
{ {
$dice = diceroll(99); $dice = diceroll(99);
if($dice < $specialrate['n']) # 未贯穿率
$obbs = 1 - $specialrate['n'];
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
if($dice > $obbs)
{ {
if(!empty($pd['phy_def_flag'])) if(!empty($pd['phy_def_flag']))
{ {
...@@ -1245,6 +1255,20 @@ ...@@ -1245,6 +1255,20 @@
} }
# 「磁暴」效果判定: # 「磁暴」效果判定:
if(isset($pa['bskill_c7_electric']) && (empty($ex_keys) || !in_array('e',$ex_keys))) $ex_keys[] = 'e'; if(isset($pa['bskill_c7_electric']) && (empty($ex_keys) || !in_array('e',$ex_keys))) $ex_keys[] = 'e';
# 「渗透」效果判定:
if(isset($pa['skill_c8_infilt']))
{
$sk_lvl = get_skilllvl('c8_infilt',$pa);
$sk_keys = get_skillvars('c8_infilt','exext',$sk_lvl);
if(!empty($sk_keys))
{
do{
$ex_keys[] = 'p';
$sk_keys--;
}while($sk_keys);
$log .= "<span class='purple'>致命毒雾从{$pa['nm']}身遭蔓延开来……</span><br>";
}
}
return $ex_keys; return $ex_keys;
} }
...@@ -1257,8 +1281,12 @@ ...@@ -1257,8 +1281,12 @@
if(in_array('b',$pd['ex_keys'])) if(in_array('b',$pd['ex_keys']))
{ {
$dice = diceroll(99); $dice = diceroll(99);
# 失效率
$obbs = 1 - $specialrate['b'];
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
//检查抹消属性是否生效 //检查抹消属性是否生效
if($dice < $specialrate['b']) if($dice > $obbs)
{ {
#「脉冲」效果判定: #「脉冲」效果判定:
if(isset($pa['bskill_c7_emp']) || isset($pd['bskill_c7_emp'])) if(isset($pa['bskill_c7_emp']) || isset($pd['bskill_c7_emp']))
...@@ -1281,7 +1309,11 @@ ...@@ -1281,7 +1309,11 @@
if(!isset($pd['ex_def_flag']) && in_array('a',$pd['ex_keys'])) if(!isset($pd['ex_def_flag']) && in_array('a',$pd['ex_keys']))
{ {
$dice = diceroll(99); $dice = diceroll(99);
if($dice < 90) # 失效率
$obbs = 10;
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
if($dice > $obbs)
{ {
$pd['ex_def_flag'] = 1; $pd['ex_def_flag'] = 1;
} }
...@@ -1298,8 +1330,11 @@ ...@@ -1298,8 +1330,11 @@
{ {
if(in_array($ex_def_kind[$ex],$pd['ex_keys'])) if(in_array($ex_def_kind[$ex],$pd['ex_keys']))
{ {
$dice = diceroll(99); # 失效率
if($dice < 90) $pd['ex_def_flag'][] = $ex; //单项防御生效,加入队列 $obbs = 10;
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
if($dice > $obbs) $pd['ex_def_flag'][] = $ex; //单项防御生效,加入队列
else $invaild_ex[]= $ex; //单项防御未生效,记录一下,之后统一输出提示文本 else $invaild_ex[]= $ex; //单项防御未生效,记录一下,之后统一输出提示文本
} }
} }
...@@ -1320,7 +1355,11 @@ ...@@ -1320,7 +1355,11 @@
if(in_array('y',$pa['ex_keys'])) if(in_array('y',$pa['ex_keys']))
{ {
$dice = diceroll(99); $dice = diceroll(99);
if ($dice < $specialrate['y']) # 未破格率
$obbs = 1 - $specialrate['y'];
# 「暗杀」效果判定:
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
if ($dice > $obbs)
{ {
if(!empty($pd['ex_def_flag'])) if(!empty($pd['ex_def_flag']))
{ {
...@@ -1453,6 +1492,15 @@ ...@@ -1453,6 +1492,15 @@
$log.="<span class='yellow'>「高能」使{$pa['nm']}造成的爆炸伤害不受影响!</span><br>"; $log.="<span class='yellow'>「高能」使{$pa['nm']}造成的爆炸伤害不受影响!</span><br>";
return $ex_dmg; return $ex_dmg;
} }
# 「死疗」效果判定(不会受其他技能加成):
if(isset($pd['skill_c8_deadheal']) && $ex == 'p')
{
$sk_p = get_skillvars('c8_deadheal','exdmgr');
$ex_dmg = min($pd['mhp']-$pd['hp'],ceil($ex_dmg*($sk_p/100)));
$pd['hp'] += $ex_dmg;
$log .= "<span class='purple'>{$pd['nm']}从毒雾中汲取养分,恢复了<span class='lime'>{$ex_dmg}</span>点生命!</span><br>";
return 0;
}
//计算社团技能对单个属性伤害的系数补正 //计算社团技能对单个属性伤害的系数补正
$ex_dmg *= get_clbskill_ex_base_dmg_r($pa,$pd,$active,$ex); $ex_dmg *= get_clbskill_ex_base_dmg_r($pa,$pd,$active,$ex);
//计算社团技能对单个属性伤害的补正 //计算社团技能对单个属性伤害的补正
...@@ -1470,6 +1518,11 @@ ...@@ -1470,6 +1518,11 @@
$ex_dmg = round($ex_dmg*0.5); $ex_dmg = round($ex_dmg*0.5);
$pa['ex_dmgdef_log'] = 1; $pa['ex_dmgdef_log'] = 1;
} }
# 「催化」效果计数:
if(isset($pa['bskill_c8_catalyst']) && $ex == 'p')
{
$pa['bskill_c8_catalyst'] ++;
}
return $ex_dmg; return $ex_dmg;
} }
...@@ -1478,7 +1531,7 @@ ...@@ -1478,7 +1531,7 @@
{ {
global $log; global $log;
$ex_dmg_p = Array(); $ex_dmg_p = Array();
#「咆哮」判定: # 「咆哮」判定:
if(isset($pa['bskill_c4_roar'])) if(isset($pa['bskill_c4_roar']))
{ {
//获取倍率 //获取倍率
...@@ -1488,6 +1541,29 @@ ...@@ -1488,6 +1541,29 @@
//输出log //输出log
$log.="<span class='yellow'>「咆哮」使{$pa['nm']}造成的属性伤害提高了{$sk_p}%!</span><br>"; $log.="<span class='yellow'>「咆哮」使{$pa['nm']}造成的属性伤害提高了{$sk_p}%!</span><br>";
} }
# 「特攻」判定:
if(isset($pa['skill_c8_expert']))
{
$sk_lvl = get_skilllvl('c8_expert',$pa);
$sk_p = get_skillvars('c8_expert','exdmgr',$sk_lvl);
if(!empty($sk_p))
{
$p = 1 + ($sk_p / 100);
$ex_dmg_p[]= $p;
}
}
# 「催化」判定:
if(isset($pa['bskill_c8_catalyst']))
{
$sk_nums = $pa['bskill_c8_catalyst']-1;
if(!empty($sk_nums))
{
$sk_p = get_skillvars('c8_catalyst','exdmgr')*$sk_nums;
$p = 1 + ($sk_p / 100);
$ex_dmg_p[]= $p;
$log.="<span class='yellow'>「催化」使{$pa['nm']}造成的属性伤害提高了{$sk_p}%!</span><br>";
}
}
return $ex_dmg_p; return $ex_dmg_p;
} }
...@@ -1622,7 +1698,13 @@ ...@@ -1622,7 +1698,13 @@
if(in_array('h',$pd['ex_keys']) && $fin_dmg>=1950) if(in_array('h',$pd['ex_keys']) && $fin_dmg>=1950)
{ {
$dice = diceroll(99); $dice = diceroll(99);
if ($dice < 90) // 失效率
$obbs = 10;
# 「暗杀」效果判定
if(isset($pa['skill_buff_assassin'])) $obbs += get_skillvars('buff_assassin','pdefbkr');
if ($dice > $obbs)
{ {
//贯穿与破格同时生效时 穿透伤害制御 //贯穿与破格同时生效时 穿透伤害制御
if(isset($pa['ex_pierce_flag']) && isset($pa['pierce_flag'])) if(isset($pa['ex_pierce_flag']) && isset($pa['pierce_flag']))
...@@ -1754,6 +1836,7 @@ ...@@ -1754,6 +1836,7 @@
} }
} }
# 「磁暴」效果判定
if(isset($pa['bskill_c7_electric'])) if(isset($pa['bskill_c7_electric']))
{ {
if(strpos($pd['inf'],'e')!==false) if(strpos($pd['inf'],'e')!==false)
...@@ -1782,6 +1865,7 @@ ...@@ -1782,6 +1865,7 @@
} }
} }
# 「脉冲」效果判定
if(isset($pa['bskill_c7_emp']) && $pa['bskill_c7_emp'] > 1) if(isset($pa['bskill_c7_emp']) && $pa['bskill_c7_emp'] > 1)
{ {
if(strpos($pd['inf'],'e')!==false) if(strpos($pd['inf'],'e')!==false)
...@@ -1801,6 +1885,26 @@ ...@@ -1801,6 +1885,26 @@
} }
} }
# 「渗透」效果判定
if(isset($pa['skill_c8_infilt']))
{
$sk_lvl = get_skilllvl('c8_infilt',$pa);
$infr = get_skillvars('c8_infilt','infr',$sk_lvl);
$dice = diceroll(99);
if($dice < $infr)
{
$flag = get_inf_rev($pd,'p');
include_once GAME_ROOT.'./include/game/itemmain.func.php';
check_item_edit_event($pd,'c8_infilt');
if($flag) $log .= "<span class='yellow'>「渗透」使{$pd['nm']}{$exdmginf['p']}了!</span><br>";
else $log .= "<span class='yellow'>{$pd['nm']}没有受到「渗透」影响……大概吧?</span><br>";
}
else
{
$log .= "<span class='yellow'>{$pd['nm']}没有受到「渗透」影响!</span><br>";
}
}
# 将pa造成的伤害记录在pd的成就里 # 将pa造成的伤害记录在pd的成就里
if(!$pd['type'] && $pa['final_damage'] >= 1000000) $pd['clbpara']['achvars']['takedmg'] = $pa['final_damage']; if(!$pd['type'] && $pa['final_damage'] >= 1000000) $pd['clbpara']['achvars']['takedmg'] = $pa['final_damage'];
......
...@@ -127,6 +127,13 @@ ...@@ -127,6 +127,13 @@
$log .= "<span class='lime'>感知到危险,闪烁着淡蓝幽光的护盾自动出现在{$pa['nm']}身旁!<br></span>"; $log .= "<span class='lime'>感知到危险,闪烁着淡蓝幽光的护盾自动出现在{$pa['nm']}身旁!<br></span>";
} }
} }
# 「暗杀」特殊判定:输出一段破隐log,并丢失buff技能
elseif($sk == 'buff_assassin')
{
$pa['skill_buff_assassin'] = 1;
$pa['skilllog'] .= "<span class='yellow'>{$pa['nm']}从阴影中现出身形,打了{$pd['nm']}一个措手不及!</span><br>";
lostclubskill('buff_assassin',$pa['clbpara']);
}
# 其他非特判技能,默认给一个触发标记 # 其他非特判技能,默认给一个触发标记
else else
{ {
...@@ -160,6 +167,12 @@ ...@@ -160,6 +167,12 @@
$sk_r = get_skilllvl('c6_godsend','hidegain',$pd['clbpara']); $sk_r = get_skilllvl('c6_godsend','hidegain',$pd['clbpara']);
if(!empty($sk_r)) $r += $sk_r; if(!empty($sk_r)) $r += $sk_r;
} }
# pd处于「暗杀」状态下的效果判定:
if(!check_skill_unlock('buff_assassin',$pd))
{
$sk_r = get_skillvars('buff_assassin','hidegain');
$r += $sk_r;
}
return $r; return $r;
} }
...@@ -203,6 +216,12 @@ ...@@ -203,6 +216,12 @@
$sk_r = get_skillpara('c6_godsend','actgain',$pa['clbpara']); $sk_r = get_skillpara('c6_godsend','actgain',$pa['clbpara']);
if(!empty($sk_r)) $r += $sk_r; if(!empty($sk_r)) $r += $sk_r;
} }
# pa处于「暗杀」状态下的效果判定:
if(!check_skill_unlock('buff_assassin',$pa))
{
$sk_r = get_skillvars('buff_assassin','actgain');
$r += $sk_r;
}
return $r; return $r;
} }
...@@ -242,8 +261,8 @@ ...@@ -242,8 +261,8 @@
function get_clbskill_hitrate(&$pa,&$pd,$active,$hitrate) function get_clbskill_hitrate(&$pa,&$pd,$active,$hitrate)
{ {
# 加成: # 加成:
#「潜能」效果判定: #「潜能」、「暗杀」必中效果判定:
if(isset($pa['bskill_c3_potential'])) if(isset($pa['bskill_c3_potential']) || isset($pa['skill_buff_assassin']))
{ {
//原来必中是这个意思…… //原来必中是这个意思……
return 10000; return 10000;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
# 升级指定技能会触发的事件,返回0时代表无法升级技能 # 升级指定技能会触发的事件,返回0时代表无法升级技能
function upgclbskills_events($event,$sk,&$data=NULL) function upgclbskills_events($event,$sk,&$data=NULL)
{ {
global $log,$cskills,$clbpara,$name; global $log,$cskills,$clbpara,$name,$now;
# 事件:激活技能 # 事件:激活技能
if($event == 'active_news') if($event == 'active_news')
{ {
......
...@@ -176,10 +176,19 @@ function move($moveto = 99,&$data=NULL) { ...@@ -176,10 +176,19 @@ function move($moveto = 99,&$data=NULL) {
if($inf){ if($inf){
foreach ($inf_move_hp as $inf_ky => $o_dmg) { foreach ($inf_move_hp as $inf_ky => $o_dmg) {
if(strpos($inf,$inf_ky)!==false){ if(strpos($inf,$inf_ky)!==false)
$damage = round($mhp * $o_dmg) + rand(0,15); {
$damage = round($mhp * $o_dmg) + rand(0,10);
# 「死疗」效果判定: TODO:之后要把异常状态扣血效果单独做一个函数
if($inf_ky == 'p' && !check_skill_unlock('c8_deadheal',$data))
{
$sk_p = get_skillvars('c8_deadheal','exdmgr');
$damage = min($mhp-$hp,ceil($damage*($sk_p/100)));
$damage *= -1;
}
$hp -= $damage; $hp -= $damage;
$log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>"; if($damage > 0) $log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>";
elseif($damage < 0) $log .= "{$infwords[$inf_ky]}恢复了<span class=\"lime\">".abs($damage)."</span>点生命!<br>";
if($hp <= 0 ){ if($hp <= 0 ){
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
death($inf_ky.'move','',0,'',$data); death($inf_ky.'move','',0,'',$data);
...@@ -345,10 +354,19 @@ function search(&$data=NULL){ ...@@ -345,10 +354,19 @@ function search(&$data=NULL){
$log .= "消耗<span class=\"yellow\">{$schsp}</span>点体力,你搜索着周围的一切。。。<br>"; $log .= "消耗<span class=\"yellow\">{$schsp}</span>点体力,你搜索着周围的一切。。。<br>";
if($inf){ if($inf){
foreach ($inf_search_hp as $inf_ky => $o_dmg) { foreach ($inf_search_hp as $inf_ky => $o_dmg) {
if(strpos($inf,$inf_ky)!==false){ if(strpos($inf,$inf_ky)!==false)
{
$damage = round($mhp * $o_dmg) + rand(0,10); $damage = round($mhp * $o_dmg) + rand(0,10);
# 「死疗」效果判定: TODO:之后要把异常状态扣血效果单独做一个函数
if($inf_ky == 'p' && !check_skill_unlock('c8_deadheal',$data))
{
$sk_p = get_skillvars('c8_deadheal','exdmgr');
$damage = min($mhp-$hp,ceil($damage*($sk_p/100)));
$damage *= -1;
}
$hp -= $damage; $hp -= $damage;
$log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>"; if($damage > 0) $log .= "{$infwords[$inf_ky]}减少了<span class=\"red\">$damage</span>点生命!<br>";
elseif($damage < 0) $log .= "{$infwords[$inf_ky]}恢复了<span class=\"lime\">".abs($damage)."</span>点生命!<br>";
if($hp <= 0 ){ if($hp <= 0 ){
include_once GAME_ROOT.'./include/state.func.php'; include_once GAME_ROOT.'./include/state.func.php';
death($inf_ky.'move','',0,'',$data); death($inf_ky.'move','',0,'',$data);
......
...@@ -24,8 +24,12 @@ function teamcheck() { ...@@ -24,8 +24,12 @@ function teamcheck() {
return; return;
} }
function teammake($tID,$tPass) { function teammake($tID,$tPass,$tIcon) {
global $log,$mode,$teamID,$teamPass,$db,$tablepre,$noitm,$sp,$team_sp,$now,$name,$gamestate,$nick,$clbpara; global $log,$mode,$teamID,$teamPass,$teamIcon,$db,$tablepre,$noitm,$sp,$team_sp,$now,$name,$gamestate,$nick,$clbpara;
//队伍头像范围
$max_tIcon = 12;
if($gamestate >= 40) { if($gamestate >= 40) {
$log .= '连斗时不能组建队伍。<br>'; $log .= '连斗时不能组建队伍。<br>';
$mode = 'command'; $mode = 'command';
...@@ -58,7 +62,6 @@ function teammake($tID,$tPass) { ...@@ -58,7 +62,6 @@ function teammake($tID,$tPass) {
} elseif($sp <= $team_sp) { } elseif($sp <= $team_sp) {
$log .= '体力不足,不能创建队伍。至少需要<span class="yellow">'.$team_sp.'</span>点体力。<br>'; $log .= '体力不足,不能创建队伍。至少需要<span class="yellow">'.$team_sp.'</span>点体力。<br>';
} else { } else {
//创建队伍时,队伍计数+1 //创建队伍时,队伍计数+1
if(empty($clbpara['achvars']['team'])) $clbpara['achvars']['team'] = 1; if(empty($clbpara['achvars']['team'])) $clbpara['achvars']['team'] = 1;
...@@ -66,8 +69,11 @@ function teammake($tID,$tPass) { ...@@ -66,8 +69,11 @@ function teammake($tID,$tPass) {
if($db->num_rows($result)){ if($db->num_rows($result)){
$log .= '队伍<span class="yellow">'.$tID.'</span>已经存在,请更换队伍名。<br>'; $log .= '队伍<span class="yellow">'.$tID.'</span>已经存在,请更换队伍名。<br>';
} else { } else {
// 创建队伍时输入了不合法头像参数,随机挑一个头像
if(!in_array($tIcon,range(0,$max_tIcon))) $tIcon = rand(0,$max_tIcon);
$teamID = $tID; $teamID = $tID;
$teamPass = $tPass; $teamPass = $tPass;
$teamIcon = $tIcon;
$sp -= $team_sp; $sp -= $team_sp;
$log .= '你创建了队伍<span class="yellow">'.$teamID.'</span>。<br>'; $log .= '你创建了队伍<span class="yellow">'.$teamID.'</span>。<br>';
addnews($now,'teammake',$teamID,get_title_desc($nick).' '.$name); addnews($now,'teammake',$teamID,get_title_desc($nick).' '.$name);
...@@ -82,7 +88,7 @@ function teammake($tID,$tPass) { ...@@ -82,7 +88,7 @@ function teammake($tID,$tPass) {
} }
function teamjoin($tID,$tPass) { function teamjoin($tID,$tPass) {
global $log,$mode,$teamID,$teamPass,$db,$tablepre,$noitm,$sp,$team_sp,$teamj_sp,$now,$name,$teamlimit,$gamestate,$clbpara; global $log,$mode,$teamID,$teamPass,$teamIcon,$db,$tablepre,$noitm,$sp,$team_sp,$teamj_sp,$now,$name,$teamlimit,$gamestate,$clbpara;
if($gamestate >= 40) { if($gamestate >= 40) {
$log .= '连斗时不能加入队伍。<br>'; $log .= '连斗时不能加入队伍。<br>';
$mode = 'command'; $mode = 'command';
...@@ -118,16 +124,17 @@ function teamjoin($tID,$tPass) { ...@@ -118,16 +124,17 @@ function teamjoin($tID,$tPass) {
//加入队伍时,队伍计数+1 //加入队伍时,队伍计数+1
if(empty($clbpara['achvars']['team'])) $clbpara['achvars']['team'] = 1; if(empty($clbpara['achvars']['team'])) $clbpara['achvars']['team'] = 1;
$result = $db->query("SELECT teamPass FROM {$tablepre}players WHERE teamID='$tID'"); $result = $db->query("SELECT teamPass,teamIcon FROM {$tablepre}players WHERE teamID='$tID'");
if(!$db->num_rows($result)){ if(!$db->num_rows($result)){
$log .= '队伍<span class="yellow">'.$tID.'</span>不存在,请先创建队伍。<br>'; $log .= '队伍<span class="yellow">'.$tID.'</span>不存在,请先创建队伍。<br>';
} elseif($db->num_rows($result) >= $teamlimit) { } elseif($db->num_rows($result) >= $teamlimit) {
$log .= '队伍<span class="yellow">'.$tID.'</span>人数已满,请更换队伍。<br>'; $log .= '队伍<span class="yellow">'.$tID.'</span>人数已满,请更换队伍。<br>';
} else { } else {
$password = $db->result($result,0); $teaminfo = $db->fetch_array($result);
if($tPass == $password) { if($tPass == $teaminfo['teamPass']) {
$teamID = $tID; $teamID = $tID;
$teamPass = $tPass; $teamPass = $tPass;
$teamIcon = $teaminfo['teamIcon'];
$sp -= $teamj_sp; $sp -= $teamj_sp;
$log .= '你加入了队伍<span class="yellow">'.$teamID.'</span>。<br>'; $log .= '你加入了队伍<span class="yellow">'.$teamID.'</span>。<br>';
addnews($now,'teamjoin',$teamID,get_title_desc($nick).' '.$name); addnews($now,'teamjoin',$teamID,get_title_desc($nick).' '.$name);
......
...@@ -144,6 +144,10 @@ function dniconMover(){ ...@@ -144,6 +144,10 @@ function dniconMover(){
dninum = $('dnicon').selectedIndex; dninum = $('dnicon').selectedIndex;
$('dniconImg').innerHTML = '<img src="img/' + dngd + '_' + dninum + '.gif" alt="' + dninum + '">'; $('dniconImg').innerHTML = '<img src="img/' + dngd + '_' + dninum + '.gif" alt="' + dninum + '">';
} }
function IconMover(idiv,islct,ipre){
inum = $(islct).selectedIndex;
$(idiv).innerHTML = '<img src="img/' + ipre + '_' + inum + '.gif" alt="' + inum + '">';
}
function showNotice(sNotice) { function showNotice(sNotice) {
$('notice').innerText = sNotice; $('notice').innerText = sNotice;
......
...@@ -540,7 +540,7 @@ function gameover($time = 0, $mode = '', $winname = '') { ...@@ -540,7 +540,7 @@ function gameover($time = 0, $mode = '', $winname = '') {
$pdata['hdmg'] = $hdamage; $pdata['hdmg'] = $hdamage;
$pdata['hdp'] = $hplayer; $pdata['hdp'] = $hplayer;
$pdata['teamMate'] = !empty($team_mates) && count($team_mates)>1 ? implode("+",$team_mates) : ''; $pdata['teamMate'] = !empty($team_mates) && count($team_mates)>1 ? implode("+",$team_mates) : '';
$pdata['teamIcon'] = !empty($team_mates) ? 1 : 0; //$pdata['teamIcon'] = !empty($team_mates) ? 1 : 0;
$db->query("INSERT INTO {$tablepre}winners (gid,nick,name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,ss,mss,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,killnum2,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,teamMate,teamIcon,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,motto,wmode,vnum,gtime,gstime,getime,hdmg,hdp,hkill,hkp,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('".$gamenum."','".$pdata['nick']."','".$pdata['name']."','".$pdata['pass']."','".$pdata['type']."','".$pdata['endtime']."','".$pdata['gd']."','".$pdata['sNo']."','".$pdata['icon']."','".$pdata['club']."','".$pdata['hp']."','".$pdata['mhp']."','".$pdata['sp']."','".$pdata['msp']."','".$pdata['ss']."','".$pdata['mss']."','".$pdata['att']."','".$pdata['def']."','".$pdata['pls']."','".$pdata['lvl']."','".$pdata['exp']."','".$pdata['money']."','".$pdata['bid']."','".$pdata['inf']."','".$pdata['rage']."','".$pdata['pose']."','".$pdata['tactic']."','".$pdata['killnum']."','".$pdata['killnum2']."','".$pdata['state']."','".$pdata['wp']."','".$pdata['wk']."','".$pdata['wg']."','".$pdata['wc']."','".$pdata['wd']."','".$pdata['wf']."','".$pdata['teamID']."','".$pdata['teamPass']."','".$pdata['teamMate']."','".$pdata['teamIcon']."','".$pdata['wep']."','".$pdata['wepk']."','".$pdata['wepe']."','".$pdata['weps']."','".$pdata['arb']."','".$pdata['arbk']."','".$pdata['arbe']."','".$pdata['arbs']."','".$pdata['arh']."','".$pdata['arhk']."','".$pdata['arhe']."','".$pdata['arhs']."','".$pdata['ara']."','".$pdata['arak']."','".$pdata['arae']."','".$pdata['aras']."','".$pdata['arf']."','".$pdata['arfk']."','".$pdata['arfe']."','".$pdata['arfs']."','".$pdata['art']."','".$pdata['artk']."','".$pdata['arte']."','".$pdata['arts']."','".$pdata['itm0']."','".$pdata['itmk0']."','".$pdata['itme0']."','".$pdata['itms0']."','".$pdata['itm1']."','".$pdata['itmk1']."','".$pdata['itme1']."','".$pdata['itms1']."','".$pdata['itm2']."','".$pdata['itmk2']."','".$pdata['itme2']."','".$pdata['itms2']."','".$pdata['itm3']."','".$pdata['itmk3']."','".$pdata['itme3']."','".$pdata['itms3']."','".$pdata['itm4']."','".$pdata['itmk4']."','".$pdata['itme4']."','".$pdata['itms4']."','".$pdata['itm5']."','".$pdata['itmk5']."','".$pdata['itme5']."','".$pdata['itms5']."','".$pdata['itm6']."','".$pdata['itmk6']."','".$pdata['itme6']."','".$pdata['itms6']."','".$pdata['motto']."','".$pdata['wmode']."','".$pdata['vnum']."','".$pdata['gtime']."','".$pdata['gstime']."','".$pdata['getime']."','".$pdata['hdmg']."','".$pdata['hdp']."','".$pdata['hkill']."','".$pdata['hkp']."','".$pdata['wepsk']."','".$pdata['arbsk']."','".$pdata['arhsk']."','".$pdata['arask']."','".$pdata['arfsk']."','".$pdata['artsk']."','".$pdata['itmsk0']."','".$pdata['itmsk1']."','".$pdata['itmsk2']."','".$pdata['itmsk3']."','".$pdata['itmsk4']."','".$pdata['itmsk5']."','".$pdata['itmsk6']."')"); $db->query("INSERT INTO {$tablepre}winners (gid,nick,name,pass,type,endtime,gd,sNo,icon,club,hp,mhp,sp,msp,ss,mss,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,killnum2,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,teamMate,teamIcon,wep,wepk,wepe,weps,arb,arbk,arbe,arbs,arh,arhk,arhe,arhs,ara,arak,arae,aras,arf,arfk,arfe,arfs,art,artk,arte,arts,itm0,itmk0,itme0,itms0,itm1,itmk1,itme1,itms1,itm2,itmk2,itme2,itms2,itm3,itmk3,itme3,itms3,itm4,itmk4,itme4,itms4,itm5,itmk5,itme5,itms5,itm6,itmk6,itme6,itms6,motto,wmode,vnum,gtime,gstime,getime,hdmg,hdp,hkill,hkp,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6) VALUES ('".$gamenum."','".$pdata['nick']."','".$pdata['name']."','".$pdata['pass']."','".$pdata['type']."','".$pdata['endtime']."','".$pdata['gd']."','".$pdata['sNo']."','".$pdata['icon']."','".$pdata['club']."','".$pdata['hp']."','".$pdata['mhp']."','".$pdata['sp']."','".$pdata['msp']."','".$pdata['ss']."','".$pdata['mss']."','".$pdata['att']."','".$pdata['def']."','".$pdata['pls']."','".$pdata['lvl']."','".$pdata['exp']."','".$pdata['money']."','".$pdata['bid']."','".$pdata['inf']."','".$pdata['rage']."','".$pdata['pose']."','".$pdata['tactic']."','".$pdata['killnum']."','".$pdata['killnum2']."','".$pdata['state']."','".$pdata['wp']."','".$pdata['wk']."','".$pdata['wg']."','".$pdata['wc']."','".$pdata['wd']."','".$pdata['wf']."','".$pdata['teamID']."','".$pdata['teamPass']."','".$pdata['teamMate']."','".$pdata['teamIcon']."','".$pdata['wep']."','".$pdata['wepk']."','".$pdata['wepe']."','".$pdata['weps']."','".$pdata['arb']."','".$pdata['arbk']."','".$pdata['arbe']."','".$pdata['arbs']."','".$pdata['arh']."','".$pdata['arhk']."','".$pdata['arhe']."','".$pdata['arhs']."','".$pdata['ara']."','".$pdata['arak']."','".$pdata['arae']."','".$pdata['aras']."','".$pdata['arf']."','".$pdata['arfk']."','".$pdata['arfe']."','".$pdata['arfs']."','".$pdata['art']."','".$pdata['artk']."','".$pdata['arte']."','".$pdata['arts']."','".$pdata['itm0']."','".$pdata['itmk0']."','".$pdata['itme0']."','".$pdata['itms0']."','".$pdata['itm1']."','".$pdata['itmk1']."','".$pdata['itme1']."','".$pdata['itms1']."','".$pdata['itm2']."','".$pdata['itmk2']."','".$pdata['itme2']."','".$pdata['itms2']."','".$pdata['itm3']."','".$pdata['itmk3']."','".$pdata['itme3']."','".$pdata['itms3']."','".$pdata['itm4']."','".$pdata['itmk4']."','".$pdata['itme4']."','".$pdata['itms4']."','".$pdata['itm5']."','".$pdata['itmk5']."','".$pdata['itme5']."','".$pdata['itms5']."','".$pdata['itm6']."','".$pdata['itmk6']."','".$pdata['itme6']."','".$pdata['itms6']."','".$pdata['motto']."','".$pdata['wmode']."','".$pdata['vnum']."','".$pdata['gtime']."','".$pdata['gstime']."','".$pdata['getime']."','".$pdata['hdmg']."','".$pdata['hdp']."','".$pdata['hkill']."','".$pdata['hkp']."','".$pdata['wepsk']."','".$pdata['arbsk']."','".$pdata['arhsk']."','".$pdata['arask']."','".$pdata['arfsk']."','".$pdata['artsk']."','".$pdata['itmsk0']."','".$pdata['itmsk1']."','".$pdata['itmsk2']."','".$pdata['itmsk3']."','".$pdata['itmsk4']."','".$pdata['itmsk5']."','".$pdata['itmsk6']."')");
} }
...@@ -807,7 +807,7 @@ function evonpc($type,$name){ ...@@ -807,7 +807,7 @@ function evonpc($type,$name){
} }
unset($npc['clubskill']);unset($npc['clubskillpara']); unset($npc['clubskill']);unset($npc['clubskillpara']);
# todo:整理下这堆烂摊子 # todo:整理下这堆烂摊子
$npc['clbpara'] = json_encode($npc['clbpara']); $npc['clbpara'] = json_encode($npc['clbpara'],JSON_UNESCAPED_UNICODE);
//$npc = player_format_with_db_structure($npc); //$npc = player_format_with_db_structure($npc);
foreach($npc as $key => $val){ foreach($npc as $key => $val){
$qry .= "$key = '{$val}',"; $qry .= "$key = '{$val}',";
......
...@@ -267,8 +267,9 @@ ...@@ -267,8 +267,9 @@
<td><input size="20" type="text" name="mss" value="{$pc['mss']}" maxlength="20"></td> <td><input size="20" type="text" name="mss" value="{$pc['mss']}" maxlength="20"></td>
<td>RP</td> <td>RP</td>
<td><input size="20" type="text" name="rp" value="{$pc['rp']}" maxlength="20"></td> <td><input size="20" type="text" name="rp" value="{$pc['rp']}" maxlength="20"></td>
<td></td> <!-- 仅供DEBUG用 不可编辑 -->
<td></td> <td><!--{if $mygroup>=9}-->IP<!--{/if}--></td>
<td><!--{if $mygroup>=9}-->{$pc['ip']}<!--{/if}--></td>
</tr> </tr>
<tr> <tr>
<td>社团参数A</td> <td>社团参数A</td>
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<td class="b1"><span>当前金钱数</span></td> <td class="b1"><span>当前金钱数</span></td>
<td class="b1"><span>APM</span></td> <td class="b1"><span>APM</span></td>
<!--{if $gamestate < 40 }--><td class="b1"><span>队伍名</span></td><!--{/if}--> <!--{if $gamestate < 40 }--><td class="b1"><span>队伍名</span></td><!--{/if}-->
<!--{if $gamestate < 40 }--><td class="b1"><span>队伍头像</span></td><!--{/if}-->
<td width="300" class="b1"><span>口头禅</span></td> <td width="300" class="b1"><span>口头禅</span></td>
<td class="b1"><span>胜率</span></td> <td class="b1"><span>胜率</span></td>
<!--{if $gamblingon }--><td class="b1"><span>支持者数</span></td> <!--{if $gamblingon }--><td class="b1"><span>支持者数</span></td>
...@@ -23,6 +24,7 @@ ...@@ -23,6 +24,7 @@
<td class="b3"><span>$alive['money']</span></td> <td class="b3"><span>$alive['money']</span></td>
<td class="b3"><span>$alive['apm']</span></td> <td class="b3"><span>$alive['apm']</span></td>
<!--{if $gamestate < 40 }--><td class="b3"><span><!--{if $alive['teamID']}-->$alive['teamID']<!--{else}--><!--{/if}--></span></td><!--{/if}--> <!--{if $gamestate < 40 }--><td class="b3"><span><!--{if $alive['teamID']}-->$alive['teamID']<!--{else}--><!--{/if}--></span></td><!--{/if}-->
<!--{if $gamestate < 40 }--><td class="b3"><span><!--{if $alive['teamID']}--><img src="img/t_{$alive['teamIcon']}.gif" alt="0" style="max-height: 80px;"><!--{else}--><!--{/if}--></span></td><!--{/if}-->
<td class="b3"><span>$alive['motto']</span></td> <td class="b3"><span>$alive['motto']</span></td>
<td class="b3"><span>$alive['winrate']</span></td> <td class="b3"><span>$alive['winrate']</span></td>
<!--{if $gamblingon }--><td class="b3"><span>$alive['gbnum']</span></td> <!--{if $gamblingon }--><td class="b3"><span>$alive['gbnum']</span></td>
......
...@@ -58,8 +58,14 @@ ...@@ -58,8 +58,14 @@
<!--{/if}--> <!--{/if}-->
<td></td> <td></td>
<td></td> <td></td>
<td></td> <!--{if !empty($tdata['clbpara']['skill'])}-->
<td></td> <td class="b2" height=20px>
<span>战斗技能</span>
</td>
<td class="b3">
<span><input type="button" class="cmdbutton" value="点击查看NPC技能" onclick="showModalDialog($('enemy_skillpage'));"></span>
</td>
<!--{/if}-->
</tr> </tr>
</table> </table>
</td> </td>
...@@ -116,3 +122,37 @@ ...@@ -116,3 +122,37 @@
</td> </td>
</tr> </tr>
</TABLE> </TABLE>
<!--{if !empty($tdata['clbpara']['skill'])}-->
<dialog id="enemy_skillpage" style="width: 568px; max-width: 90%;max-height: 80%;">
<p style="margin-left:0px; margin-top:0px; margin-right:0px; margin-bottom:0px;">
以下是<span class="yellow">{$typeinfo[$tdata['type']]} $tdata['name']</span>的的技能列表。
请注意描述文字中的<span class="yellow">“你”</span>指代的是这个NPC。
<br><br>
<table class="skilltable" style="width:559px">
<tr>
<td class="b1" width="40">
<span>名称</span>
</td>
<td class="b1">
<span>技能详情</span>
</td>
</tr>
<!--{eval $uidata = $tdata; $no_skill_input = 1;}-->
<!--{loop $uidata['clbpara']['skill'] $sknm}-->
<!--{if !get_skilltags($sknm,'player')}-->
<!--{eval $skdata = init_clubskillsdata($sknm,$uidata);}-->
<!--{if is_array($skdata)}-->
<!--{eval include template($skdata[0]);}-->
<!--{elseif !empty($skdata)}-->
<!--{eval $skid = $skdata;include template('skill_temp');}-->
<!--{/if}-->
<!--{/if}-->
<!--{/loop}-->
</table>
<br>提示:点击技能界面外任意位置或按ESC键即可关闭窗口<br>
</p>
<img class="dialog-background" src="img/profile.gif" onclick="closeDialog($('enemy_skillpage'));this.disabled=true;">
</dialog>
<!--{/if}-->
\ No newline at end of file
...@@ -1776,8 +1776,7 @@ NPC也会发出重击和必杀技,请随时小心。</p> ...@@ -1776,8 +1776,7 @@ NPC也会发出重击和必杀技,请随时小心。</p>
</span> </span>
</td> </td>
<td class="b3"> <td class="b3">
<span>待实装</span> <span><input type="button" class="cmdbutton" value="点击查看称号技能" onclick="showModalDialog($('skillhelp-c8'));"></span>
<!--<span><input type="button" class="cmdbutton" value="点击查看称号技能" onclick="showModalDialog($('skillhelp-c8'));"></span>-->
</td> </td>
</tr> </tr>
<tr> <tr>
......
...@@ -17,20 +17,22 @@ ...@@ -17,20 +17,22 @@
选择任一单体减半防御属性,你视为具有它。<br> 选择任一单体减半防御属性,你视为具有它。<br>
当前选择是:<span class="yellow"><!--{if !empty($nchoice)}-->$itemspkinfo[$nchoice]<!--{else}--><!--{/if}--></span> 当前选择是:<span class="yellow"><!--{if !empty($nchoice)}-->$itemspkinfo[$nchoice]<!--{else}--><!--{/if}--></span>
&nbsp; &nbsp;
变更选择为: <!--{if empty($no_skill_input)}-->
<select name="upgpara" id="upgpara" onchange="$('mode').value='revskpts';$('command').value='upgskill_c1_veteran';postCmd('gamecmd','command.php');this.disabled=true;"> 变更选择为:
<!--{if empty($nchoice)}--> <select name="upgpara" id="upgpara" onchange="$('mode').value='revskpts';$('command').value='upgskill_c1_veteran';postCmd('gamecmd','command.php');this.disabled=true;">
<option value="" selected><br /> <!--{if empty($nchoice)}-->
<!--{/if}--> <option value="" selected><br />
<!--{loop $cskills['c1_veteran']['choice'] $key}-->
<!--{if $key != $nchoice}-->
<option value="$key">$itemspkinfo[$key]<br />
<!--{else}-->
<option value="$key" selected>$itemspkinfo[$key]<br />
<!--{/if}--> <!--{/if}-->
<!--{/loop}--> <!--{loop $cskills['c1_veteran']['choice'] $key}-->
</select> <!--{if $key != $nchoice}-->
&nbsp; <option value="$key">$itemspkinfo[$key]<br />
<!--{else}-->
<option value="$key" selected>$itemspkinfo[$key]<br />
<!--{/if}-->
<!--{/loop}-->
</select>
&nbsp;
<!--{/if}-->
可随时改变 可随时改变
<br> <br>
</span> </span>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</span> </span>
</td> </td>
<td class="skilldesc_right b3"> <td class="skilldesc_right b3">
<!--{if !empty($unlock_c4_roar_flag) && $unlock_c4_roar_flag == 'skillpara|c4_roar-active'}--> <!--{if !empty($unlock_c4_roar_flag) && $unlock_c4_roar_flag == 'skillpara|c4_roar-active' && empty($no_skill_input)}-->
<input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁"> <input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁">
<!--{/if}--> <!--{/if}-->
</td> </td>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
$unlock_desc $unlock_desc
</span> </span>
</td> </td>
<!--{if !empty($unlock_c4_roar_flag) && $unlock_c4_roar_flag == 'skillpara|c4_roar-active'}--> <!--{if !empty($unlock_c4_roar_flag) && $unlock_c4_roar_flag == 'skillpara|c4_roar-active' && empty($no_skill_input)}-->
<td class="skilldesc_right"> <td class="skilldesc_right">
<input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁" onclick="$('mode').value='revskpts';$('command').value='actskill_c4_roar';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁" onclick="$('mode').value='revskpts';$('command').value='actskill_c4_roar';postCmd('gamecmd','command.php');this.disabled=true;">
</td> </td>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</span> </span>
</td> </td>
<td class="skilldesc_right b3"> <td class="skilldesc_right b3">
<!--{if !empty($unlock_c4_sniper_flag) && $unlock_c4_sniper_flag == 'skillpara|c4_sniper-active'}--> <!--{if !empty($unlock_c4_sniper_flag) && $unlock_c4_sniper_flag == 'skillpara|c4_sniper-active' && empty($no_skill_input)}-->
<input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁"> <input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁">
<!--{/if}--> <!--{/if}-->
</td> </td>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
$unlock_desc $unlock_desc
</span> </span>
</td> </td>
<!--{if !empty($unlock_c4_sniper_flag) && $unlock_c4_sniper_flag == 'skillpara|c4_sniper-active'}--> <!--{if !empty($unlock_c4_sniper_flag) && $unlock_c4_sniper_flag == 'skillpara|c4_sniper-active' && empty($no_skill_input)}-->
<td class="skilldesc_right"> <td class="skilldesc_right">
<input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁" onclick="$('mode').value='revskpts';$('command').value='actskill_c4_sniper';postCmd('gamecmd','command.php');this.disabled=true;"> <input type="button" style="width:47px;margin-right:25px;float:right;" value="解锁" onclick="$('mode').value='revskpts';$('command').value='actskill_c4_sniper';postCmd('gamecmd','command.php');this.disabled=true;">
</td> </td>
......
...@@ -24,17 +24,17 @@ ...@@ -24,17 +24,17 @@
<tr><td> <tr><td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--{if $nchoice==1}--><span ><!--{/if}-->(1) 遇敌率提高15% <!--{if $nchoice==1}--></span><!--{/if}--> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--{if $nchoice==1}--><span ><!--{/if}-->(1) 遇敌率提高15% <!--{if $nchoice==1}--></span><!--{/if}-->
</td><td> </td><td>
<!--{if $nchoice==1}--><span class="lime">[当前选择]</span><!--{else}--><input type="button" style="width:46px" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';$('subcmd').name='upgpara';$('subcmd').value='1';postCmd('gamecmd','command.php');this.disabled=true;" value="选择"><!--{/if}--> <!--{if $nchoice==1}--><span class="lime">[当前选择]</span><!--{elseif empty($no_skill_input)}--><input type="button" style="width:46px" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';$('subcmd').name='upgpara';$('subcmd').value='1';postCmd('gamecmd','command.php');this.disabled=true;" value="选择"><!--{/if}-->
</td></tr> </td></tr>
<tr><td> <tr><td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--{if $nchoice==0}--><span ><!--{/if}-->(2) 无效果 <!--{if $nchoice==0}--></span><!--{/if}--> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--{if $nchoice==0}--><span ><!--{/if}-->(2) 无效果 <!--{if $nchoice==0}--></span><!--{/if}-->
</td><td> </td><td>
<!--{if $nchoice==0}--><span class="lime">[当前选择]</span><!--{else}--><input type="button" style="width:46px" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';$('subcmd').name='upgpara';$('subcmd').value='0';postCmd('gamecmd','command.php');this.disabled=true;" value="选择"><!--{/if}--> <!--{if $nchoice==0}--><span class="lime">[当前选择]</span><!--{elseif empty($no_skill_input)}--><input type="button" style="width:46px" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';$('subcmd').name='upgpara';$('subcmd').value='0';postCmd('gamecmd','command.php');this.disabled=true;" value="选择"><!--{/if}-->
</td></tr> </td></tr>
<tr><td> <tr><td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--{if $nchoice==2}--><span ><!--{/if}-->(3) 物品发现率提高15% <!--{if $nchoice==2}--></span><!--{/if}--> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<!--{if $nchoice==2}--><span ><!--{/if}-->(3) 物品发现率提高15% <!--{if $nchoice==2}--></span><!--{/if}-->
</td><td> </td><td>
<!--{if $nchoice==2}--><span class="lime">[当前选择]</span><!--{else}--><input type="button" style="width:46px" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';$('subcmd').name='upgpara';$('subcmd').value='2';postCmd('gamecmd','command.php');this.disabled=true;" value="选择"><!--{/if}--> <!--{if $nchoice==2}--><span class="lime">[当前选择]</span><!--{elseif empty($no_skill_input)}--><input type="button" style="width:46px" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';$('subcmd').name='upgpara';$('subcmd').value='2';postCmd('gamecmd','command.php');this.disabled=true;" value="选择"><!--{/if}-->
</td></tr> </td></tr>
</table> </table>
</span> </span>
......
...@@ -23,11 +23,13 @@ ...@@ -23,11 +23,13 @@
</span> </span>
</td> </td>
<td class="skilldesc_right b3"> <td class="skilldesc_right b3">
<!--{if !empty($cskill['num_input']) && empty($max_lvl_flag)}--> <!--{if empty($no_skill_input)}-->
<input type="number" name="upgskill_{$skid}_nums" style="width:40px" value="1"> <!--{if !empty($cskill['num_input']) && empty($max_lvl_flag)}-->
<!--{/if}--> <input type="number" name="upgskill_{$skid}_nums" style="width:40px" value="1">
<!--{if !empty($cskill['input']) && empty($max_lvl_flag)}--> <!--{/if}-->
<input type="button" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';postCmd('gamecmd','command.php');this.disabled=true;" value="{$cskill['input']}"> <!--{if !empty($cskill['input']) && empty($max_lvl_flag)}-->
<input type="button" onclick="$('mode').value='revskpts';$('command').value='upgskill_{$skid}';postCmd('gamecmd','command.php');this.disabled=true;" value="{$cskill['input']}">
<!--{/if}-->
<!--{/if}--> <!--{/if}-->
</td> </td>
</tr> </tr>
......
<input type="hidden" name="mode" value="team"> <input type="hidden" name="mode" value="team">
<input type="hidden" name="command" value="$teamcmd"> <input type="hidden" name="command" value="$teamcmd">
<!--{if $teamcmd == 'teammake'}-->
<div>队伍头像 :
<select id="ticon" name="ticon" onchange="IconMover('ticonImg','ticon','t')">
<!--{loop range(0,12) $icon}-->
<option value="$icon">$icon</option>
<!--{/loop}-->
</select>
</div>
<div id="ticonImg" class="iconimg" >
<img src="img/t_0.gif" alt="0">
</div>
<!--{/if}-->
<div>队伍名称 : <input size="15" type="text" name="nteamID" maxlength="30"></div> <div>队伍名称 : <input size="15" type="text" name="nteamID" maxlength="30"></div>
<div>15个字以内。<div> <div>15个字以内。<div>
<div>队伍密码 : <input size="15" type="text" name="nteamPass" maxlength="30"></div> <div>队伍密码 : <input size="15" type="text" name="nteamPass" maxlength="30"></div>
......
...@@ -132,9 +132,7 @@ if($mode == 'enter') { ...@@ -132,9 +132,7 @@ if($mode == 'enter') {
} }
$itmk[3] = 'HB'; $itme[3] = 70; $itms[3] = 15; $itmk[3] = 'HB'; $itme[3] = 70; $itms[3] = 15;
//$itm[5] = 'GRAND OPENING 「开门大吉」'; $itmk[5] = 'p000'; $itme[5] = 1; $itms[5] = 1; //$itm[5] = 'GRAND OPENING 「开门大吉」'; $itmk[5] = 'p000'; $itme[5] = 1; $itms[5] = 1;
$dice = rand(4,8); $dice = rand(4,9); $dice_name = $clubinfo[$dice];
if($dice == 8) $dice = 9;
$dice_name = $clubinfo[$dice];
$itm[5] = '「'.$dice_name.' 社团卡」'; $itmk[5] = 'ZB'; $itme[5] = $dice; $itms[5] = 1; $itm[5] = '「'.$dice_name.' 社团卡」'; $itmk[5] = 'ZB'; $itme[5] = $dice; $itms[5] = 1;
if ($wingames <=1){ if ($wingames <=1){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment