Commit e62f8d89 authored by hisuinohoshi's avatar hisuinohoshi

update nicksrev

修正:
- 在某些情况下使用礼物盒类道具无法开出道具的问题;

开发相关:
- 新增页面 devtools.php 用于跳转一些临时性的开发工具;
- 向user表内新增了字段'nicksrev';
- 修改了头衔数据的储存格式,头衔数据现在以编号形式保存在字段'nicksrev'内,未来会在该字段内保存使用特定头衔获胜的场次/达成过的结局或其他定制内容;
- 添加了头衔相关配置文件 titles_1.php;
- 添加了用于从user表中格式化拉取玩家数据的方法fetch_userdata_by_username();
parent b874c872
<?php
define('CURSCRIPT', 'achclear');
require './include/common.inc.php';
if(!$udata) { gexit($_ERROR['no_login'],__file__,__line__); }
if($udata['password'] != $cpass) { gexit($_ERROR['wrong_pw'], __file__, __line__); }
elseif(($udata['groupid'] <= 1)&&($cuser!==$gamefounder)) { gexit($_ERROR['no_admin'], __file__, __line__); }
$action = !empty($_POST['action']) ? $_POST['action'] : $_GET['action'];
if(empty($action))
{
echo '点击开始批量转换用户成就数据<br>
(操作前,请手动备份用户表数据,以避免数据丢失)<br>
<a href="achclear.php?action=start" style="text-decoration: none">
<span><font color="green">[开始]</font></span>
</a><br><br>';
}
if (isset($action) && $action=='start')
{
# 将旧成就数据格式转为新格式
header('Location: achclear.php');
}
?>
\ No newline at end of file
......@@ -239,7 +239,7 @@
/** 玩家信息 */
"playerInfo" => array(
/** 称号 */
"nick" => get_title_desc($nick),
"nick" => titles_get_desc($nick),
/** 姓名 */
"name" => $name,
/** 性别 */
......
......@@ -149,7 +149,7 @@ $bot_player_list = Array
0 => array
(
'name' => '雷文·K',
'nick' => '参展者',
'nick' => 0,
'icon' => 128,
'gd' => 'f',
'club' => 2,
......@@ -167,7 +167,7 @@ $bot_player_list = Array
1 => array
(
'name' => '雷文·G',
'nick' => '参展者',
'nick' => 0,
'icon' => 128,
'gd' => 'f',
'club' => 4,
......@@ -185,7 +185,7 @@ $bot_player_list = Array
2 => array
(
'name' => '雷文·C',
'nick' => '参展者',
'nick' => 0,
'icon' => 128,
'gd' => 'f',
'club' => 3,
......@@ -203,7 +203,7 @@ $bot_player_list = Array
3 => array
(
'name' => '雷文·P',
'nick' => '参展者',
'nick' => 0,
'icon' => 128,
'gd' => 'f',
'club' => 1,
......
......@@ -52,8 +52,8 @@ function bot_player_valid($vnums)
if(!empty($ndata)) $db->array_insert("{$tablepre}players", $ndata);
$ids[] = $db->insert_id();
# 初始化头衔tooltip
include_once GAME_ROOT.'./include/game/titles.func.php';
$nickinfo = get_title_desc($nick);
$nickinfo = titles_get_desc($nick);
addnews($now,'newpc',$nickinfo.' '.$name,"{$sexinfo[$gd]}{$sNo}号",$ip,$nick);
}
return $ids;
......@@ -399,13 +399,13 @@ function bot_check_can_mixitem(&$pa)
if(empty($stf['r2']) && isset($stf['r0']) && isset($stf['r1']))
{
$pa['clbpara']['botstf']['r2'] = 1;
addnews($now,'itemmix',get_title_desc($nick).' '.$name,'广域生命探测器');
addnews($now,'itemmix',titles_get_desc($nick).' '.$name,'广域生命探测器');
}
if(empty($stf['p3']) && isset($stf['p1']) && isset($stf['p2']))
{
$pa['clbpara']['botstf']['p3'] = 1;
addnews($now,'itemmix',get_title_desc($nick).' '.$name,'移动 PC');
addnews($now,'itemmix',titles_get_desc($nick).' '.$name,'移动 PC');
}
if($pa['club'] == 1)
......
<?php
define('CURSCRIPT', 'dbup');
define('IN_GAME', TRUE);
define('GAME_ROOT', dirname(__FILE__));
define('GAMENAME', 'bra');
if(version_compare(PHP_VERSION, '4.3.0', '<')) {
exit('PHP version must >= 4.3.0!');
}
require GAME_ROOT.'/include/global.func.php';
$magic_quotes_gpc = false;
extract(gstrfilter($_COOKIE));
extract(gstrfilter($_POST));
unset($_GET);
$_FILES = gstrfilter($_FILES);
require GAME_ROOT.'/config.inc.php';
$errorinfo ? error_reporting(E_ALL) : error_reporting(0);
$now = time() + $moveut*3600 + $moveutmin*60;
list($sec,$min,$hour,$day,$month,$year,$wday) = explode(',',date("s,i,H,j,n,Y,w",$now));
//if($attackevasive) {
// include_once GAME_ROOT.'./include/security.inc.php';
//}
require GAME_ROOT.'/include/db_'.$database.'.class.php';
$db = new dbstuff;
$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
//$db->select_db($dbname);
unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
//require GAME_ROOT.'./gamedata/system.php';
//require config('resources',$gamecfg);
//require config('gamecfg',$gamecfg);
echo 'a';
//include GAME_ROOT.'./gamedata/gameinfo.php';
echo $q.'<br>';
//echo $db->query($q);
$q = "UPDATE {$gtablepre}users SET achievement='' WHERE uid>0";
echo $db->query($q);
$q = "ALTER TABLE {$gtablepre}users ADD titles text NOT NULL default '' AFTER achievement";
//echo $db->query($q);
$q = "ALTER TABLE {$gtablepre}users ADD title text NOT NULL default '' AFTER title";
//echo $db->query($q);
?>
\ No newline at end of file
This diff is collapsed.
<?php
/*GPT:
这段代码是用于在使用 PHP 语言开发的网页中设置一些 HTTP 头部信息和输出缓冲设置。下面是对每一行代码的解释:
@ob_end_clean();
ob_end_clean() 函数用于清空输出缓冲区,并关闭输出缓冲。@ 符号用于抑制任何可能的错误或警告信息。
header('Content-Type: text/HTML; charset=utf-8');
这行代码设置响应头部,指定返回给浏览器的内容类型为 HTML,并指定字符集为 UTF-8。
header('Cache-Control: no-cache');
这行代码设置响应头部,告知浏览器不要对页面进行缓存。每次请求页面时都会向服务器发送请求,以获取最新的内容。
header('X-Accel-Buffering: no');
这行代码设置响应头部,关闭加速缓冲。加速缓冲是一种将响应内容在服务器端缓冲一段时间后再发送给客户端的技术。该行代码禁用了这种缓冲。
@ini_set('implicit_flush',1);
ini_set() 函数用于设置 PHP 配置选项的值。这行代码设置了 implicit_flush 选项为 1,启用了隐式刷新。隐式刷新表示在输出内容到浏览器之后立即将其发送给客户端,而不需要等待脚本执行完毕。
ob_implicit_flush(1);
ob_implicit_flush() 函数用于启用输出缓冲的隐式刷新。这行代码启用了隐式刷新功能。
set_time_limit(0);
set_time_limit() 函数用于设置脚本的最大执行时间。将参数设置为 0 表示不限制脚本的执行时间。
@ini_set('zlib.output_compression',0);
这行代码设置了 zlib.output_compression 选项为 0,禁用了输出内容的压缩。默认情况下,PHP 可能会对输出内容进行压缩以减少数据传输量,但该行代码禁用了这种压缩。
这些代码的目的是为了确保在输出内容到浏览器时能够实时显示,并禁用浏览器缓存和服务器端的输出缓冲。这对于实时显示动态内容或长时间运行的脚本非常有用。 */
require './include/common.inc.php';
if(!$udata) { gexit($_ERROR['no_login'],__file__,__line__); }
if($udata['password'] != $cpass) { gexit($_ERROR['wrong_pw'], __file__, __line__); }
elseif($udata['groupid'] < 9) { gexit($_ERROR['no_admin'], __file__, __line__); }
$action = !empty($_POST['action']) ? $_POST['action'] : $_GET['action'];
$exit = '<br><a href="devtools.php" style="text-decoration: none">
<span><font color="green">[返回]</font></span>';
if(empty($action))
{
echo '临时开发工具列表:<br><br>
<a href="devtools.php?action=print_itm" style="text-decoration: none">
<span><font color="green">[生成所有道具名至 itmlist_'.$gamecfg.'.php]</font></span>
</a>
<br><br>
<a href="devtools.php?action=print_titles" style="text-decoration: none">
<span><font color="green">[生成所有头衔名至 titles_'.$gamecfg.'.php]</font></span>
</a>
<br><br>
<a href="devtools.php?action=achrev_update" style="text-decoration: none">
<span><font color="green">[更新所有用户的成就数据]</font></span>
</a>
<br><br>
<a href="devtools.php?action=nicksrev_update" style="text-decoration: none">
<span><font color="green">[更新所有用户的头衔数据]</font></span>
</a>
<br><br>';
}
ob_end_flush(); flush();
if (isset($action))
{
ob_start();
switch ($action) {
case 'print_itm':
include GAME_ROOT.'./include/devtools/printitm.func.php';
print_itm_namelist();
break;
case 'print_titles':
include GAME_ROOT.'./include/devtools/printtitles.func.php';
print_titles_list();
break;
case 'achrev_update':
include GAME_ROOT.'./include/devtools/achrevupdate.func.php';
achrev_update();
break;
case 'nicksrev_update':
include GAME_ROOT.'./include/devtools/achrevupdate.func.php';
nicksrev_update();
break;
default:
echo "无效的指令。".$exit;
break;
}
ob_end_flush(); flush();
}
?>
\ No newline at end of file
......@@ -3,7 +3,7 @@
define('CURSCRIPT', 'game');
require './include/common.inc.php';
require GAME_ROOT.'./include/game.func.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
if(isset($mode) && $mode == 'quit') {
......
This diff is collapsed.
......@@ -1081,108 +1081,6 @@ $itemspkinfo = Array(
'^' => '背包',
);
//头衔文字效果:
//因为一些历史遗留问题,这部分样式文本会直接存进数据库的news表里,所以……不要超过200个字……
//什么历史遗留问题?……就是现在所有$nick都是 $nick.' '.$name 这样存进同一个字段里的……这没法拆啊!
$title_desc = Array
(
# class-样式 title-提示悬浮框 img-图片url,会覆盖样式与悬浮框
'参展者' => Array('title'=>"【开局福利】获得参加会展用的背包,替代校服。"),
'叶子钦定!' => Array('title'=>"【开局福利】获得「核子补给」。"),
'寻星者' => Array('title'=>"【开局福利】获得额外斩系熟练以及武器『寻星勇者』"),
'TERRA' => Array('title'=>"【开局福利】获得篝酱曾经用过的奇妙武器。"),
'越红者' => Array('title'=>"【开局福利】获得一把红杀训练用的铁剑。"),
'跨过彩虹' => Array('title'=>"【开局福利】获得一本奇怪的书,蓝凝似乎很喜欢它。"),
'l33t' => Array('title'=>"【开局福利】获得KEY弹大礼包,可以通过合成来获得真货。"),
'赌玉狂魔' => Array('title'=>"【开局福利】牺牲了腿,获得了更多金钱。"),
'美食家' => Array('title'=>"【开局福利】携带更好的补给开局。"),
'殴系爱好者' => Array('title'=>"【开局福利】获得额外的殴系熟练度,并自带称号卡。"),
'斩系爱好者' => Array('title'=>"【开局福利】获得额外的斩系熟练度,并自带称号卡。"),
'投系爱好者' => Array('title'=>"【开局福利】获得额外的投系熟练度,并自带称号卡。"),
'爆系爱好者' => Array('title'=>"【开局福利】获得额外的爆系熟练度,并自带称号卡。"),
'射系爱好者' => Array('title'=>"【开局福利】获得额外的射系熟练度,并自带称号卡。"),
'灵系爱好者' => Array('title'=>"【开局福利】获得额外的灵系熟练度,并自带称号卡。"),
'实用主义者' => Array('title'=>"【开局福利】获得额外的全系熟练度,并自带能开出防具等物品的福袋。"),
'奇迹的篝火' => Array('title'=>"【游戏机制】可以看见游戏中大部分骰子的结果。"),
'补给掠夺者' => Array('class'=>'', 'title'=>"你是真能吃啊!"),
'弱子' => Array('img'=>"img/nicktest.png",)
);
//所有在player表里登记过的合法字段都可以写进里面 //非法内容会被自动过滤掉……大概吧
//同时,也支持合法的运算符,写在 [::] 内可以自动识别…… //呃试着做了下感觉有风险,还是写死吧,暂时只支持 += -= *= /= 四种吧,应该够用了吧?
//比如入场时斩熟+50 就写 'wk' => '[:+=:]50',
$title_valid = Array
(
'弱子' => Array(
'clbpara' => Array('cheater' => 1,),
),
'参展者' => Array(
'arb' => '二次元漫展背包', 'arbk' => 'DB', 'arbe' => 2, 'arbs' => 2, 'arbsk' => '^',
),
'叶子钦定!' => Array(
'itm5' => '核子面包', 'itmk5' => 'HH', 'itme5' => 237, 'itms5' => 5, 'itmsk5' => '',
'itm6' => '核子矿泉水', 'itmk6' => 'HS', 'itme6' => 237, 'itms6' => 5, 'itmsk6' => '',
),
'寻星者' => Array(
'wk' => '[:+=:]50',
'wep' => '『寻星勇者』', 'wepk' => 'WK', 'wepe' => 90, 'weps' => 35, 'wepsk' => 'd',
),
'TERRA' => Array(
'itm6' => '篝酱的奇迹☆胶带~棍', 'itmk6' => 'WP', 'itme6' => 42, 'itms6' => 300, 'itmsk6' => 'dej',
),
'越红者' => Array(
'itm6' => '红杀铁剑', 'itmk6' => 'WK', 'itme6' => 60, 'itms6' => 30, 'itmsk6' => 'N',
),
'跨过彩虹' => Array(
'itm6' => 'AZURE RONDO模样的杏仁豆腐', 'itmk6' => 'WF', 'itme6' => 233, 'itms6' => 1, 'itmsk6' => 'd',
),
'l33t' => Array(
'itm1' => '键 希望弹模样的杏仁豆腐', 'itmk1' => 'WC', 'itme1' => 500, 'itms1' => 1, 'itmsk1' => 'z',
'itm2' => '键 燃烧弹模样的杏仁豆腐', 'itmk2' => 'WF', 'itme2' => 500, 'itms2' => 1, 'itmsk2' => 'z',
'itm3' => '键 生命弹模样的杏仁豆腐', 'itmk3' => 'WG', 'itme3' => 500, 'itms3' => 1, 'itmsk3' => 'z',
'itm4' => '键 未来弹模样的杏仁豆腐', 'itmk4' => 'WP', 'itme4' => 500, 'itms4' => 1, 'itmsk4' => 'z',
'itm5' => '键 催泪弹模样的杏仁豆腐', 'itmk5' => 'WD', 'itme5' => 500, 'itms5' => 1, 'itmsk5' => 'z',
'itm6' => '键 旅途弹模样的杏仁豆腐', 'itmk6' => 'WK', 'itme6' => 500, 'itms6' => 1, 'itmsk6' => 'z',
),
'赌玉狂魔' => Array(
'money' => '[:+=:]3210',
'wep' => '增殖之腿', 'wepk' => 'WCP', 'wepe' => 10, 'weps' => '∞', 'wepsk' => 'd',
),
'美食家' => Array(
'itm1' => '裱花布里欧修', 'itmk1' => 'HH', 'itme1' => 255, 'itms1' => 10, 'itmsk1' => 'z',
'itm2' => '埃斯卡依云斐济水', 'itmk2' => 'HS', 'itme2' => 255, 'itms2' => 20, 'itmsk2' => 'z',
'itm6' => '强效西柚汁', 'itmk6' => 'HB', 'itme6' => 127, 'itms6' => 15, 'itmsk6' => 'z',
),
'殴系爱好者' => Array(
'wp' => '[:+=:]50',
'itm6' => '「铁拳无敌」称号卡', 'itmk6' => 'ZB', 'itme6' => 1, 'itms6' => 1, 'itmsk6' => '',
),
'斩系爱好者' => Array(
'wk' => '[:+=:]50',
'itm6' => '「见敌必斩」称号卡', 'itmk6' => 'ZB', 'itme6' => 2, 'itms6' => 1, 'itmsk6' => '',
),
'投系爱好者' => Array(
'wc' => '[:+=:]50',
'itm6' => '「灌篮高手」称号卡', 'itmk6' => 'ZB', 'itme6' => 3, 'itms6' => 1, 'itmsk6' => '',
),
'爆系爱好者' => Array(
'wd' => '[:+=:]50',
'itm6' => '「拆弹专家」称号卡', 'itmk6' => 'ZB', 'itme6' => 5, 'itms6' => 1, 'itmsk6' => '',
),
'射系爱好者' => Array(
'wg' => '[:+=:]50',
'itm6' => '「狙击鹰眼」称号卡', 'itmk6' => 'ZB', 'itme6' => 4, 'itms6' => 1, 'itmsk6' => '',
),
'灵系爱好者' => Array(
'wf' => '[:+=:]50',
'itm6' => '「超能力者」称号卡', 'itmk6' => 'ZB', 'itme6' => 9, 'itms6' => 1, 'itmsk6' => '',
),
'实用主义者' => Array(
'wp' => '[:+=:]25','wk' => '[:+=:]25','wc' => '[:+=:]25','wd' => '[:+=:]25','wg' => '[:+=:]25','wf' => '[:+=:]25',
'itm6' => 'SPECIAL TECH 「特选科技」', 'itmk6' => 'p0O1', 'itme6' => 1, 'itms6' => 1, 'itmsk6' => '',
),
);
//club20 元素大师:
$sparkle = '<span class="sparkle">✨</span>';
$elements_info = Array
......
This diff is collapsed.
......@@ -191,6 +191,7 @@ CREATE TABLE `acbra2_players` (
achievement text NOT NULL default '',
nick text NOT NULL default '',
nicks text NOT NULL default '',
nicksrev text NOT NULL default '',
skillpoint smallint unsigned NOT NULL default '0',
skills smallint unsigned NOT NULL default '0',
cdsec int(10) unsigned NOT NULL default '0',
......
......@@ -18,8 +18,8 @@ if($command != 'submitedit'){
$in_file = config('itmlist',$gamecfg);
if(!file_exists($in_file))
{
require 'sp_ilist.php';
get_itm_namelist();
include GAME_ROOT.'./include/devtools/printitm.func.php';
print_itm_namelist();
}
include_once($in_file);
$temp_item_namelist = $item_namelist;
......
......@@ -18,8 +18,8 @@ if($command != 'submitedit'){
$in_file = config('itmlist',$gamecfg);
if(!file_exists($in_file))
{
require 'sp_ilist.php';
get_itm_namelist();
include GAME_ROOT.'./include/devtools/printitm.func.php';
print_itm_namelist();
}
include_once($in_file);
$temp_item_namelist = $item_namelist;
......
......@@ -149,8 +149,8 @@ if($urcmd == 'ban' || $urcmd == 'unban' || $urcmd == 'del' || $urcmd == 'checkac
$urdata[$no]['motto'] = $urmotto = astrfilter(${'motto_'.$no});
$urdata[$no]['killmsg'] = $urkillmsg = astrfilter(${'killmsg_'.$no});
$urdata[$no]['lastword'] = $urlastword = astrfilter(${'lastword_'.$no});
$urdata[$no]['nicks'] = $urnicks = ${'nicks_'.$no};
$urdata[$no]['achievement'] = $urach = ${'achievement_'.$no};
//$urdata[$no]['nicks'] = $urnicks = ${'nicks_'.$no};
//$urdata[$no]['achievement'] = $urach = ${'achievement_'.$no};
$urdata[$no]['icon'] = $uricon = (int)(${'icon_'.$no});
$urdata[$no]['credits'] = $urcredits = (int)(${'credits_'.$no});
$urdata[$no]['credits2'] = $urcredits2 = (int)(${'credits2_'.$no});
......@@ -161,10 +161,10 @@ if($urcmd == 'ban' || $urcmd == 'unban' || $urcmd == 'del' || $urcmd == 'checkac
}
if(!empty(${'pass_'.$no})){
$urpass = md5(${'pass_'.$no});
$db->query("UPDATE {$gtablepre}users SET motto='$urmotto',killmsg='$urkillmsg',lastword='$urlastword',icon='$uricon',gender='$urgender',password='$urpass',credits='$urcredits',credits2='$urcredits2' ,nicks='$urnicks' ,achievement='$urach' WHERE uid='$uid'");
$db->query("UPDATE {$gtablepre}users SET motto='$urmotto',killmsg='$urkillmsg',lastword='$urlastword',icon='$uricon',gender='$urgender',password='$urpass',credits='$urcredits',credits2='$urcredits2' WHERE uid='$uid'");
$cmd_info = "帐户 ".$urdata[$no]['username']." 的密码及其他信息已修改!";
}else{
$db->query("UPDATE {$gtablepre}users SET motto='$urmotto',killmsg='$urkillmsg',lastword='$urlastword',icon='$uricon',gender='$urgender',credits='$urcredits',credits2='$urcredits2' ,nicks='$urnicks' ,achievement='$urach' WHERE uid='$uid'");
$db->query("UPDATE {$gtablepre}users SET motto='$urmotto',killmsg='$urkillmsg',lastword='$urlastword',icon='$uricon',gender='$urgender',credits='$urcredits',credits2='$urcredits2' WHERE uid='$uid'");
$cmd_info = "帐户 ".$urdata[$no]['username']." 的信息已修改!";
}
}
......
......@@ -11,6 +11,7 @@ if(version_compare(PHP_VERSION, '4.3.0', '<')) {
}
require GAME_ROOT.'./include/global.func.php';
require GAME_ROOT.'./include/system.func.php';
require GAME_ROOT.'./include/user.func.php';
error_reporting(E_ALL);
set_error_handler('gameerrorhandler');
$magic_quotes_gpc = false;
......@@ -49,6 +50,7 @@ require GAME_ROOT.'./include/resources.func.php';
require GAME_ROOT.'./include/roommng.func.php';
require GAME_ROOT.'./include/game/revclubskills.func.php';
require GAME_ROOT.'./include/game/dice.func.php';
require GAME_ROOT.'./include/game/titles.func.php';
require config('resources',$gamecfg);
require config('gamecfg',$gamecfg);
require config('combatcfg',$gamecfg);
......@@ -56,6 +58,7 @@ require config('clubskills',$gamecfg);
require config('dialogue',$gamecfg);
require config('audio',$gamecfg);
require config('tooltip',$gamecfg);
require config('titles',$gamecfg);
$gtablepre = $tablepre;
......@@ -73,11 +76,8 @@ while($roominfo = $db->fetch_array($result))
$roomlist[$roominfo['groomid']] = $roominfo;
}
if($cuser)
{
$tr = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
$udata = $db->fetch_array($tr);
}
if($cuser) $udata = fetch_userdata_by_username($cuser);
$groomid = isset($udata['roomid']) ? $udata['roomid'] : 0;
if(!empty($groomid))
......
<?php
@ob_end_clean();
header('Content-Type: text/HTML; charset=utf-8'); // 以事件流的形式告知浏览器进行显示
header('Cache-Control: no-cache'); // 告知浏览器不进行缓存
header('X-Accel-Buffering: no'); // 关闭加速缓冲
@ini_set('implicit_flush',1);
ob_implicit_flush(1);
set_time_limit(0);
@ini_set('zlib.output_compression',0);
function achrev_update()
{
global $db,$gtablepre,$exit;
$result = $db->query("SELECT * FROM {$gtablepre}users");
while($ur = $db->fetch_array($result))
{
$udatas[] = $ur;
}
$alist = get_achlist();
$nums = 0;
foreach($udatas as $ukey => $udata)
{
# 存在旧成就数据,且新成就数据为空时,将旧字段数据迁移至新字段内
if(!empty($udata['achievement']) && empty($udata['achrev']))
{
include_once GAME_ROOT.'./include/game/achievement.func.php';
$n = $udata['username'];
$new_ach = Array(); $cpl = Array(); $prc = Array();
foreach($alist as $i => $iarr)
{
if($i <= 57)
{
$cpl[$i]=check_achievement($i,$n);
$prc[$i]=fetch_achievement($i,$n);
//新成就储存结构内,只会保存有进度的成就
if(!empty($cpl[$i]) || !empty($prc[$i]))
{
// 到达999阶段的成就 替换为配置中预设的达成等级
if($cpl[$i] == 999)
{
if($i == 16 || $i == 17 || $i == 18 || $i == 19)
{
//特判:四个结局成就阶段会变更为1...就这样了!
$cpl[$i] = 1;
}
else
{
$cpl[$i] = $iarr['lvl'] ?: count($iarr['name']);
}
}
$new_ach[$i]['l'] = $cpl[$i] ?: 0;
$new_ach[$i]['v'] = $prc[$i] ?: 0;
}
}
}
$new_ach = json_encode($new_ach);
$db->query("UPDATE {$gtablepre}users SET achievement='',achrev='$new_ach' WHERE username='".$udata['username']."'" );
echo "更新了用户 {$udata['username']} 的成就状态<br>";
$nums++;
unset($cpl); unset($prc);
unset($alist); unset($new_ach); unset($n);
}
elseif(!empty($udata['achievement']))
{
$db->query("UPDATE {$gtablepre}users SET achievement='' WHERE username='".$udata['username']."'" );
$nums++;
echo "删除了用户 {$udata['username']} 的旧成就数据<br>";
}
unset($udatas[$ukey]);
}
if(!$nums) echo "没有需要迁移的成就数据。<br>";
else echo "<br>累计更新了{$nums}位用户的成就数据。<br>";
echo $exit;
return;
}
function nicksrev_update()
{
global $db,$gtablepre,$gamecfg,$exit,$titles_list;
$result = $db->query("SELECT * FROM {$gtablepre}users");
while($ur = $db->fetch_array($result))
{
$udatas[] = $ur;
unset($ur);
}
$tlist = $titles_list;
$nums = 0;
foreach($udatas as $ukey => $udata)
{
# 更新旧头衔数据
if(empty($udata['nicksrev']) || !is_numeric($udata['nick']))
{
# 先更新当前头衔
$nkey = !empty($udata['nick']) && !is_numeric($udata['nick']) ? array_search($udata['nick'],$tlist) : 0;
$db->query("UPDATE {$gtablepre}users SET nick='$nkey' WHERE username='{$udata['username']}'" );
# 然后更新头衔列表
$nicks = explode("/",$udata['nicks']);
foreach($nicks as $nick)
{
$nkey = array_search($nick,$tlist);
titles_get_new($udata,$nkey);
unset($nkey);
}
$db->query("UPDATE {$gtablepre}users SET nicksrev='{$udata['nicksrev']}' WHERE username='{$udata['username']}'" );
unset($nicks);
echo "更新了用户 {$udata['username']} 的头衔数据<br>";
$nums++;
}
/*elseif(!empty($udata['nicks']))
{
$db->query("UPDATE {$gtablepre}users SET nicks='' WHERE username='".$udata['username']."'" );
$nums++;
echo "删除了用户 {$udata['username']} 的旧头衔数据<br>";
}*/
unset($udatas[$ukey]);
}
if(!$nums) echo "没有需要迁移的头衔数据。<br>";
else echo "<br>累计更新了{$nums}位用户的头衔数据。<br>";
echo $exit;
return;
}
?>
<?php
define('CURSCRIPT', 'sp_ilist');
require './include/common.inc.php';
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
if(!$db->num_rows($result)) { gexit($_ERROR['login_check'],__file__,__line__); }
$udata = $db->fetch_array($result);
if($udata['password'] != $cpass) { gexit($_ERROR['wrong_pw'], __file__, __line__); }
elseif(($udata['groupid'] <= 1)&&($cuser!==$gamefounder)) { gexit($_ERROR['no_admin'], __file__, __line__); }
//初始化道具名词库
get_itm_namelist();
function get_itm_namelist()
function print_itm_namelist()
{
global $checkstr,$gamecfg;
global $checkstr,$gamecfg,$exit;
$in_file = config('itmlist',$gamecfg);
if(!file_exists($in_file))
{
......@@ -195,11 +181,11 @@ function get_itm_namelist()
$cont .= '$item_namelist = ' . var_export($iarr,1).";\r\n?>";
writeover($in_file, $cont);
chmod($in_file,0777);
echo "成功生成了道具名列表。<br>";
echo "成功生成了道具名列表。<br>".$exit;
}
else
{
echo "道具名列表已存在,如需要重新生成,请删除{$in_file}后再次打开本页面。<br>";
echo "道具名列表已存在,如需要重新生成,请删除{$in_file}后再次打开本页面。<br>".$exit;
}
}
......
<?php
function print_titles_list()
{
global $checkstr,$exit;
# 将旧成就数据格式转为新格式
require config('achievement',1);
$t_file = config('titles',$gamecfg);
if(!file_exists($t_file))
{
$tarr = Array();
foreach($ach_list as $akey => $alist)
{
if(!empty($alist['title']))
{
foreach($alist['title'] as $at)
{
if(!in_array($at,$tarr)) $tarr[] = $at;
}
}
}
$cont = '';
$cont = str_replace('?>','',str_replace('<?','<?php',$checkstr));
$cont .= '$titles = ' . var_export($tarr,1).";\r\n?>";
writeover($t_file, $cont);
chmod($t_file,0777);
echo "成功生成了头衔列表。<br>".$exit;
}
else
{
echo "头衔名列表已存在,如需要重新生成,请删除{$t_file}后再次打开本页面。<br>".$exit;
}
}
?>
This diff is collapsed.
......@@ -272,8 +272,8 @@ function senditem(){
$log .= "你将<span class=\"yellow\">{$edata['itm'.$i]}</span>送给了<span class=\"yellow\">$w_name</span>。<br>";
$w_log = "<span class=\"yellow\">$name</span>将<span class=\"yellow\">{$edata['itm'.$i]}</span>送给了你。";
if(!$w_type){logsave($w_pid,$now,$w_log,'t');}
include_once GAME_ROOT.'./include/game/titles.func.php';
addnews($now,'senditem',get_title_desc($nick).' '.$name,$w_name,$itm);
addnews($now,'senditem',titles_get_desc($nick).' '.$name,$w_name,$itm);
//w_save($w_pid);
player_save($edata);
$itm = $itmk = $itmsk = '';
......
......@@ -48,7 +48,7 @@
{$console_tips[2]}<br><br>";
$gamevars['api'] --;
save_gameinfo();
addnews($now, 'csl_wthchange', get_title_desc($nick).' '.$name, $weather);
addnews($now, 'csl_wthchange', titles_get_desc($nick).' '.$name, $weather);
}
return;
}
......@@ -193,7 +193,7 @@
$hack = 1;
movehtm();
storyputchat($now,'hack');
addnews($now,'csl_hack',get_title_desc($nick).' '.$name);
addnews($now,'csl_hack',titles_get_desc($nick).' '.$name);
save_gameinfo();
}
else
......@@ -207,7 +207,7 @@
{
$log .= "提交指令后,你眼前的数据流开始闪烁。<br>与此同时,整处虚拟空间也开始发生变化……<br>{$console_tips[1]}已将下回禁区到来时间调整至5秒后</span><br>{$console_tips[2]}<br><br>";
$areatime = $now+5;
addnews($now,'csl_addarea',get_title_desc($nick).' '.$name);
addnews($now,'csl_addarea',titles_get_desc($nick).' '.$name);
areawarn();
save_gameinfo();
}
......
......@@ -39,7 +39,7 @@ function diceroll($dice){
$nikstatusa = $nikstatuse = 0;
}
if($nick =="奇迹的篝火"){
if($nick == 69){
$log .= "你本次骰子的检定结果为:<br><span class=\"red\">$result</span>\<span class=\"yellow\">$dice</span>!<br>";
}
//$log .= "【DEBUG】你本次骰子的检定结果为:<br><span class=\"red\">$result</span>\<span class=\"yellow\">$dice</span>!<br>";
......
......@@ -4,7 +4,7 @@ if (! defined ( 'IN_GAME' )) {
exit ( 'Access Denied' );
}
include_once GAME_ROOT.'./include/game/titles.func.php';
include_once GAME_ROOT.'./include/game/clubslct.func.php';
function itemuse($itmn,&$data=NULL) {
......@@ -23,7 +23,7 @@ function itemuse($itmn,&$data=NULL) {
}
extract($data,EXTR_REFS);
$nickinfo = get_title_desc($nick);
$nickinfo = titles_get_desc($nick);
if (($itmn < 1 || $itmn > 6) && $itmn != 0 ){
$log .= '此道具不存在,请重新选择。';
......@@ -868,6 +868,10 @@ function itemuse($itmn,&$data=NULL) {
} elseif(strpos ( $itmk, 'p' ) === 0){
//你们这帮乱用itmk的都乖乖自觉归类!itmk空间也是有限的!
$log.="你打开了<span class=\"yellow\">$itm</span>。<br>";
$itms--;
if($itms <= 0) destory_single_item($data,$itmn,1);
if(strpos( $itmk, 'ps' ) === 0){//银色盒子
include_once config('randomitem',$gamecfg);
//1st case of the new diceroll system.
......@@ -899,7 +903,7 @@ function itemuse($itmn,&$data=NULL) {
}
}elseif(strpos( $itmk, 'p0' ) === 0){//新福袋·VOL1
// 用$clbpara['opened_pack']记录打开福袋的名称,只要有这个名称,就搞事!
if($clbpara['opened_pack']){
if(!empty($clbpara['opened_pack'])){
$log.="似乎你本轮已经打开过福袋,因此不能再打开更多的福袋!<br>";
$db->query("INSERT INTO {$tablepre}shopitem (kind,num,price,area,item,itmk,itme,itms,itmsk) VALUES ('17','1','20','0','$itm','$itmk','$itme','$itms','$itmsk')");
$log.="<span class=\"yellow\">$itm</span>从你的手中飞出,向商店的方向飞去。<br>";
......@@ -961,16 +965,14 @@ function itemuse($itmn,&$data=NULL) {
//global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode;
$itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk;
addnews($now,'present',$name,$itm,$in);
$itms--;
if ($itms <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget($data);
} elseif(strpos ( $itmk, 'ygo' ) === 0){
$log.="你打开了<span class=\"yellow\">$itm</span>。<br>";
$itms--;
if($itms <= 0) destory_single_item($data,$itmn,1);
$file1 = config('box',$gamecfg);
$plist1 = openfile($file1);
$rand1 = rand(0,count($plist1)-1);
......@@ -978,23 +980,14 @@ function itemuse($itmn,&$data=NULL) {
//global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode;
$itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk;
addnews($now,'present',$nickinfo.' '.$name,$itm,$in);
/*$itms1--;
if ($itms1 <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}*/
// ?????
$itms--;
if ($itms <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget($data);
} elseif(strpos ( $itmk, 'fy' ) === 0){
$log.="你打开了<span class=\"yellow\">$itm</span>。<br>";
$itms--;
if($itms <= 0) destory_single_item($data,$itmn,1);
$file1 = config('fy',$gamecfg);
$plist1 = openfile($file1);
$rand1 = rand(0,count($plist1)-1);
......@@ -1002,18 +995,7 @@ function itemuse($itmn,&$data=NULL) {
//global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$mode;
$itm0 = $in;$itmk0=$ik;$itme0=$ie;$itms0=$is;$itmsk0=$isk;
addnews($now,'present',$nickinfo.' '.$name,$itm,$in);
/*$itms1--;
if ($itms1 <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}*/
$itms--;
if ($itms <= 0) {
$log .= "<span class=\"red\">$itm</span>用光了。<br>";
$itm = $itmk = $itmsk = '';
$itme = $itms = 0;
}
include_once GAME_ROOT.'./include/game/itemmain.func.php';
itemget($data);
}elseif ($itmk=='U') {
......
......@@ -3,7 +3,7 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
include_once GAME_ROOT.'./include/game/titles.func.php';
function use_func_item($usemode,$item)
{
......@@ -64,7 +64,7 @@ function wthchange($itm,$itmsk,$wlog=1){
global $now,$log,$weather,$wthinfo,$name,$nick,$clbpara;
$weathertd = $weather;
if($weather >= 14 && $weather <= 18){
addnews ( $now, 'wthfail', get_title_desc($nick).' '.$name, $weather, $itm );
addnews ( $now, 'wthfail', titles_get_desc($nick).' '.$name, $weather, $itm );
$log .= "你使用了{$itm}。<br /><span class=\"red\">但是天气并未发生任何变化!</span><br />";
}else{
if($itmsk==99){$weather = rand ( 0, 13 );}//随机全天气
......@@ -102,7 +102,7 @@ function wthchange($itm,$itmsk,$wlog=1){
} else {
include_once GAME_ROOT . './include/system.func.php';
save_gameinfo ();
addnews ( $now, 'wthchange', get_title_desc($nick).' '.$name, $weather, $itm );
addnews ( $now, 'wthchange', titles_get_desc($nick).' '.$name, $weather, $itm );
if($wlog) $log .= "你使用了<span class=\"yellow\">{$itm}</span>。<br />天气突然转变成了<span class=\"red\">$wthinfo[$weather]</span>!<br />";
}
$clbpara['achvars']['wthchange'] += 1;
......@@ -139,7 +139,7 @@ function hack($itmn = 0) {
$log .= '入侵禁区控制系统成功了!全部禁区都被解除了!<br>';
//include_once GAME_ROOT.'./include/system.func.php';
//movehtm();
addnews($now,'hack',get_title_desc($nick).' '.$name);
addnews($now,'hack',titles_get_desc($nick).' '.$name);
storyputchat($now,'hack');
save_gameinfo();
} else {
......@@ -517,7 +517,7 @@ function qianghua($itmn = 0) {
}else{$flag = false;}
}
}
addnews ( $now, 'newwep2',get_title_desc($nick).' '.$name, $baoshi, $o_itm );
addnews ( $now, 'newwep2',titles_get_desc($nick).' '.$name, $baoshi, $o_itm );
if ($flag){
$log .= "<span class=\"yellow\">『一道神圣的闪光照耀在你的眼睛上,当你恢复视力时,发现你的装备闪耀着彩虹般的光芒』</span><br>";
......
......@@ -12,7 +12,7 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
include_once GAME_ROOT.'./include/game/titles.func.php';
# 计算发现陷阱后的“触发率”
function calc_real_trap_obbs($pa,$trpnum)
......@@ -214,7 +214,7 @@ function trap(&$data=NULL){
if($playerflag)
{
addnews($now,'trap',get_title_desc($nick).' '.$name,$trname,$itm0);
addnews($now,'trap',titles_get_desc($nick).' '.$name,$trname,$itm0);
}
$log .= "糟糕,你触发了{$trperfix}陷阱<span class=\"yellow\">$itm0</span>!受到<span class=\"dmg\">$damage</span>点伤害!<br>";
......@@ -295,7 +295,7 @@ function trap(&$data=NULL){
# logsave
if($playerflag)
{
addnews($now,'trapdef',get_title_desc($nick).' '.$name,$trname,$itm0);
addnews($now,'trapdef',titles_get_desc($nick).' '.$name,$trname,$itm0);
if(!$selflag)
{
$w_log = "<span class=\"yellow\">{$name}触发了你设置的陷阱{$itm0},但是没有受到任何伤害!</span><br>";
......@@ -330,7 +330,7 @@ function trap(&$data=NULL){
# logsave
if($playerflag && !$selflag)
{
addnews($now,'trapmiss',get_title_desc($nick).' '.$name,$trname,$itm0);
addnews($now,'trapmiss',titles_get_desc($nick).' '.$name,$trname,$itm0);
$w_log = "<span class=\"yellow\">{$name}回避了你设置的陷阱{$itm0}!</span><br>";
logsave ( $itmsk0, $now, $w_log ,'b');
}
......@@ -808,7 +808,7 @@ function itemmix($mlist, $itemselect=-1) {
$isntove=true;
if ($isoverlay==true){
$log.="<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
foreach($mlist as $val){
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
......@@ -823,7 +823,7 @@ function itemmix($mlist, $itemselect=-1) {
if ($isoverlay==true){
if ((strlen(${'itmk'.$val})<4)||((substr(${'itmk'.$val},2,2)!=$ostar)&&($ostar!=0))){
$log.="<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
foreach($mlist as $val){
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
......@@ -836,7 +836,7 @@ function itemmix($mlist, $itemselect=-1) {
if ((strlen(${'itmk'.$val})>=4)&&(strpos(${'itmsk'.$val},'J')!==false)){
if (substr(${'itmk'.$val},2,2)!=$ostar){
$log.="<span class=\"red\">超量失败!所有素材消失!说明写这段代码的人还是一个有良知,明是非的中国人!</span><br>";
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
foreach($mlist as $val){
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
......@@ -850,7 +850,7 @@ function itemmix($mlist, $itemselect=-1) {
if ($issyncro==true){
if ((strlen(${'itmk'.$val})<4)&&($isntsyn==false)){
$log.="<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
foreach($mlist as $val){
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
......@@ -859,7 +859,7 @@ function itemmix($mlist, $itemselect=-1) {
}
if (strpos(${'itmsk'.$val},'s')!==false){
$log.="<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
foreach($mlist as $val){
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
......@@ -877,7 +877,7 @@ function itemmix($mlist, $itemselect=-1) {
continue;
}else{
$log.="<span class=\"red\">同调失败!所有素材消失!真是大快人心啊!</span><br>";
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
foreach($mlist as $val){
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
......@@ -917,7 +917,7 @@ function itemmix($mlist, $itemselect=-1) {
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
}
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
return;
}
if ($itemselect==-1)
......@@ -985,7 +985,7 @@ function itemmix($mlist, $itemselect=-1) {
${'itm'.$val} = ${'itmk'.$val} = ${'itmsk'.$val} = '';
${'itme'.$val} = ${'itms'.$val} = 0;
}
addnews($now,'mixfail',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'mixfail',titles_get_desc($nick).' '.$name,$itm0);
return;
}
if ($itemselect==-1)
......@@ -1059,7 +1059,7 @@ function itemmix($mlist, $itemselect=-1) {
list($itm0,$itmk0,$itme0,$itms0,$itmsk0) = $minfo['result'];
$log .= "<span class=\"yellow\">$itmstr</span>合成了<span class=\"yellow\">{$minfo['result'][0]}</span><br>";
//var_dump($minfo['result'][0]);
addnews($now,'itemmix',get_title_desc($nick).' '.$name,$itm0);
addnews($now,'itemmix',titles_get_desc($nick).' '.$name,$itm0);
//if($club == 5) { $wd += 2; }
//else { $wd+=1; }
$wd+=1;
......@@ -1463,6 +1463,8 @@ function change_subwep($s=2,&$data=NULL)
# 销毁指定装备
function destory_single_equip(&$pa,$equip)
{
global $log;
$equip_list = get_equip_list();
if(in_array($equip,$equip_list))
......@@ -1473,7 +1475,8 @@ function destory_single_equip(&$pa,$equip)
}
else
{
return "传入了非法的装备位名。";
$log .= "传入了非法的道具位名。";
return;
}
return;
}
......@@ -1483,7 +1486,7 @@ function destory_single_item(&$pa,$i,$costlog=0)
{
global $log;
$item_list = range(1,6);
$item_list = range(0,6);
if(in_array($i,$item_list))
{
......@@ -1496,7 +1499,8 @@ function destory_single_item(&$pa,$i,$costlog=0)
}
else
{
return "传入了非法的道具位名。";
$log .= "传入了非法的道具位名。";
return;
}
return;
}
......
......@@ -5,7 +5,7 @@ namespace revcombat
exit('Access Denied');
}
include_once GAME_ROOT.'./include/game/titles.func.php';
include_once GAME_ROOT.'./include/state.func.php';
include_once GAME_ROOT.'./include/game/revcombat_extra.func.php';
include_once GAME_ROOT.'./include/game/revcombat.calc.php';
......
<?php
//require_once './include/common.inc.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
function sing($sn){
global $log,$msg,$now,$pls,$name,$nick,$plsinfo,$hplsinfo,$ss,$mss,$noiseinfo,$arte;
......@@ -41,7 +41,7 @@
$db->query ( "UPDATE {$tablepre}players SET def=def+30 WHERE `pls` ={$pls} AND hp>0 AND type=0 ");
$def+=30;
addnoise($sn,'__',$now,$pls,0,0,$sn);
addnews($now,'song',get_title_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
addnews($now,'song',titles_get_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
return;
}elseif ($sn=="Crow Song"){
......@@ -57,7 +57,7 @@
$db->query ("UPDATE {$tablepre}players SET att=att+30 WHERE `pls`={$pls} AND hp>0 AND type=0");
$att+=30;
addnoise($sn,'__',$now,$pls,0,0,$sn);
addnews($now,'song',get_title_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
addnews($now,'song',titles_get_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
return;
......@@ -75,7 +75,7 @@
$mss=$ss;
$rp-=50;
addnoise($sn,'__',$now,$pls,0,0,$sn);
addnews($now,'song',get_title_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
addnews($now,'song',titles_get_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
return;
......@@ -94,7 +94,7 @@
$db->query ( "UPDATE {$tablepre}players SET weps=wepes=55 WHERE `pls` ={$pls} AND hp>0 AND type=0 ");
$db->query ( "UPDATE {$tablepre}players SET wepsk='z' WHERE `pls` ={$pls} AND hp>0 AND type=0 ");
addnoise($sn,'__',$now,$pls,0,0,$sn);
addnews($now,'song',get_title_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
addnews($now,'song',titles_get_desc($nick).' '.$name,$plsinfo[$pls],$noiseinfo[$sn]);
return;
}
......
......@@ -5,13 +5,14 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
include_once GAME_ROOT.'./include/game/titles.func.php';
function getword(){
global $db,$gtablepre,$tablepre,$name,$motto,$lastword,$killmsg;
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$name'");
$userinfo = $db->fetch_array($result);
global $udata;
//$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$name'");
//$userinfo = $db->fetch_array($result);
$userinfo = $udata;
$motto = $userinfo['motto'];
$lastword = $userinfo['lastword'];
$killmsg = $userinfo['killmsg'];
......@@ -20,10 +21,10 @@ function getword(){
function chgword($nmotto,$nlastword,$nkillmsg) {
global $db,$gtablepre,$tablepre,$name,$log;
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$name'");
$userinfo = $db->fetch_array($result);
global $udata;
//$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$name'");
//$userinfo = $db->fetch_array($result);
$userinfo = $udata;
// foreach ( Array('<','>',';',',','\\\'','\\"') as $value ) {
// if(strpos($nmotto,$value)!==false){
// $nmotto = str_replace ( $value, '', $nmotto );
......@@ -323,8 +324,8 @@ function syncro($sb){
global $itm0,$itmk0,$itme0,$itms0,$itmsk0,$name,$nick;
list($n,$k,$e,$s,$sk,$r)=explode('_',$sb);
$itm0=$n;$itmk0=$k;$itme0=$e;$itms0=$s;$itmsk0=$sk;
if ($r>0) {addnews($now,'syncmix',get_title_desc($nick).' '.$name,$itm0);}
else {addnews($now,'overmix',get_title_desc($nick).' '.$name,$itm0);}
if ($r>0) {addnews($now,'syncmix',titles_get_desc($nick).' '.$name,$itm0);}
else {addnews($now,'overmix',titles_get_desc($nick).' '.$name,$itm0);}
//检查成就
include_once GAME_ROOT.'./include/game/achievement.func.php';
check_mixitem_achievement_rev($name,$itm0);
......
......@@ -5,7 +5,7 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
include_once GAME_ROOT.'./include/game/titles.func.php';
function teamcheck() {
global $log,$mode,$teamcmd,$sp,$team_sp,$teamj_sp,$teamID;
......@@ -76,7 +76,7 @@ function teammake($tID,$tPass,$tIcon) {
$teamIcon = $tIcon;
$sp -= $team_sp;
$log .= '你创建了队伍<span class="yellow">'.$teamID.'</span>。<br>';
addnews($now,'teammake',$teamID,get_title_desc($nick).' '.$name);
addnews($now,'teammake',$teamID,titles_get_desc($nick).' '.$name);
// global $gamedata,$chatinfo;
// $gamedata['innerHTML']['chattype'] = "<select name=\"chattype\" value=\"2\"><option value=\"0\" selected>$chatinfo[0]<option value=\"1\" >$chatinfo[1]</select>";
// $gamedata['value']['team'] = $teamID;
......@@ -137,7 +137,7 @@ function teamjoin($tID,$tPass) {
$teamIcon = $teaminfo['teamIcon'];
$sp -= $teamj_sp;
$log .= '你加入了队伍<span class="yellow">'.$teamID.'</span>。<br>';
addnews($now,'teamjoin',$teamID,get_title_desc($nick).' '.$name);
addnews($now,'teamjoin',$teamID,titles_get_desc($nick).' '.$name);
// global $gamedata,$chatinfo;
// $gamedata['innerHTML']['chattype'] = "<select name=\"chattype\" value=\"2\"><option value=\"0\" selected>$chatinfo[0]<option value=\"1\" >$chatinfo[1]</select>";
// $gamedata['value']['team'] = $teamID;
......@@ -156,7 +156,7 @@ function teamquit() {
if($teamID && $gamestate<40){
$log .= '你退出了队伍<span class="yellow">'.$teamID.'</span>。<br>';
addnews($now,'teamquit',$teamID,get_title_desc($nick).' '.$name);
addnews($now,'teamquit',$teamID,titles_get_desc($nick).' '.$name);
$teamID =$teamPass = '';
// global $gamedata,$chatinfo;
// $gamedata['innerHTML']['chattype'] = "<select name=\"chattype\" value=\"2\"><option value=\"0\" selected>$chatinfo[0]</select>";
......
......@@ -4,11 +4,11 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
//反正应该不会重复获得头衔……偷懒
//还是会重复的 反正没什么工作量
function get_title($t,$n){
global $gamecfg,$name,$db,$gtablepre;
function get_title($t,$n)
{
/*global $gamecfg,$name,$db,$gtablepre;
require config("gamecfg",$gamecfg);
$result = $db->query("SELECT nicks FROM {$gtablepre}users WHERE username = '$n'");
$k = $db->result($result, 0);
......@@ -17,14 +17,87 @@ function get_title($t,$n){
$d = "$n".','."$t\n";
writeover($cf,$d,'ab+');
$k=$k.'/'.$t;
}*/
global $db,$gtablepre,$titles_list;
# 使用旧函数获取头衔时,转为新格式
if(in_array($t,$titles_list))
{
$udata = fetch_userdata_by_username($n);
$tkey = array_search($t,$titles_list);
titles_get_new($udata,$tkey);
$db->query("UPDATE {$gtablepre}users SET nicksrev='{$udata['nicksrev']}' WHERE username='".$n."'" );
}
else
{
global $log;
$log .= "要获取的头衔{$t}不存在,请在\$titles_list内为其添加编号!<br>";
return;
}
}
function titles_get_new(&$udata,$tkey,$mode=0)
{
global $db,$gtablepre,$gamecfg;
include config("titles",$gamecfg);
$tkey = (int)$tkey;
if(empty($udata['nicksrev'])) $udata['nicksrev'] = Array('nicks' => Array(0));
$nicksrev = &$udata['nicksrev'];
$nicksrev = is_array($nicksrev) ? $nicksrev : json_decode($nicksrev,true);
# 要获得的头衔编号必须存在于头衔列表内
if(isset($titles_list[$tkey]) && !in_array($tkey,$nicksrev['nicks'])) $nicksrev['nicks'][] = $tkey;
$nicksrev = json_encode($nicksrev);
return;
}
function titles_get_desc($tkey,$mode=0)
{
global $db,$gtablepre,$gamecfg;
include config("titles",$gamecfg);
$tkey = (int)$tkey;
$n = $titles_list[$tkey];
if(isset($title_desc[$tkey]))
{
# 存在图片格式,直接返回;
if(isset($title_desc[$tkey]['img']))
{
$n_desc = "<img src=\" ".$title_desc[$tkey]['img']."\">";
return $n_desc;
}
else
{
$n_desc = "<span ";
}
# 存在样式,赋予一个样式:
if(isset($title_desc[$tkey]['class']))
{
$n_class = "class=\"{$title_desc[$tkey]['class']}\" ";
$n_desc .= $n_class;
}
# 存在tooltip,赋予一个tooltip:
if(isset($title_desc[$tkey]['title']))
{
$n_title = "tooltip=\"{$title_desc[$tkey]['title']}\" ";
$n_desc .= $n_title;
}
$n_desc .= ">".$n."</span>";
return $n_desc;
}
$db->query("UPDATE {$gtablepre}users SET nicks='$k' WHERE username='".$n."'" );
return $n;
}
//格式化头衔tooltip
function get_title_desc($n)
function get_titles_desc($n)
{
global $title_desc;
global $title_desc,$titles_list;
if(isset($title_desc[$n]))
{
......
......@@ -4,7 +4,7 @@ if(!defined('IN_GAME')) {
exit('Access Denied');
}
include_once GAME_ROOT.'./include/game/titles.func.php';
function nparse_news($start = 0, $range = 0 ){//$type = '') {
global $week,$nowep,$db,$tablepre,$lwinfo,$plsinfo,$hplsinfo,$wthinfo,$typeinfo,$exdmginf,$newslimit,$cskills;
......
......@@ -41,6 +41,13 @@ function roommng_verify_db_game_structure()
echo "向users表中添加了字段u_templateid<br>";
}
$result = $db->query("DESCRIBE {$gtablepre}users nicksrev");
if(!$db->num_rows($result))
{
$db->query("ALTER TABLE {$gtablepre}users ADD nicksrev text NOT NULL default '' AFTER nicks");
echo "向users表中添加了字段nicksrev<br>";
}
$result = $db->query("SHOW INDEX FROM {$gtablepre}game");
$gr = $db->fetch_array($result);
if($gr['Column_name'] != 'groomid')
......
......@@ -173,8 +173,8 @@
$db->query ( "INSERT INTO {$tablepre}chat (type,`time`,send,recv,msg) VALUES ('3','$now','$lwname','$dpls','$lastword')" );
//发送news
$kname = $pa['type'] ? $pa['name'] : get_title_desc($pa['nick']).' '.$pa['name'];
//$dname = $pd['type'] ? $pd['name'] : get_title_desc($pd['nick']).' '.$pd['name'];
$kname = $pa['type'] ? $pa['name'] : titles_get_desc($pa['nick']).' '.$pa['name'];
//$dname = $pd['type'] ? $pd['name'] : titles_get_desc($pd['nick']).' '.$pd['name'];
addnews ($now,'death'.$pd['state'],$dname,$dtype,$kname,$pa['wep_name'],$lastword );
return $lastword;
......@@ -192,7 +192,7 @@
$revival_flag = 0;
$dname = $pd['type'] ? $pd['name'] : get_title_desc($pd['nick']).' '.$pd['name'];
$dname = $pd['type'] ? $pd['name'] : titles_get_desc($pd['nick']).' '.$pd['name'];
#光玉雨天气下,提供者有概率复活
if (!$revival_flag && $weather == 18 && $gamevars['wth18pid'] == $pd['pid'])
......
......@@ -446,8 +446,8 @@ function duel($time = 0,$keyitm = ''){
$time = $time == 0 ? $now : $time;
$gamestate = 50;
save_gameinfo();
include_once GAME_ROOT.'./include/game/titles.func.php';
$nickinfo = get_title_desc($nick);
$nickinfo = titles_get_desc($nick);
addnews($time,'duelkey',$nickinfo.' '.$name,$keyitm);
addnews($time,'duel');
systemputchat($time,'duel');
......
......@@ -115,4 +115,29 @@ function get_utitlelist(){//称号
}
return $utlist;
}
# 通过username获取指定用户数据
function fetch_userdata_by_username($n)
{
global $db,$gtablepre;
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$n'");
if(!$db->num_rows($result)) return NULL;
$data = $db->fetch_array($result);
$data = format_userdata($data);
return $data;
}
# 格式化从数据库中获取到的用户数据
function format_userdata($data)
{
$data['achrev'] = get_clbpara($data['achrev']);
$data['nicksrev'] = get_clbpara($data['nicksrev']);
return $data;
}
# 将用户数据格式化后保存回数据库
?>
\ No newline at end of file
......@@ -25,9 +25,7 @@ if(!empty($roomact))
{
$rindex = Array();
if(!$cuser||!$cpass) {$rerror = 'no_login'; goto roommng_flag; }
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
if(!$db->num_rows($result)) {$rerror = 'login_check'; goto roommng_flag;}
$udata = $db->fetch_array($result);
if(!$udata) {$rerror = 'login_check'; goto roommng_flag;}
if($udata['password'] != $cpass) {$rerror = 'wrong_pw'; goto roommng_flag;}
if($udata['groupid'] <= 0) {$rerror = 'user_ban'; goto roommng_flag;}
......
......@@ -65,6 +65,7 @@ CREATE TABLE bra_users (
`daily` varchar(255) NOT NULL DEFAULT '',
`nick` text NOT NULL,
`nicks` text NOT NULL,
`nicksrev` text NOT NULL default '',
`validgames` smallint(5) unsigned NOT NULL DEFAULT '0',
`wingames` smallint(5) unsigned NOT NULL DEFAULT '0',
`gender` char(1) NOT NULL DEFAULT '0',
......
......@@ -37,7 +37,7 @@ if($mode == 'quit') {
exit();
}
include './include/user.func.php';
//include './include/user.func.php';
include './gamedata/banlist.list';
//require GAME_ROOT.'./include/db_'.$database.'.class.php';
//$db = new dbstuff;
......
......@@ -4,7 +4,7 @@ define('CURSCRIPT', 'rank');
require './include/common.inc.php';
require './include/game.func.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
$result = $db->query("SELECT COUNT(*) FROM {$gtablepre}users");
$count = $db->result($result,0);
......@@ -57,7 +57,7 @@ while($data = $db->fetch_array($result)){
//$data['honour'] = $data['honour'] ? init_honourwords($data['honour']) : '';
$data['number'] = $n;
$data['winrate'] = $data['wingames'] ? round($data['wingames']/$data['validgames']*100).'%' : '0%';
$data['nickinfo'] = !empty($data['nick']) ? get_title_desc($data['nick']) : '-';
$data['nickinfo'] = !empty($data['nick']) ? titles_get_desc($data['nick']) : titles_get_desc(0);
$rankdata[] = $data;
$n ++;
}
......
......@@ -4,7 +4,7 @@ define('CURSCRIPT', 'register');
require './include/common.inc.php';
include './include/user.func.php';
//include './include/user.func.php';
include './gamedata/banlist.list';
if(isset($cuser) && isset($cpass)){
......@@ -39,10 +39,11 @@ if(!isset($cmd)){
$groupid = 1;
$credits = 0;
$password = md5($npass);
$nick='参展者';
$nicks='参展者';
$result = $db->query("INSERT INTO {$gtablepre}users (username,password,groupid,ip,credits,gender,icon,motto,killmsg,lastword) VALUES ('$username', '$password', '$groupid', '$onlineip', '$credits', '$gender', '$icon', '$motto', '$killmsg', '$lastword')");
$db->query("UPDATE {$gtablepre}users SET nick='$nick', nicks='$nicks' WHERE username='".$username."'" );
$nick = 0;
$nicksrev = Array('nicks' => Array(0));
$nicksrev = json_encode($nicksrev);
$db->query("UPDATE {$gtablepre}users SET nick='$nick',nicksrev='$nicksrev' WHERE username='".$username."'" );
if($result){
$gamedata['innerHTML']['info'] = $_INFO['reg_success'];
$ustate = 'check';
......
......@@ -247,8 +247,8 @@
<td><input size="20" type="text" name="itme6" value="{$pc['itme6']}" maxlength="20"></td>
</tr>
<tr>
<td>成就</td>
<td><input size="20" type="text" name="achievement" value="{$pc['achievement']}" maxlength="500"></td>
<td></td>
<td></td>
<td>耐久</td>
<td><input size="20" type="text" name="arts" value="{$pc['arts']}" maxlength="20"></td>
<td>耐久</td>
......
......@@ -29,10 +29,10 @@
<th>分数2</th>
<th>性别</th>
<th>头像</th>
<th>社团</th>
<!--<th>社团</th>
<th>成就</th>
<th>成就(新)</th>
<th>称号表</th>
<th>称号表</th>-->
<th>口头禅</th>
<th>杀人留言</th>
<th>遗言</th>
......@@ -58,10 +58,10 @@
</select>
</td>
<td><input type="text" name="icon_$n" size="2" maxlength="2" value="$ur['icon']" disabled="true"></td>
<td>{$clubinfo[$ur['club']]}</td>
<!--<td>{$clubinfo[$ur['club']]}</td>
<td><input type="text" name="achievement_$n" size="20" maxlength="400" value="$ur['achievement']" disabled="true"></td>
<td><input type="text" name="achrev_$n" size="20" maxlength="400" value="$ur['achrev']" disabled="true"></td>
<td><input type="text" name="nicks_$n" size="20" maxlength="300" value="$ur['nicks']" disabled="true"></td>
<td><input type="text" name="nicks_$n" size="20" maxlength="300" value="$ur['nicks']" disabled="true"></td>-->
<td><input type="text" name="motto_$n" size="20" maxlength="60" value="$ur['motto']" disabled="true"></td>
<td><input type="text" name="killmsg_$n" size="20" maxlength="20" value="$ur['killmsg']" disabled="true"></td>
<td><input type="text" name="lastword_$n" size="20" maxlength="20" value="$ur['lastword']" disabled="true"></td>
......@@ -85,10 +85,10 @@
</select>
</td>
<td><input type="text" name="icon_$n" size="2" maxlength="2" value="$ur['icon']"></td>
<td>{$clubinfo[$ur['club']]}</td>
<!--<td>{$clubinfo[$ur['club']]}</td>
<td><input type="text" name="achievement_$n" size="20" maxlength="400" value="$ur['achievement']"></td>
<td><textarea name="achrev_$n" style="overflow:auto">$ur['achrev']</textarea></td>
<td><input type="text" name="nicks_$n" size="20" maxlength="300" value="$ur['nicks']"></td>
<td><input type="text" name="nicks_$n" size="20" maxlength="300" value="$ur['nicks']"></td>-->
<td><input type="text" name="motto_$n" size="20" maxlength="60" value="$ur['motto']"></td>
<td><input type="text" name="killmsg_$n" size="20" maxlength="60" value="$ur['killmsg']"></td>
<td><input type="text" name="lastword_$n" size="20" maxlength="60" value="$ur['lastword']"></td>
......@@ -104,7 +104,6 @@
<input type="submit" name="submit" value="封停选中玩家" onclick="$('urcmd').value='ban'">
<input type="submit" name="submit" value="解封选中玩家" onclick="$('urcmd').value='unban'">
<input type="submit" name="submit" value="删除选中玩家" onclick="$('urcmd').value='del'">
<!--<input type="submit" name="submit" value="更新选中玩家的成就结构" onclick="$('urcmd').value='checkach'">-->
</td>
</tr>
<!--{/if}-->
......
......@@ -11,7 +11,7 @@
<td>
<table border="0" width="720" cellspacing="0" cellpadding="0" valign="middle">
<tr>
<!--{eval $nickinfo = get_title_desc($nick);}-->
<!--{eval $nickinfo = titles_get_desc($nick);}-->
<td width="210" colspan="3" class="b1"><span>{$nickinfo} {$name}</span></td>
<td width="100" colspan="1" class="b1"><span>{$sexinfo[$gd]}{$sNo}号</span></td>
<td width="95" colspan="2" class="b1"><span>{lang weather}:$wthinfo[$weather]</span></td>
......
......@@ -3,10 +3,9 @@
<tr>
<td>{lang usertitle}</td>
<td>
<!--{eval $utlist = !empty($utlist) ? $utlist : Array(0 => '参展者');}-->
<select name="nick">
<!--{loop $utlist $key $val}-->
<option value="{$val}"<!--{if $udata['nick'] == $val}-->selected<!--{/if}-->>$val</option>
<!--{loop $nicksrev['nicks'] $val}-->
<option value="{$val}"<!--{if $udata['nick'] == $val}-->selected<!--{/if}-->>$titles_list[$val]</option>
<!--{/loop}-->
</select>
选择一个有趣的头衔,部分头衔存在特殊的入场效果。
......
......@@ -3,14 +3,11 @@
define('CURSCRIPT', 'user');
require './include/common.inc.php';
require './include/user.func.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
//require './include/user.func.php';
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
if(!$db->num_rows($result)) { gexit($_ERROR['login_check'],__file__,__line__); }
$udata = $db->fetch_array($result);
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
if(!$udata) { gexit($_ERROR['login_check'],__file__,__line__); }
if($udata['password'] != $cpass) { gexit($_ERROR['wrong_pw'], __file__, __line__); }
if($udata['groupid'] <= 0) { gexit($_ERROR['user_ban'], __file__, __line__); }
......@@ -105,7 +102,7 @@ if($mode == 'edit') {
} else {
//$ustate = 'edit';
extract($udata);
$nickinfo = get_title_desc($nick);
$nickinfo = titles_get_desc($nick);
$iconarray = get_iconlist($icon);
$select_icon = $icon;
//这里假定player表里有usertitle字段而且储存方式是这样蛋疼的。具体程序虚子你写。
......
......@@ -3,8 +3,8 @@
define('CURSCRIPT', 'user_profile');
require './include/common.inc.php';
require './include/user.func.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
//require './include/user.func.php';
$_REQUEST = gstrfilter($_REQUEST);
if (empty($_REQUEST["playerID"]))
......@@ -32,7 +32,7 @@ else
}
$iconarray = get_iconlist($icon);
$nickinfo = get_title_desc($nick);
$nickinfo = titles_get_desc($nick);
$select_icon = $icon;
$winning_rate=$validgames?round($wingames/$validgames*100)."%":'0%';
......
......@@ -3,16 +3,15 @@
define('CURSCRIPT', 'valid');
require './include/common.inc.php';
require './include/user.func.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
//require './include/user.func.php';
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
if($gamestate < 20) { gexit($_ERROR['no_start'],__file__,__line__); }
//if($gamestate >= 30) { gexit($_ERROR['valid_stop'],__file__,__line__); }
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
if(!$db->num_rows($result)) { gexit($_ERROR['login_check'],__file__,__line__); }
$udata = $db->fetch_array($result);
//$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
if(!$udata) { gexit($_ERROR['login_check'],__file__,__line__); }
//$udata = $db->fetch_array($result);
$wingames = $udata['wingames'];
if($udata['password'] != $cpass) { gexit($_ERROR['wrong_pw'], __file__, __line__); }
if($udata['groupid'] <= 0) { gexit($_ERROR['user_ban'], __file__, __line__); }
......@@ -105,7 +104,6 @@ if($mode == 'enter') {
$pose = 3;
$tactic = 2;
$icon = $icon ? $icon : rand(1,$iconlimit);
//$club = 0;
# 入场内定称号合法性检查
if($club && !in_array($club,$t1_list) && !in_array($club,$t2_list)) $club = 17;
......@@ -119,13 +117,6 @@ if($mode == 'enter') {
$arhe = $arae = $arfe = $arte = 0;
$arhs = $aras = $arfs = $arts = 0;
//获取已经完成的成就 已废弃
/*include_once GAME_ROOT.'./include/game/achievement.func.php';
$achievement = $udata['achievement'];
if (!valid_achievement($achievement)) {
$achievement=init_achievement($achievement);
$db->query("UPDATE {$gtablepre}users SET achievement='$achievement' WHERE username='".$name."'" ); //如果第一次游戏,初始化成就
}*/
for ($i=0; $i<=6; $i++){$itm[$i] = $itmk[$i] = $itmsk[$i] = ''; $itme[$i] = $itms[$i] = 0;}
$itm[1] = '面包'; $itmk[1] = 'HH'; $itme[1] = 120; $itms[1] = 15;
$itm[2] = '矿泉水'; $itmk[2] = 'HS'; $itme[2] = 140; $itms[2] = 15;
......@@ -140,8 +131,6 @@ if($mode == 'enter') {
}
$itmk[3] = 'HB'; $itme[3] = 70; $itms[3] = 15;
$itm[5] = 'GRAND OPENING 「开门大吉」'; $itmk[5] = 'p000'; $itme[5] = 1; $itms[5] = 1;
/*$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;*/
if ($wingames <=1){
$itm[6] = '银白盒子'; $itmk[6] = 'ps'; $itme[6] = 1; $itms[6] = 1; $itmsk[6] = '';
......@@ -163,58 +152,6 @@ if($mode == 'enter') {
list($itm[4],$itmk[4],$itme[4],$itms[4],$itmsk[4]) = explode(",",$stitemlist[$index]);
} while(!$itmk[4] || ($itmk[3] == $itmk[4]));
/*if(strpos($wepk,'WG') === 0){
$itm[3] = '手枪子弹'; $itmk[3] = 'GB'; $itme[3] = 1; $itms[3] = 12; $itmsk[3] = '';
}
include_once GAME_ROOT.'./include/game/clubslct.func.php';
getclub($name,$tc1,$tc2,$tc3);
if ($tc1==7 || $tc2==7 || $tc3==7)
{
if (rand(1,10)%2==1)
{
$itm[4] = '生命探测器'; $itmk[4] = 'ER'; $itme[4] = 3; $itms[4] = 1; $itmsk[4] = '';
}
else
{
$itm[4] = '电池'; $itmk[4] = 'BE'; $itme[4] = 2; $itms[4] = 1; $itmsk[4] = '';
}
}*/
// $itm[5] = '好人卡'; $itmk[5] = 'Y'; $itme[5] = 1; $itms[5] = 20; $itmsk[5] = '';
//$itm[5] = '特别赠礼'; $itmk[5] = 'p'; $itme[5] = 1; $itms[5] = 1; $itmsk[5] = '';
// $shenzhuang = rand(1,10);
// switch ($shenzhuang) {
// case 1:
// $itm[5] = '圭一少年的球棒'; $itmk[5] = 'WP'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'e';
// break;
// case 2:
// $itm[5] = '简称为UCW的三弦'; $itmk[5] = 'WK'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'p';
// break;
// case 3:
// $itm[5] = '燃素粒子火焰炮'; $itmk[5] = 'WG'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'u';
// break;
// case 4:
// $itm[5] = '水晶的超级球'; $itmk[5] = 'WC'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'ir';
// break;
// case 5:
// $itm[5] = '久违的KEY系催泪弹'; $itmk[5] = 'WD'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'd';
// break;
// case 6:
// $itm[5] = '梦想天生'; $itmk[5] = 'WF'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'd';
// break;
// case 7:
// $itm[5] = '这样的装备没问题么的铠甲'; $itmk[5] = 'DB'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'E';
// break;
// case 8:
// $itm[5] = '这样的装备没问题么的头盔'; $itmk[5] = 'DH'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'q';
// break;
// case 9:
// $itm[5] = '这样的装备没问题么的手套'; $itmk[5] = 'DA'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'U';
// break;
// case 10:
// $itm[5] = '这样的装备没问题么的靴子'; $itmk[5] = 'DF'; $itme[5] = 1800; $itms[5] = 100; $itmsk[5] = 'I';
// break;
// }
if ($name == 'Amarillo_NMC') {
$msp += 500;$mhp += 500;$hp += 500;$sp += 500;
$att += 200;$def += 200;
......@@ -264,7 +201,7 @@ if($mode == 'enter') {
$clbpara['noskip_dialogue'] = 'opening';
//$nick=$udata['nick'];
$nicks=$udata['nicks'];
/*$nicks=$udata['nicks'];
if (($nicks=='')||($nick=='')){
$nick='参展者';
$nicks='参展者';
......@@ -273,10 +210,19 @@ if($mode == 'enter') {
if (strpos($nicks,$nick)===false){
$nick='弱子';
}
}*/
$nicks = $udata['nicksrev']['nicks'];
if(empty($nicks) || empty($nick))
{
titles_get_new($udata,0);
$nick = 0;
$db->query("UPDATE {$gtablepre}users SET nick='$nick',nicksrev='{$udata['nicksrev']}' WHERE username='".$username."'" );
}
$nick = in_array($nick,$nicks) ? $nick : 120;
# 初始化头衔tooltip
$nickinfo = get_title_desc($nick);
$nickinfo = titles_get_desc($nick);
# 初始化头衔的入场效果
$nickarr = get_title_valid($nick);
......@@ -324,7 +270,7 @@ if($mode == 'enter') {
//$db->query("INSERT INTO {$tablepre}players (name,pass,type,endtime,validtime,gd,sNo,icon,club,hp,mhp,sp,msp,att,def,pls,lvl,`exp`,money,bid,inf,rage,pose,tactic,killnum,state,wp,wk,wg,wc,wd,wf,teamID,teamPass,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,wepsk,arbsk,arhsk,arask,arfsk,artsk,itmsk0,itmsk1,itmsk2,itmsk3,itmsk4,itmsk5,itmsk6,nick,nicks) VALUES ('$name','$pass','$type','$endtime','$validtime','$gd','$sNo','$icon','$club','$hp','$mhp','$sp','$msp','$att','$def','$pls','$lvl','$exp','$money','$bid','$inf','$rage','$pose','$tactic','$state','$killnum','$wp','$wk','$wg','$wc','$wd','$wf','$teamID','$teamPass','$wep','$wepk','$wepe','$weps','$arb','$arbk','$arbe','$arbs','$arh','$arhk','$arhe','$arhs','$ara','$arak','$arae','$aras','$arf','$arfk','$arfe','$arfs','$art','$artk','$arte','$arts','$itm[0]','$itmk[0]','$itme[0]','$itms[0]','$itm[1]','$itmk[1]','$itme[1]','$itms[1]','$itm[2]','$itmk[2]','$itme[2]','$itms[2]','$itm[3]','$itmk[3]','$itme[3]','$itms[3]','$itm[4]','$itmk[4]','$itme[4]','$itms[4]','$itm[5]','$itmk[5]','$itme[5]','$itms[5]','$itm[6]','$itmk[6]','$itme[6]','$itms[6]','$wepsk','$arbsk','$arhsk','$arask','$arfsk','$artsk','$itmsk[0]','$itmsk[1]','$itmsk[2]','$itmsk[3]','$itmsk[4]','$itmsk[5]','$itmsk[6]','$nick','$nicks')");
$db->query("UPDATE {$gtablepre}users SET lastgame='$gamenum' WHERE username='$name'");
global $nick;
if($udata['groupid'] >= 6 || $cuser == $gamefounder){
addnews($now,'newgm',$nickinfo.' '.$name,"{$sexinfo[$gd]}{$sNo}号",$ip,$nick);
}else{
......
<?php
define('CURSCRIPT', 'dbup');
require './include/common.inc.php';
if(!$cuser||!$cpass) { gexit($_ERROR['no_login'],__file__,__line__); }
$result = $db->query("SELECT * FROM {$gtablepre}users WHERE username='$cuser'");
if(!$db->num_rows($result)) { gexit($_ERROR['login_check'],__file__,__line__); }
$udata = $db->fetch_array($result);
if($udata['password'] != $cpass) { gexit($_ERROR['wrong_pw'], __file__, __line__); }
elseif(($udata['groupid'] <= 1)&&($cuser!==$gamefounder)) { gexit($_ERROR['no_admin'], __file__, __line__); }
$query = $db->query("SHOW TABLES LIKE '{$gtablepre}vnmixitem'", 'SILENT');
//print_r($query);
if(!$db->num_rows($query))
{
$sqldir = GAME_ROOT.'./gamedata/sql/';
$sql = file_get_contents("{$sqldir}vnworld.sql");
$sql = str_replace("\r", "\n", str_replace('bra_', ' '.$tablepre, $sql));
$db->queries($sql);
echo "Mysql Update Fish.<br>";
$vcdir = config('queue_vnmixitem',1);
if(file_exists($vcdir))
{
include $vcdir;
foreach($carr as $key => $arr)
{
$vr = Array();
$vr['class'] = $arr['class'] ?: 'item';
$vr['istatus'] = $arr['status'];
$vr['creator'] = $arr['name'];
for($i=0;$i<5;$i++)
{
$vr['stf'.$i] = $arr['stuff'][$i] ?: '';
}
$vr['itm'] = $arr['result'][0] ?: '';
$vr['itmk'] = $arr['result'][1] ?: '';
$vr['itme'] = $arr['result'][2] ?: '';
$vr['itms'] = $arr['result'][3] ?: '';
$vr['itmsk'] = $arr['result'][4] ? implode('',$arr['result'][4]) : '';
$db->array_insert("{$gtablepre}vnmixitem",$vr);
}
echo "Old data clear.<br>";
}
}
else
{
echo "No Update.<br>";
}
?>
\ No newline at end of file
......@@ -3,7 +3,7 @@
define('CURSCRIPT', 'winner');
require './include/common.inc.php';
include_once GAME_ROOT.'./include/game/titles.func.php';
if(!isset($command)){$command = 'ref';}
if($command == 'info') {
......@@ -41,7 +41,7 @@ if($command == 'info') {
else
{
$wdata['iconImg'] = $wdata['gd'] == 'f' ? 'f_'.$wdata['icon'].'.gif' : 'm_'.$wdata['icon'].'.gif';
$wdata['nickinfo'] = !empty($wdata['nick']) ? get_title_desc($wdata['nick']) : '';
$wdata['nickinfo'] = !empty($wdata['nick']) ? titles_get_desc($wdata['nick']) : '';
}
$winfo[$wdata['gid']] = $wdata;
}
......
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