Commit 138682cf authored by hisuinohoshi's avatar hisuinohoshi

rev combat phase 4.1

变化:
- 怒气技能:
新增「晶莹剔透」怒气技能;
- 称号决死结界与称号晶莹剔透合并;
- 新增天气光玉雨;
- 现在新增禁区时不会再改变恶劣天气与极光天气;
- 使用补给品时,不会扣除超出上限的血量或体力;

修正:
- 元素大师提炼快捷键显示[A],实际上却是[C]的问题;
- BOT可能会合成一把9999效的A刀的问题;

开发相关:
- rp结算现在使用接口rpup_rev();
parent 2d1e24f2
...@@ -427,7 +427,7 @@ function bot_check_can_mixitem(&$pa) ...@@ -427,7 +427,7 @@ function bot_check_can_mixitem(&$pa)
if(empty($mlst['m21']) && isset($stf['c21']) && isset($stf['c22'])) if(empty($mlst['m21']) && isset($stf['c21']) && isset($stf['c22']))
{ {
$pa['wep'] = 'Azurewrath'; $pa['wep'] = 'Azurewrath';
$pa['wepk'] = 'WK'; $pa['wepe'] = 9999; $pa['weps'] = '∞'; $pa['wepsk'] = 'rci'; $pa['wepk'] = 'WK'; $pa['wepe'] = 50; $pa['weps'] = 9999; $pa['wepsk'] = 'rci';
$mixflag = 1; $mixflag = 1;
} }
} }
......
...@@ -637,8 +637,6 @@ if($hp > 0){ ...@@ -637,8 +637,6 @@ if($hp > 0){
} }
$endtime = $now; $endtime = $now;
$cmdnum ++; $cmdnum ++;
//var_dump($pdata['action']);
//$db->query("UPDATE {$tablepre}players SET endtime='$now',cdsec='$cdsec',cdmsec='$cdmsec',cdtime='$cdtime',club='$club',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',att='$att',def='$def',pls='$pls',lvl='$lvl',exp='$exp',money='$money',rp='$rp',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',state='$state',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',teamPass='$teamPass',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'");
} }
//检查是否需要重生成播放器 //检查是否需要重生成播放器
$bgm_player = init_bgm(); $bgm_player = init_bgm();
......
...@@ -11,6 +11,7 @@ $default_volume = 20; ...@@ -11,6 +11,7 @@ $default_volume = 20;
$event_bgm = Array $event_bgm = Array
( (
'test' => Array('event'), 'test' => Array('event'),
'wth18' => Array('wth18'),
); );
# 会播放BGM的地图(优先级高——会覆盖默认曲集) # 会播放BGM的地图(优先级高——会覆盖默认曲集)
...@@ -32,6 +33,7 @@ $bgmbook = Array ...@@ -32,6 +33,7 @@ $bgmbook = Array
'besynthed' => Array(0,1,2,5,6,7,8,9,10), 'besynthed' => Array(0,1,2,5,6,7,8,9,10),
'valhalla' => Array(3,4), 'valhalla' => Array(3,4),
'event' => Array(11,12,13), 'event' => Array(11,12,13),
'wth18' => Array(14,15),
); );
# 所有bgm编号清单: # 所有bgm编号清单:
...@@ -107,6 +109,16 @@ $bgmlist = Array ...@@ -107,6 +109,16 @@ $bgmlist = Array
'url' => 'https://res.dts.gay/BGM/XY_DecisiveBattle.mp3', 'url' => 'https://res.dts.gay/BGM/XY_DecisiveBattle.mp3',
'type' => 'audio/mpeg', 'type' => 'audio/mpeg',
), ),
14 => Array(
'name' => 'Tr01_Emerged',
'url' => './img/other/Tr01_Emerged.mp3',
'type' => 'audio/mpeg',
),
15 => Array(
'name' => '待补充',
'url' => '待补充',
'type' => 'audio/mpeg',
),
); );
?> ?>
This diff is collapsed.
...@@ -28,15 +28,15 @@ $def_kind = Array( ...@@ -28,15 +28,15 @@ $def_kind = Array(
); );
//天气对攻击力的影响(单位:百分比加算) //天气对攻击力的影响(单位:百分比加算)
$weather_attack_modifier = Array(10,10,0,-5,-10,-20,-15,0,0,7,20,-7,-20,-5,-10,-10,-10,10); $weather_attack_modifier = Array(10,10,0,-5,-10,-20,-15,0,0,7,20,-7,-20,-5,-10,-10,-10,10,5);
//天气对防御力的影响(单位:百分比加算) //天气对防御力的影响(单位:百分比加算)
$weather_defend_modifier = Array(10,30,0,0,-3,-15,-10,0,-20,-30,-50,-5,-20,-3,-20,5,-30,30); $weather_defend_modifier = Array(10,30,0,0,-3,-15,-10,0,-20,-30,-50,-5,-20,-3,-20,5,-30,30,35);
//天气对发现率的影响 //天气对发现率的影响
$weather_find_r = Array(10,20,0,-2,-3,-10,-7,5,-10,-20,0,-7,-5,-30,-5,-20,0,20); $weather_find_r = Array(10,20,0,-2,-3,-10,-7,5,-10,-20,0,-7,-5,-30,-5,-20,0,20,25);
//天气对躲避率的影响 //天气对躲避率的影响
$weather_hide_r = Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); $weather_hide_r = Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
//天气对先制率的影响 //天气对先制率的影响
$weather_active_r = Array(10,20,0,-5,-10,-20,-15,0,-7,-10,-10,-5,0,-5,-20,-5,0,20); $weather_active_r = Array(10,20,0,-5,-10,-20,-15,0,-7,-10,-10,-5,0,-5,-20,-5,0,20,15);
//'通常','作战姿态','强袭姿态','探物姿态','偷袭姿态','治疗姿态','✧狂飙姿态✧','哨戒姿态','✧灵子姿态✧' //'通常','作战姿态','强袭姿态','探物姿态','偷袭姿态','治疗姿态','✧狂飙姿态✧','哨戒姿态','✧灵子姿态✧'
//姿态对攻击力的影响始终生效(1:只在作出先制攻击时生效) //姿态对攻击力的影响始终生效(1:只在作出先制攻击时生效)
......
...@@ -59,16 +59,16 @@ $clubinfo = Array( ...@@ -59,16 +59,16 @@ $clubinfo = Array(
//16=>'全能骑士', //16=>'全能骑士',
17=>'走路萌物', 17=>'走路萌物',
//18=>'天赋异禀', //18=>'天赋异禀',
19=>'晶莹剔透', 19=>'晶莹剔透', //决死结界、晶莹剔透合并为晶莹剔透
20=>'元素大师', #商店购买社团卡 20=>'元素大师', #商店购买社团卡
21=>'灵子梦魇', #暂定名,商店购买社团卡 21=>'灵子梦魇', #暂定名,商店购买社团卡
22=>'偶像大师', #暂定名,「除错大师」头衔奖励 22=>'偶像大师', #暂定名,「除错大师」头衔奖励
98=>'换装迷宫', 98=>'换装迷宫',
99=>'决死结界' 99=>'第一形态'
); );
//新游戏开局时会生成的天气:晴天、多云、小雨、暴雨、下雪; //新游戏开局时会生成的天气:晴天、多云、小雨、暴雨、下雪;
$rswtharr = Array(0,2,3,4,7); $rswtharr = Array(0,2,3,4,7);
$wthinfo = Array('晴天','大晴','多云','小雨','暴雨','台风','雷雨','下雪','起雾','浓雾','<span class="yellow">瘴气</span>','<span class="red">龙卷风</span>','<span class="clan">暴风雪</span>','<span class="blue">冰雹</span>','<span class="linen">离子暴</span>','<span class="green">辐射尘</span>','<span class="purple">臭氧洞</span>','<span class="gold">极光</span>'); $wthinfo = Array('晴天','大晴','多云','小雨','暴雨','台风','雷雨','下雪','起雾','浓雾','<span class="yellow">瘴气</span>','<span class="red">龙卷风</span>','<span class="clan">暴风雪</span>','<span class="blue">冰雹</span>','<span class="linen">离子暴</span>','<span class="green">辐射尘</span>','<span class="purple">臭氧洞</span>','<span class="gold">极光</span>','<span class="minirainbow">光玉雨</span>');
$sexinfo = Array(0=> '未定', 'm' => '男生', 'f' => '女生'); $sexinfo = Array(0=> '未定', 'm' => '男生', 'f' => '女生');
$raceinfo = Array(0=> '人类', 1=> '兽人', 2=> '妖精', 3=> '龙', 4=> '鱼人', 5=> 'AI'); $raceinfo = Array(0=> '人类', 1=> '兽人', 2=> '妖精', 3=> '龙', 4=> '鱼人', 5=> 'AI');
$hpinfo = Array('<span class="clan">并无大碍</span>','<span class="yellow">伤痕累累</span>','<span class="red">生命危险</span>','<span class="red">已经死亡</span>'); $hpinfo = Array('<span class="clan">并无大碍</span>','<span class="yellow">伤痕累累</span>','<span class="red">生命危险</span>','<span class="red">已经死亡</span>');
...@@ -296,7 +296,8 @@ $noiseinfo = Array( ...@@ -296,7 +296,8 @@ $noiseinfo = Array(
'Crow Song'=>'Crow Song', 'Crow Song'=>'Crow Song',
'Alicemagic'=>'Alicemagic', 'Alicemagic'=>'Alicemagic',
'恋歌'=>'恋歌', '恋歌'=>'恋歌',
'鸡肉之歌'=>'鸡肉之歌' '鸡肉之歌'=>'鸡肉之歌',
'song' => '熟悉的旋律',
); );
$exdmgname = Array('p' => '毒性攻击', 'u' => '火焰燃烧', 'i'=>'冻气缠绕', 'd'=>'爆炸','e'=>'电击','w'=>'音波攻击','f' => '<span class="yellow">炽热之焰</span>','k' => '<span class="clan">凝结之息</span>'); $exdmgname = Array('p' => '毒性攻击', 'u' => '火焰燃烧', 'i'=>'冻气缠绕', 'd'=>'爆炸','e'=>'电击','w'=>'音波攻击','f' => '<span class="yellow">炽热之焰</span>','k' => '<span class="clan">凝结之息</span>');
$exdmginf = Array('h' => '<span class="red">头部受伤</span>', 'b' => '<span class="red">胸部受伤</span>', 'a'=> '<span class="red">腕部受伤</span>', 'f'=> '<span class="red">足部受伤</span>', 'p'=> '<span class="purple">中毒</span>', 'u'=> '<span class="red">烧伤</span>', 'i'=> '<span class="blue">冻结</span>', 'e'=> '<span class="yellow">身体麻痹</span>', 'w'=> '<span class="grey">混乱</span>'); $exdmginf = Array('h' => '<span class="red">头部受伤</span>', 'b' => '<span class="red">胸部受伤</span>', 'a'=> '<span class="red">腕部受伤</span>', 'f'=> '<span class="red">足部受伤</span>', 'p'=> '<span class="purple">中毒</span>', 'u'=> '<span class="red">烧伤</span>', 'i'=> '<span class="blue">冻结</span>', 'e'=> '<span class="yellow">身体麻痹</span>', 'w'=> '<span class="grey">混乱</span>');
......
...@@ -317,6 +317,30 @@ table.dialogue { ...@@ -317,6 +317,30 @@ table.dialogue {
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073; text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #e60073, 0 0 40px #e60073, 0 0 50px #e60073, 0 0 60px #e60073, 0 0 70px #e60073;
} }
} }
.minirainbow {
color: rgb(227, 25, 25);
animation: minirainbowshimmer 2s linear infinite;
}
@keyframes minirainbowshimmer {
0% {
color:#e67b00;
}
20% {
color: #00ff00;
}
40% {
color:#ffff00;
}
60% {
color: #2dcce1;
}
80% {
color: #ff00ff;
}
100% {
color: rgb(227, 25, 25);
}
}
#main { #main {
white-space:nowrap; white-space:nowrap;
......
...@@ -41,7 +41,7 @@ CREATE TABLE bra_players ( ...@@ -41,7 +41,7 @@ CREATE TABLE bra_players (
lvl tinyint unsigned NOT NULL default '0', lvl tinyint unsigned NOT NULL default '0',
`exp` smallint unsigned NOT NULL default '0', `exp` smallint unsigned NOT NULL default '0',
money int(10) unsigned NOT NULL DEFAULT '0', money int(10) unsigned NOT NULL DEFAULT '0',
rp int(10) unsigned NOT NULL DEFAULT '0', rp int(10) NOT NULL DEFAULT '0',
`inf` char(10) not null default '', `inf` char(10) not null default '',
rage tinyint unsigned NOT NULL default '0', rage tinyint unsigned NOT NULL default '0',
pose tinyint(1) unsigned NOT NULL default '0', pose tinyint(1) unsigned NOT NULL default '0',
......
...@@ -146,7 +146,6 @@ if($command == 'kill' || $command == 'live' || $command == 'del') { ...@@ -146,7 +146,6 @@ if($command == 'kill' || $command == 'live' || $command == 'del') {
if($db->affected_rows()) $effect_flag = 1; if($db->affected_rows()) $effect_flag = 1;
} }
} }
//$db->query("UPDATE {$tablepre}players SET rp='$rp',gd='$gd',icon='$icon',club='$club',sNo='$sNo',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',att='$att',def='$def',pgroup='$pgroup',pls='$pls',lvl='$lvl',exp='$exp',clbstatusa='$clbstatusa',clbstatusb='$clbstatusb',clbstatusc='$clbstatusc',clbstatusd='$clbstatusd',clbstatuse='$clbstatuse',clbpara='$clbpara',money='$money',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',teamPass='$teamPass',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'");
if(!$effect_flag){ if(!$effect_flag){
$cmd_info = "没有检测到对角色 $name 的修改"; $cmd_info = "没有检测到对角色 $name 的修改";
} else { } else {
......
...@@ -149,7 +149,6 @@ if($command == 'kill' || $command == 'live' || $command == 'del') { ...@@ -149,7 +149,6 @@ if($command == 'kill' || $command == 'live' || $command == 'del') {
if($db->affected_rows()) $effect_flag = 1; if($db->affected_rows()) $effect_flag = 1;
} }
} }
//$db->query("UPDATE {$tablepre}players SET rp='$rp',gd='$gd',icon='$icon',club='$club',sNo='$sNo',hp='$hp',mhp='$mhp',sp='$sp',msp='$msp',ss='$ss',mss='$mss',att='$att',def='$def',pgroup='$pgroup',pls='$pls',achievement='$achievement',lvl='$lvl',exp='$exp',clbstatusa='$clbstatusa',clbstatusb='$clbstatusb',clbstatusc='$clbstatusc',clbstatusd='$clbstatusd',clbstatuse='$clbstatuse',clbpara='$clbpara',money='$money',bid='$bid',inf='$inf',rage='$rage',pose='$pose',tactic='$tactic',killnum='$killnum',wp='$wp',wk='$wk',wg='$wg',wc='$wc',wd='$wd',wf='$wf',teamID='$teamID',achievement='$achievement',wep='$wep',wepk='$wepk',wepe='$wepe',weps='$weps',wepsk='$wepsk',arb='$arb',arbk='$arbk',arbe='$arbe',arbs='$arbs',arbsk='$arbsk',arh='$arh',arhk='$arhk',arhe='$arhe',arhs='$arhs',arhsk='$arhsk',ara='$ara',arak='$arak',arae='$arae',aras='$aras',arask='$arask',arf='$arf',arfk='$arfk',arfe='$arfe',arfs='$arfs',arfsk='$arfsk',art='$art',artk='$artk',arte='$arte',arts='$arts',artsk='$artsk',itm0='$itm0',itmk0='$itmk0',itme0='$itme0',itms0='$itms0',itmsk0='$itmsk0',itm1='$itm1',itmk1='$itmk1',itme1='$itme1',itms1='$itms1',itmsk1='$itmsk1',itm2='$itm2',itmk2='$itmk2',itme2='$itme2',itms2='$itms2',itmsk2='$itmsk2',itm3='$itm3',itmk3='$itmk3',itme3='$itme3',itms3='$itms3',itmsk3='$itmsk3',itm4='$itm4',itmk4='$itmk4',itme4='$itme4',itms4='$itms4',itmsk4='$itmsk4',itm5='$itm5',itmk5='$itmk5',itme5='$itme5',itms5='$itms5',itmsk5='$itmsk5',itm6='$itm6',itmk6='$itmk6',itme6='$itme6',itms6='$itms6',itmsk6='$itmsk6' where pid='$pid'");
if(!$effect_flag){ if(!$effect_flag){
$cmd_info = "没有检测到对角色 $name 的修改"; $cmd_info = "没有检测到对角色 $name 的修改";
} else { } else {
......
...@@ -17,7 +17,7 @@ $tacinfo = Array('通常','','重视防御','重视反击','重视躲避',); ...@@ -17,7 +17,7 @@ $tacinfo = Array('通常','','重视防御','重视反击','重视躲避',);
function get_find_r($weather = 0,$pls = 0,$pose = 0,$tactic = 0,$club = 0,$inf = ''){ function get_find_r($weather = 0,$pls = 0,$pose = 0,$tactic = 0,$club = 0,$inf = ''){
$_FIND = Array $_FIND = Array
( (
'weather' => array(10,20,0,-2,-3,-10,-7,5,-10,-20,0,-7,-5,-30,-5,-20,0,20), 'weather' => array(10,20,0,-2,-3,-10,-7,5,-10,-20,0,-7,-5,-30,-5,-20,0,20,15),
//'weather' => array(10,20,0,-2,-3,-7,-10,-5,10,0,0,-7,-5,-30), //'weather' => array(10,20,0,-2,-3,-7,-10,-5,10,0,0,-7,-5,-30),
//'pls' => array(10,0,0,10,-10,10,0,10,-10,0,10,0,0,-10,0,-10,-10,-10,0,10,0,10), //'pls' => array(10,0,0,10,-10,10,0,10,-10,0,10,0,0,-10,0,-10,-10,-10,0,10,0,10),
'pls' => Array( 'pls' => Array(
......
...@@ -45,9 +45,9 @@ function getclub($who, &$c1, &$c2, &$c3) ...@@ -45,9 +45,9 @@ function getclub($who, &$c1, &$c2, &$c3)
$c3=calc(11131,6397,$curgid,$curuid,$curpid,$starttime,$validtime); $c3=calc(11131,6397,$curgid,$curuid,$curpid,$starttime,$validtime);
//$clubid = array(6,7,8,99,10,11,13,14,16,18,19,7,99,13,14,18,6,19,13,14,18); //$clubid = array(6,7,8,99,10,11,13,14,16,18,19,7,99,13,14,18,6,19,13,14,18);
//$c3%=21; $c3=$clubid[$c3]; //$c3%=21; $c3=$clubid[$c3];
$clubid = array(6,7,8,10,11,12,19,99,6,7,8,10,11,12,19,99); $clubid = array(6,7,8,10,11,12,19,6,7,8,10,11,12,19);
$c3%=16; $c3=$clubid[$c3]; $c3%=14; $c3=$clubid[$c3];
if ($c1==$c3 || $c2==$c3) $c3=99; if ($c1==$c3 || $c2==$c3) $c3=19;
if ($c1>$c2) swap($c1,$c2); if ($c1>$c2) swap($c1,$c2);
if ($c1>$c3) swap($c1,$c3); if ($c1>$c3) swap($c1,$c3);
......
...@@ -37,6 +37,11 @@ ...@@ -37,6 +37,11 @@
} }
else else
{ {
if($weather == 18 || $w == 18)
{
$log .= "你像往常一样提交指令后,终端那头却陷入了诡异的沉默中。<br>……这是怎么回事……死机了?<br>";
return;
}
$weather = $w; $weather = $w;
$log .= "提交了检索指令后,你眼前的数据流开始闪烁。<br>与此同时,整处虚拟空间也开始发生变化……<br> $log .= "提交了检索指令后,你眼前的数据流开始闪烁。<br>与此同时,整处虚拟空间也开始发生变化……<br>
{$console_tips[1]}已将天气转变为【{$wthinfo[$weather]}】</span><br> {$console_tips[1]}已将天气转变为【{$wthinfo[$weather]}】</span><br>
......
...@@ -690,16 +690,26 @@ function death_kagari($type){ ...@@ -690,16 +690,26 @@ function death_kagari($type){
} }
} }
function event_rp_up($rpup){ function event_rp_up($rpup)
global $rp,$club,$skills; {
if($club != 19 || $rpup <= 0){ if(!isset($data))
{
global $pdata;
$data = &$pdata;
}
extract($data,EXTR_REFS);
include_once GAME_ROOT.'./include/game/revcombat.func.php';
rpup_rev($data,$rpup);
/*if($club != 19 || $rpup <= 0){
$rp += $rpup; $rp += $rpup;
}else{ }else{
include_once GAME_ROOT.'./include/game/clubskills.func.php';
$rpdec = 30; $rpdec = 30;
//$rpdec += get_clubskill_rp_dec($club,$skills); //$rpdec += get_clubskill_rp_dec($club,$skills);
$rp += round($rpup*(100-$rpdec)/100); $rp += round($rpup*(100-$rpdec)/100);
} }*/
return; return;
} }
?> ?>
...@@ -137,10 +137,13 @@ function itemuse($itmn,&$data=NULL) { ...@@ -137,10 +137,13 @@ function itemuse($itmn,&$data=NULL) {
}else{ }else{
$spup = $itme; $spup = $itme;
} }
$sp += $spup; /*$sp += $spup;
$sp = $sp > $msp ? $msp : $sp; $sp = $sp > $msp ? $msp : $sp;
$oldsp = $sp - $oldsp; $oldsp = $sp - $oldsp;*/
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$oldsp</span>点体力。<br>"; $addsp = $msp - $sp < $spup ? $msp - $sp : $spup;
if($addsp > 0) $sp += $addsp;
else $addsp = 0;
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$addsp</span>点体力。<br>";
//吃了无毒果酱 //吃了无毒果酱
if($itm == '桔黄色的果酱') $clbpara['achvars']['eat_jelly'] = 1; if($itm == '桔黄色的果酱') $clbpara['achvars']['eat_jelly'] = 1;
if ($itms != $nosta) { if ($itms != $nosta) {
...@@ -163,10 +166,13 @@ function itemuse($itmn,&$data=NULL) { ...@@ -163,10 +166,13 @@ function itemuse($itmn,&$data=NULL) {
}else{ }else{
$hpup = $itme; $hpup = $itme;
} }
$hp += $hpup; /*$hp += $hpup;
$hp = $hp > $mhp ? $mhp : $hp; $hp = $hp > $mhp ? $mhp : $hp;
$oldhp = $hp - $oldhp; $oldhp = $hp - $oldhp;*/
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$oldhp</span>点生命。<br>"; $addhp = $mhp - $hp < $hpup ? $mhp - $hp : $hpup;
if($addhp > 0) $hp += $addhp;
else $addhp = 0;
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$hpup</span>点生命。<br>";
if ($itms != $nosta) { if ($itms != $nosta) {
$itms --; $itms --;
if ($itms <= 0) { if ($itms <= 0) {
...@@ -221,15 +227,21 @@ function itemuse($itmn,&$data=NULL) { ...@@ -221,15 +227,21 @@ function itemuse($itmn,&$data=NULL) {
}else{ }else{
$bpup = $itme; $bpup = $itme;
} }
$oldsp = $sp; //$oldsp = $sp;
$sp += $bpup; //$sp += $bpup;
$sp = $sp > $msp ? $msp : $sp; //$sp = $sp > $msp ? $msp : $sp;
$oldsp = $sp - $oldsp; //$oldsp = $sp - $oldsp;
$oldhp = $hp; $addsp = $msp - $sp < $bpup ? $msp - $sp : $bpup;
$hp += $bpup; if($addsp > 0) $sp += $addsp;
$hp = $hp > $mhp ? $mhp : $hp; else $addsp = 0;
$oldhp = $hp - $oldhp; //$oldhp = $hp;
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$oldhp</span>点生命和<span class=\"yellow\">$oldsp</span>点体力。<br>"; //$hp += $bpup;
//$hp = $hp > $mhp ? $mhp : $hp;
//$oldhp = $hp - $oldhp;
$addhp = $mhp - $hp < $bpup ? $mhp - $hp : $bpup;
if($addhp > 0) $hp += $addhp;
else $addhp = 0;
$log .= "你使用了<span class=\"red\">$itm</span>,恢复了<span class=\"yellow\">$addhp</span>点生命和<span class=\"yellow\">$addsp</span>点体力。<br>";
//吃了无毒的围棋子饼干 真勇啊! //吃了无毒的围棋子饼干 真勇啊!
if($itm == '像围棋子一样的饼干') $clbpara['achvars']['eat_weiqi'] = 1; if($itm == '像围棋子一样的饼干') $clbpara['achvars']['eat_weiqi'] = 1;
if ($itms != $nosta) { if ($itms != $nosta) {
...@@ -1206,11 +1218,19 @@ function itemuse($itmn,&$data=NULL) { ...@@ -1206,11 +1218,19 @@ function itemuse($itmn,&$data=NULL) {
} elseif ($itm == '天候棒') { } elseif ($itm == '天候棒') {
//global $weather, $wthinfo, $name; //global $weather, $wthinfo, $name;
$weather = rand ( 10, 13 ); if($weather <= 13)
include_once GAME_ROOT . './include/system.func.php'; {
save_gameinfo (); $weather = rand ( 10, 13 );
addnews ( $now, 'wthchange', $name, $weather ); include_once GAME_ROOT . './include/system.func.php';
$log .= "你转动了几下天候棒。<br>天气突然转变成了<span class=\"red b\">$wthinfo[$weather]</span>!<br>"; save_gameinfo ();
addnews ( $now, 'wthchange', $name, $weather );
$log .= "你转动了几下天候棒。<br>天气突然转变成了<span class=\"red\">$wthinfo[$weather]</span>!<br>";
}
else
{
addnews ( $now, 'wthfail', $name, $weather );
$log .= "你转动了几下天候棒。<br>但天气并未发生改变!<br>";
}
$itms --; $itms --;
} elseif ($itm == '天然呆四面的奖赏') { } elseif ($itm == '天然呆四面的奖赏') {
//global $wep, $wepk, $wepe, $weps, $wepsk; //global $wep, $wepk, $wepe, $weps, $wepsk;
......
...@@ -63,9 +63,9 @@ function poison($itmn = 0) { ...@@ -63,9 +63,9 @@ function poison($itmn = 0) {
function wthchange($itm,$itmsk,$wlog=1){ function wthchange($itm,$itmsk,$wlog=1){
global $now,$log,$weather,$wthinfo,$name,$nick,$clbpara; global $now,$log,$weather,$wthinfo,$name,$nick,$clbpara;
$weathertd = $weather; $weathertd = $weather;
if($weather >= 14 && $weather <= 17){ if($weather >= 14 && $weather <= 18){
addnews ( $now, 'wthfail', get_title_desc($nick).' '.$name, $weather, $itm ); addnews ( $now, 'wthfail', get_title_desc($nick).' '.$name, $weather, $itm );
$log .= "你使用了{$itm}。<br /><span class=\"red\">但是恶劣的天气并未发生任何变化!</span><br />"; $log .= "你使用了{$itm}。<br /><span class=\"red\">但是天气并未发生任何变化!</span><br />";
}else{ }else{
if($itmsk==99){$weather = rand ( 0, 13 );}//随机全天气 if($itmsk==99){$weather = rand ( 0, 13 );}//随机全天气
elseif($itmsk==98){$weather = rand ( 10, 13 );}//随机恶劣天气 elseif($itmsk==98){$weather = rand ( 10, 13 );}//随机恶劣天气
......
...@@ -205,7 +205,12 @@ function trap(&$data=NULL){ ...@@ -205,7 +205,12 @@ function trap(&$data=NULL){
addnews($now,'trap',get_title_desc($nick).' '.$name,$trname,$itm0); addnews($now,'trap',get_title_desc($nick).' '.$name,$trname,$itm0);
} }
$log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!受到<span class=\"dmg\">$damage</span>点伤害!<br>"; $log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!受到<span class=\"dmg\">$damage</span>点伤害!<br>";
$rp = $rp / 2;
# 踩雷rp结算
$rp_up = -1 * $rp / 2;
include_once GAME_ROOT.'./include/game/revcombat.func.php';
if($rp_up) rpup_rev($data,$rp_up);
if($goodmancard) if($goodmancard)
{ {
$gm = ceil($goodmancard*rand(80,120)/100); $gm = ceil($goodmancard*rand(80,120)/100);
...@@ -217,7 +222,6 @@ function trap(&$data=NULL){ ...@@ -217,7 +222,6 @@ function trap(&$data=NULL){
{ {
if(!empty($wdata)) if(!empty($wdata))
{ {
include_once GAME_ROOT.'./include/game/revcombat.func.php';
$wdata['wep_name'] = $itm0; $wdata['wep_name'] = $itm0;
// 陷阱有主 走击杀判定 // 陷阱有主 走击杀判定
$last = pre_kill_events($wdata,$data,0,'trap'); $last = pre_kill_events($wdata,$data,0,'trap');
...@@ -1284,9 +1288,13 @@ function getcorpse($item,&$data=NULL) ...@@ -1284,9 +1288,13 @@ function getcorpse($item,&$data=NULL)
$mode = 'command'; $mode = 'command';
return; return;
} }
$log.="你销毁了{$edata['name']}的尸体。<br>但这一切值得吗……?<br>"; $log.="你销毁了{$edata['name']}的尸体。<br>但这一切值得吗……?<br>";
//include_once GAME_ROOT.'./include/game/dice.func.php'; # 销毁尸体rp结算
$rp += diceroll($rpup_destory_corpse); $rp_up = diceroll($rpup_destory_corpse);
include_once GAME_ROOT.'./include/game/revcombat.func.php';
rpup_rev($data,$rpup);
addnews($now,'cdestroy',$name,$edata['name']); addnews($now,'cdestroy',$name,$edata['name']);
destory_corpse($edata); destory_corpse($edata);
$action = ''; $bid = 0; $action = ''; $bid = 0;
......
...@@ -42,6 +42,13 @@ function itemmix_rev($mlist, $itemselect=-1, &$data=NULL) ...@@ -42,6 +42,13 @@ function itemmix_rev($mlist, $itemselect=-1, &$data=NULL)
} }
} else {//只有1个合成选项则直接合成 } else {//只有1个合成选项则直接合成
itemmix_proc($mlist, $mix_res[0], $itmstr, $data); itemmix_proc($mlist, $mix_res[0], $itmstr, $data);
// 晶莹剔透合成成功时 -30rp
if($club == 19)
{
$rpup = -30;
include_once GAME_ROOT.'./include/game/revcombat.func.php';
rpup_rev($data,$rpup);
}
} }
return; return;
} }
......
...@@ -1672,17 +1672,33 @@ ...@@ -1672,17 +1672,33 @@
if($p>0) $fin_dmg_p[]= $p; if($p>0) $fin_dmg_p[]= $p;
} }
# 晶莹判定: # 「莹心」pa效果判定:
if($pa['club'] == 19 || $pd['club'] == 19) if(isset($pa['skill_c19_purity']))
{ {
$p = rev_get_clubskill_bonus_dmg_rate($pa['club'],$pa['skills'],$pa,$pd['club'],$pd['skills'],$pd); $sk = 'c19_purity';
if($p != 100) $sk_lvl = get_skilllvl($sk,$pa);
$sk_p = get_skillvars($sk,'findmgr',$sk_lvl);
if($sk_p)
{ {
$log.="<span class=\"yellow\">在「晶莹」的作用下,{$pa['nm']}造成的最终伤害变化至".$p."%!</span><br>"; $p = 1 - ($sk_p / 100);
$fin_dmg_p[] = round($p/100,2); $log.="<span class=\"yellow\">在「莹心」的作用下,{$pa['nm']}造成的最终伤害降低了{$sk_p}%!</span><br>";
$fin_dmg_p[] = $p;
} }
} }
# 「莹心」pd效果判定:
if(isset($pd['skill_c19_purity']))
{
$sk = 'c19_purity';
$sk_lvl = get_skilllvl($sk,$pd);
$sk_p = get_skillvars($sk,'findmgdefr',$sk_lvl);
if($sk_p)
{
$p = 1 - ($sk_p / 100);
$log.="<span class=\"yellow\">在「莹心」的作用下,{$pa['nm']}造成的最终伤害降低了{$sk_p}%!</span><br>";
$fin_dmg_p[] = $p;
}
}
return $fin_dmg_p; return $fin_dmg_p;
} }
...@@ -1691,6 +1707,15 @@ ...@@ -1691,6 +1707,15 @@
{ {
global $log; global $log;
# 「量心」效果判定 手加减:
if(isset($pa['askill_c19_dispel']) && $fin_dmg >= $pd['hp'])
{
$fin_dmg = $pd['hp'] - 1;
$pa['askill_c19_dispel'] = 2;
$log.="<span class=\"yellow\">{$pa['nm']}在出手时保持了最大限度的克制!</span><br>";
return $fin_dmg;
}
# 「闷棍」技能效果: # 「闷棍」技能效果:
if(isset($pa['bskill_c1_bjack'])) if(isset($pa['bskill_c1_bjack']))
{ {
...@@ -1769,14 +1794,22 @@ ...@@ -1769,14 +1794,22 @@
} }
} }
#剔透判定: # 「祛障」效果判定:
if($pa['club'] == 19) if(isset($pa['bskill_c19_redeem']))
{ {
$rp_dmg = rev_get_clubskill_bonus_dmg_val($pa['club'],$pa['skills'],$pa,$pd); # rp低于对方时,附加白字伤害
if($rp_dmg > 0) if($pd['rp'] > $pa['rp'])
{ {
$rp_dmg = $pd['rp'] - $pa['rp'];
$fin_dmg += $rp_dmg; $fin_dmg += $rp_dmg;
$log .= "<span class=\"yellow\">在「剔透」的作用下,敌人受到了<span class=\"red\">$rp_dmg</span>点额外伤害。</span><br>"; $log .= "<span class=\"yellow\">在「祛障」的作用下,{$pd['nm']}受到了<span class=\"red\">$rp_dmg</span>点额外伤害。</span><br>";
}
else
{
$min_rp = get_skillvars('c19_redeem','rpmin');
$move_rp = max($min_rp,$pd['rp']);
$pd['rp'] += $move_rp; $pa['rp'] -= $move_rp;
$log .= "<span class=\"yellow\">在「祛障」的作用下,{$pa['nm']}将部分罪业转移给了{$pd['nm']}!<br>";
} }
} }
...@@ -1962,22 +1995,12 @@ ...@@ -1962,22 +1995,12 @@
return; return;
} }
//战斗后结算rp事件 # 战斗后结算rp事件
function get_killer_rp(&$pa,&$pd,$active) function get_killer_rp(&$pa,&$pd,$active)
{ {
//杀人rp结算 # 杀人rp结算
$rpup = $pd['type'] ? 20 : max(80,$pd['rp']); $rpup = $pd['type'] ? 20 : max(80,$pd['rp']);
//晶莹剔透修正 rpup_rev($pa,$rpup);
if($pa['club'] == 19)
{
$rpdec = 30;
$rpdec += get_clubskill_rp_dec($pa['club'],$pa['skills']);
$pa['rp'] += round($rpup*(100-$rpdec)/100);
}
else
{
$pa['rp'] += $rpup;
}
return; return;
} }
...@@ -2172,7 +2195,7 @@ ...@@ -2172,7 +2195,7 @@
// $mode 0-标准战斗 1-鏖战 2-追击(追击&鏖战基础先制率不受天气姿态影响) // $mode 0-标准战斗 1-鏖战 2-追击(追击&鏖战基础先制率不受天气姿态影响)
function get_active_r_rev(&$pa,&$pd,$mode=0) function get_active_r_rev(&$pa,&$pd,$mode=0)
{ {
global $log,$active_obbs,$weather,$gamecfg,$chase_active_obbs; global $log,$now,$active_obbs,$weather,$gamevars,$gamecfg,$chase_active_obbs;
include config('combatcfg',$gamecfg); include config('combatcfg',$gamecfg);
$pa['clbpara'] = get_clbpara($pa['clbpara']); $pa['clbpara'] = get_clbpara($pa['clbpara']);
$pd['clbpara'] = get_clbpara($pd['clbpara']); $pd['clbpara'] = get_clbpara($pd['clbpara']);
...@@ -2182,6 +2205,17 @@ ...@@ -2182,6 +2205,17 @@
$active_r = $active_obbs; $active_r = $active_obbs;
# 计算天气对先攻率的修正: # 计算天气对先攻率的修正:
$wth_ar = $weather_active_r[$weather] ?: 0; $wth_ar = $weather_active_r[$weather] ?: 0;
# 光玉雨特殊效果判定:
if($weather == 18 && $gamevars['wth18pid'] == $pa['pid'])
{
# 计算雨势
$wthlastime = $now - $gamevars['wth18stime'];
# 雨势在前7分钟递增,后3分钟递减
$wthlastime = $wthlastime <= 420 ? $wthlastime : 600 - $wthlastime;
$wthpow = min(7,max(1,round($wthlastime / 60)));
# 效力加成
$wth_ar += diceroll($wthpow) + diceroll($wthpow);
}
# 计算pa姿态对于先攻率的修正: # 计算pa姿态对于先攻率的修正:
$a_pose_ar = $pose_active_modifier[$pa['pose']] ?: 0; $a_pose_ar = $pose_active_modifier[$pa['pose']] ?: 0;
# 计算pd姿态对于先攻率的修正: # 计算pd姿态对于先攻率的修正:
...@@ -2256,6 +2290,12 @@ ...@@ -2256,6 +2290,12 @@
$pd['cannot_counter_log'] = "{$pd['nm']}无法反击!"; $pd['cannot_counter_log'] = "{$pd['nm']}无法反击!";
return 0; return 0;
} }
# 被留手了应不应该反击……?暂时定不会反击,但是会反击也很合理,人心险恶嘛!
if(isset($pa['askill_c19_dispel']) && $pa['askill_c19_dispel'] == 2)
{
$pd['cannot_counter_log'] = "被你放了一马的{$pd['nm']}一瘸一拐地逃开了。<br>希望你的决定是正确的……";
return 0;
}
# 处于眩晕状态时,无法反击 # 处于眩晕状态时,无法反击
if(isset($pd['skill_inf_dizzy'])) if(isset($pd['skill_inf_dizzy']))
{ {
......
...@@ -157,8 +157,8 @@ ...@@ -157,8 +157,8 @@
//$pa['skill_'.$sk.'_log'] = ""; //$pa['skill_'.$sk.'_log'] = "";
} }
} }
# active标签技能通用判定 # switch标签技能通用判定
if(get_skilltags($sk,'active') && !empty(get_skillpara($sk,'active',$pa['clbpara'])) && !check_skill_unlock($sk,$pa)) if(get_skilltags($sk,'switch') && !empty(get_skillpara($sk,'active',$pa['clbpara'])) && !check_skill_unlock($sk,$pa))
{ {
$pa['askill_'.$sk] = 1; $pa['askill_'.$sk] = 1;
} }
...@@ -832,7 +832,7 @@ ...@@ -832,7 +832,7 @@
} }
} }
//结算rp上升事件 //结算rp上升事件
if($phase == 'rp' && $rp_up > 0) $pa['rp'] = $pa['rp'] + $rp_up; if($phase == 'rp' && $rp_up > 0) rpup_rev($pa,$rp_up);
//返回一个伤害系数 //返回一个伤害系数
if($phase == 'defend' && $dmg_p > 0) return $dmg_p; if($phase == 'defend' && $dmg_p > 0) return $dmg_p;
} }
......
...@@ -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,$now,$club_skillslist; global $log,$cskills,$now,$club_skillslist,$weather,$gamevars,$wthinfo,$db,$tablepre;
if(!isset($data)) if(!isset($data))
{ {
...@@ -108,6 +108,83 @@ ...@@ -108,6 +108,83 @@
} }
return 0; return 0;
} }
# 事件:晶璧
if($event == 'crystal')
{
# 初始化护盾属性
$slde = round(abs($rp) * get_skillvars($sk,'sldr') / 100);
$sldt = 0;
# 先看看能不能给自己套盾
if(check_skill_unlock('buff_shield',$data))
{
getclubskill('buff_shield',$clbpara);
set_skillpara('buff_shield','svar',$slde,$clbpara);
$sldt++;
}
# 再遍历场上所有参战者(玩家、18、19)
$result = $db->query("SELECT * FROM {$tablepre}players WHERE (type = 0 OR type =18 or type = 19) AND hp > 0 AND pid != {$pid}");
while($sdata = $db->fetch_array($result))
{
$sdata['clbpara'] = get_clbpara($sdata['clbpara']);
# 没有盾的话可以套个盾,有就不给了
if(check_skill_unlock('buff_shield',$sdata))
{
getclubskill('buff_shield',$sdata['clbpara']);
set_skillpara('buff_shield','svar',$slde,$sdata['clbpara']);
$sldt++;
player_save($sdata);
$w_log = "<span class=\"yellow\">{$name}发动了技能「晶璧」,你被一层晶体护盾保护了起来!</span><br>";
logsave ($sdata['pid'],$now,$w_log,'c');
}
}
if($sldt)
{
# 降低rp
$rploss = $sldt * get_skillvars($sk,'rploss');
$rp -= $rploss;
# 扣除怒气
$ragecost = get_skillvars($sk,'ragecost');
$rage -= $ragecost;
$log .= "<span class='lime'>你用心感应,唤出晶体之盾为战场上{$sldt}名参战者提供了庇佑!</span><br>善行点数增加了!<br>";
}
else
{
$log .= "你用心感应,但是战场上似乎已经没有需要你提供庇护的人了。<br>";
return 0;
}
return 1;
}
# 事件:苦雨
if($event == 'woesea')
{
if($weather == 18)
{
$log .= "战场已经处于{$wthinfo[18]}下,不能重复发动!<br>";
return 0;
}
else
{
$ss -= 100;
$weather = 18;
$gamevars['wth18stime'] = $now;
$gamevars['wth18etime'] = $now + get_skillvars('c19_woesea','wtht');
$gamevars['wth18pid'] = $pid;
save_gameinfo();
addnews($now, 'wthchange', $name, $weather, '自己积攒的善德');
include_once GAME_ROOT.'./include/game/combat.func.php';
$sn = 'song';
addnoise($sn,'__',$now,$pls,0,0,$sn);
$clbpara['event_bgmbook'] = Array('wth18');
$log .= "你闭上双眼,伴着记忆中那轻快的旋律轻轻哼唱起来……<br>
歌声悠然飘扬,朦胧间,你似乎感到有雨滴淅沥落下,轻轻拍在你的脸上。<br>
当你再度睁开眼时,<br>
不知从何而来、如妖精般飞舞着的光球们抚过你的面颊,然后飘往虚拟战场的每个角落——<br>
……<br>
下雨了。";
return 1;
}
}
# 事件:雇佣佣兵 # 事件:雇佣佣兵
if($event == 'hiremerc') if($event == 'hiremerc')
{ {
...@@ -511,7 +588,8 @@ ...@@ -511,7 +588,8 @@
# 出生啊! # 出生啊!
$max_rp_dice = $pdata['itme0']+$pdata['itms0'] > 300 ? $pdata['itme0']+$pdata['itms0'] : 300; $max_rp_dice = $pdata['itme0']+$pdata['itms0'] > 300 ? $pdata['itme0']+$pdata['itms0'] : 300;
$rp_dice = rand(300,$max_rp_dice); $rp_dice = rand(300,$max_rp_dice);
$pdata['rp'] += $rp_dice; include_once GAME_ROOT.'./include/game/revcombat.func.php';
rpup_rev($pdata,$rp_dice);
# 做成棍了就没有尸体了 # 做成棍了就没有尸体了
destory_corpse($edata); destory_corpse($edata);
include_once GAME_ROOT.'./include/game/itemmain.func.php'; include_once GAME_ROOT.'./include/game/itemmain.func.php';
......
...@@ -800,7 +800,7 @@ ...@@ -800,7 +800,7 @@
# 重要的事情要说三次:这里的第一个参数指的是杀人者(敌对方)视角,第二个参数指的是死者(受到伤害者)视角。 # 重要的事情要说三次:这里的第一个参数指的是杀人者(敌对方)视角,第二个参数指的是死者(受到伤害者)视角。
function revive_process(&$pa,&$pd,$active) function revive_process(&$pa,&$pd,$active)
{ {
global $log,$weather,$now; global $log,$weather,$now,$gamevars;
include_once GAME_ROOT.'./include/game/clubslct.func.php'; include_once GAME_ROOT.'./include/game/clubslct.func.php';
if(empty($pa['nm'])) $pa['nm'] = $active && !$pa['type'] ? '你' : $pa['name']; if(empty($pa['nm'])) $pa['nm'] = $active && !$pa['type'] ? '你' : $pa['name'];
...@@ -810,6 +810,30 @@ ...@@ -810,6 +810,30 @@
$dname = $pd['type'] ? $pd['name'] : get_title_desc($pd['nick']).' '.$pd['name']; $dname = $pd['type'] ? $pd['name'] : get_title_desc($pd['nick']).' '.$pd['name'];
#光玉雨天气下,提供者有概率复活
if (!$revival_flag && $weather == 18 && $gamevars['wth18pid'] == $pd['pid'])
{
# 计算雨势
$wthlastime = $now - $gamevars['wth18stime'];
# 雨势在前7分钟递增,后3分钟递减
$wthlastime = $wthlastime <= 420 ? $wthlastime : 600 - $wthlastime;
$wthpow = min(7,max(1,round($wthlastime / 60)));
# 复活概率:基础10% + 效力x2 最高24%
$wth18_obbs = 10 + diceroll($wthpow) + diceroll($wthpow);
$wth18_dice = diceroll(99);
if($wth18_dice < $wth18_obbs)
{
#奥罗拉复活效果
$revival_flag = 18; //保存复活标记为通过光玉雨复活
addnews($now,'wth18_revival',$dname);
$pd['hp'] += min($pd['mhp'],max($wth18_obbs,1));
$pd['sp'] += min($pd['msp'],max($wth18_obbs,1));
$pd['state'] = 0;
$log.= "<span class=\"lime\">但是,飞舞着的光玉们钻进了{$pd['nm']}的身体,让{$pd['nm']}重新站了起来!</span><br>";;
return $revival_flag;
}
}
#极光天气下,玩家有10%概率、NPC有1%概率无条件复活 #极光天气下,玩家有10%概率、NPC有1%概率无条件复活
if (!$revival_flag && $weather == 17) if (!$revival_flag && $weather == 17)
{ {
...@@ -828,15 +852,27 @@ ...@@ -828,15 +852,27 @@
} }
} }
#决死结界复活: # 「涅槃」复活:
if (!$revival_flag && $pd['club']==99 && !$pd['type']) if (!$revival_flag && isset($pd['skill_c19_nirvana']))
{ {
#决死结界复活效果: # 「涅槃」复活效果:
$revival_flag = 99; //保存复活标记为通过称号复活 $revival_flag = 'nirvan'; //保存复活标记为通过技能复活
addnews($now,'revival',$dname); addnews($now,'revival',$dname);
$pd['hp'] = $pd['mhp']; $pd['sp'] = $pd['msp']; # 添加「涅槃」激活次数
$pd['state'] = 0; changeclub(17,$pd); set_skillpara('c19_nirvana','active_t',get_skillpara('c19_nirvana','active_t',$pd['clbpara'])+1,$pd['clbpara']);
$log .= '<span class="yellow">但是,由于及时按下BOMB键,'.$pd['nm'].'原地满血复活了!</span><br>'; $pd['state'] = 0;
$pd['hp'] = 1; $pd['sp'] = 1;
# 将多出的rp转化为生命和防御力
if($pd['rp'])
{
$tot_rp = abs(round($pd['rp']/2));
if($tot_rp)
{
$pd['mhp'] += $tot_rp; $pd['def'] += $tot_rp;
}
$pd['rp'] = 0;
}
$log .= '<span class="lime">但是,'.$pd['nm'].'涅槃重生了!</span><br>';
return $revival_flag; return $revival_flag;
} }
...@@ -1056,6 +1092,28 @@ ...@@ -1056,6 +1092,28 @@
return; return;
} }
# rp结算
function rpup_rev(&$pa,$rpup)
{
# 「转业」效果判定
if(!check_skill_unlock('c19_reincarn',$pa))
{
$sk = 'c19_reincarn';
$sk_lvl = get_skilllvl($sk,$pa);
if($rpup > 0)
{
$sk_var = get_skillvars($sk,'rpgain',$sk_lvl);
$rpup = round($rpup*(1-($sk_var/100)));
}
else
{
$sk_var = get_skillvars($sk,'rploss',$sk_lvl);
$rpup = round($rpup*(1+($sk_var/100)));
}
}
$pa['rp'] += $rpup;
}
# 战斗经验结算 # 战斗经验结算
function expup_rev(&$pa,&$pd,$active) function expup_rev(&$pa,&$pd,$active)
{ {
......
...@@ -370,7 +370,7 @@ function search(&$data=NULL){ ...@@ -370,7 +370,7 @@ function search(&$data=NULL){
function move_search_events(&$data=NULL,$act) function move_search_events(&$data=NULL,$act)
{ {
global $log,$inf_move_hp,$inf_move_sp,$infwords; global $log,$inf_move_hp,$inf_move_sp,$infwords,$weather,$gamevars,$now;
if(!isset($data)) if(!isset($data))
{ {
...@@ -410,6 +410,48 @@ function move_search_events(&$data=NULL,$act) ...@@ -410,6 +410,48 @@ function move_search_events(&$data=NULL,$act)
} }
} }
# 光玉雨天气效果判定:
if($weather == 18)
{
# 雨停了
if($now > $gamevars['wth18etime'])
{
unset($gamevars['wth18stime']);
unset($gamevars['wth18etime']);
unset($gamevars['wth18pid']);
$weather = 1;
save_gameinfo();
addnews($now, 'wth18end');
if(!empty($clbpara['event_bgmbook'])) unset($clbpara['event_bgmbook']);
}
# 雨势
else
{
if(empty($clbpara['event_bgmbook'])) $clbpara['event_bgmbook'] = Array('wth18');
$wthlastime = $now - $gamevars['wth18stime'];
# 雨势在前7分钟递增,后3分钟递减
$wthlastime = $wthlastime <= 420 ? $wthlastime : 600 - $wthlastime;
$wthpow = min(7,max(1,round($wthlastime / 60)));
$hp_up = diceroll($wthpow) * diceroll($wthpow);
$sp_up = diceroll($wthpow) * diceroll($wthpow);
if($hp_up || $sp_up)
{
$log .= "<span class='minirainbow'>不知从哪飘来的光球落在了你的肩上……</span><br>超量恢复了";
if($hp_up)
{
$hp += $hp_up;
$log .= "<span class='minirainbow'>{$hp_up}</span>点生命!";
}
if($sp_up)
{
$hp += $sp_up;
$log .= "<span class='minirainbow'>{$sp_up}</span>点体力!";
}
$log .= "<br>";
}
}
}
# 「理财」效果判定: # 「理财」效果判定:
if(!check_skill_unlock('c11_stock',$data)) if(!check_skill_unlock('c11_stock',$data))
{ {
...@@ -605,6 +647,8 @@ function discover($schmode = 0,&$data=NULL) ...@@ -605,6 +647,8 @@ function discover($schmode = 0,&$data=NULL)
if(!empty(get_skillpara('c11_merc','id',$clbpara)) && in_array($edata['pid'],get_skillpara('c11_merc','id',$clbpara))) continue; if(!empty(get_skillpara('c11_merc','id',$clbpara)) && in_array($edata['pid'],get_skillpara('c11_merc','id',$clbpara))) continue;
//灵子状态只能遭遇同为灵子状态的对象,非灵子状态对象无法发现灵子状态下的对象……但是尸体就没有这种考量了 //灵子状态只能遭遇同为灵子状态的对象,非灵子状态对象无法发现灵子状态下的对象……但是尸体就没有这种考量了
if(($edata['pose'] == 8 || $data['pose'] == 8) && $data['pose'] != $edata['pose']) 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); $hide_r = get_hide_r_rev($data,$edata);
$enemy_dice = diceroll(99); $enemy_dice = diceroll(99);
......
...@@ -93,9 +93,11 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') { ...@@ -93,9 +93,11 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
} elseif($news == 'end6') { } elseif($news == 'end6') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"red\">本局游戏被GM中止</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"red\">本局游戏被GM中止</span><br>\n";
} elseif($news == 'revival') { } elseif($news == 'revival') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}因为及时按了BOMB键而原地满血复活了!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}涅槃重生了!</span><br>\n";
} elseif($news == 'aurora_revival') { } elseif($news == 'aurora_revival') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}在奥罗拉的作用下原地复活了!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}在奥罗拉的作用下原地复活了!</span><br>\n";
} elseif($news == 'wth18_revival') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}在光玉们的帮助下原地复活了!</span><br>\n";
} elseif(strpos($news,'death') === 0) { } elseif(strpos($news,'death') === 0) {
if($news == 'death11') { if($news == 'death11') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>因滞留在<span class=\"red\">禁区【{$plsinfo[$c]}】</span>死亡"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"yellow\">$a</span>因滞留在<span class=\"red\">禁区【{$plsinfo[$c]}】</span>死亡";
...@@ -198,7 +200,9 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') { ...@@ -198,7 +200,9 @@ function nparse_news($start = 0, $range = 0 ){//$type = '') {
} elseif($news == 'wthchange') { } elseif($news == 'wthchange') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}使用了{$c},天气变成了{$wthinfo[$b]}!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}使用了{$c},天气变成了{$wthinfo[$b]}!</span><br>\n";
} elseif($news == 'wthfail') { } elseif($news == 'wthfail') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}使用了{$c},但是恶劣的天气并未发生改变!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">{$a}使用了{$c},但是天气并未发生改变!</span><br>\n";
} elseif($news == 'wth18end') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"grey\">光玉雨停下了……</span><br>\n";
} elseif($news == 'syswthchg') { } elseif($news == 'syswthchg') {
$newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">奇迹和魔法都是存在的!当前天气变成了{$wthinfo[$a]}!</span><br>\n"; $newsinfo .= "<li>{$hour}{$min}{$sec}秒,<span class=\"lime\">奇迹和魔法都是存在的!当前天气变成了{$wthinfo[$a]}!</span><br>\n";
} elseif($news == 'sysaddarea') { } elseif($news == 'sysaddarea') {
......
...@@ -338,7 +338,7 @@ function add_once_area($atime) { ...@@ -338,7 +338,7 @@ function add_once_area($atime) {
} elseif(($areanum + $areaadd) >= $plsnum) { } elseif(($areanum + $areaadd) >= $plsnum) {
$areaaddlist = array_slice($arealist,$areanum+1); $areaaddlist = array_slice($arealist,$areanum+1);
$areanum = $plsnum; $areanum = $plsnum;
$weather = rand(0,9); if($weather <= 9) $weather = rand(0,9);
//addnews($atime,'addarea',$areaaddlist,$weather); //addnews($atime,'addarea',$areaaddlist,$weather);
addnews($atime, 'addarea',$areaaddlist,$weather); addnews($atime, 'addarea',$areaaddlist,$weather);
storyputchat($now,'areaadd'); storyputchat($now,'areaadd');
...@@ -362,7 +362,7 @@ function add_once_area($atime) { ...@@ -362,7 +362,7 @@ function add_once_area($atime) {
gameover($atime,'end1'); gameover($atime,'end1');
return; return;
} else { } else {
$weather = rand(0,9); if($weather <= 9) $weather = rand(0,9);
if($hack > 0){$hack--;} if($hack > 0){$hack--;}
//重置控制面板可用次数 //重置控制面板可用次数
if(isset($gamevars['apis']) && isset($gamevars['api'])) $gamevars['api'] = $gamevars['apis']; if(isset($gamevars['apis']) && isset($gamevars['api'])) $gamevars['api'] = $gamevars['apis'];
......
...@@ -1836,13 +1836,13 @@ NPC也会发出重击和必杀技,请随时小心。</p> ...@@ -1836,13 +1836,13 @@ NPC也会发出重击和必杀技,请随时小心。</p>
</td> </td>
<td class="b3"> <td class="b3">
<span> <span>
获得奇妙的庇佑,让你惩恶扬善<br> 获得奇妙的庇佑,让你能够看到自己与敌人的“报应点数”<br>
这是一个偏上级者向的称号,还请自己体验。<br> 点数会在你杀害某人时增加,遭遇陷阱、合成道具时减少<br>
<span class="grey">若你心中毫无杂念,一心求生……</span> <span class="grey">若你心中毫无杂念,一心求生……</span>
</span> </span>
</td> </td>
<td class="b3"> <td class="b3">
<span>待实装</span> <span><input type="button" class="cmdbutton" value="点击查看称号技能" onclick="showModalDialog($('skillhelp-c19'));"></span>
</tr> </tr>
<tr> <tr>
<td class="b2" height=20px> <td class="b2" height=20px>
......
...@@ -65,7 +65,9 @@ ...@@ -65,7 +65,9 @@
<td colspan="2"> <td colspan="2">
<select id="cwth" name="cwth" style="width:72px" onchange="closeDialog($('terminal'));$('mode').value='command';$('command').value='consle_wthchange';postCmd('gamecmd','command.php');"> <select id="cwth" name="cwth" style="width:72px" onchange="closeDialog($('terminal'));$('mode').value='command';$('command').value='consle_wthchange';postCmd('gamecmd','command.php');">
<!--{loop $wthinfo $n $wth}--> <!--{loop $wthinfo $n $wth}-->
<!--{if $n != 18}-->
<option value="$n"<!--{if $weather == $n}--> selected<!--{/if}-->> {$wth} </option> <option value="$n"<!--{if $weather == $n}--> selected<!--{/if}-->> {$wth} </option>
<!--{/if}-->
<!--{/loop}--> <!--{/loop}-->
</select> </select>
</td> </td>
......
...@@ -132,7 +132,7 @@ if($mode == 'enter') { ...@@ -132,7 +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,10); $dice_name = $clubinfo[$dice]; $dice = rand(0,1); $dice = $dice ? 11 : 19; $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