//////////////////////////////////////////////////
// Ź¤ËÇä¤Ã¤Æ¤ë¤â¤Î¥Ç¡¼¥¿
function ShopList() {
return array(//ŹÈÎÇä¥ê¥¹¥È
1002,1003,1004,1100,1101,1200,
1700,1701,1702,1703,1800,1801,2000,2001,2300,
3000,3001,3002,3100,3101,5000,5001,5002,5003,
5100,5101,5102,5103,5200,5201,5202,5203,
5500,5501,5850,
7000,7001,7002,7500,
7510,7511,7512,7513,7520,7521,// ¥ê¥»¥Ã¥È·Ï¥¢¥¤¥Æ¥à
8000,8009,8015,
);
}
//////////////////////////////////////////////////
// ¥ª¡¼¥¯¥·¥ç¥ó¤Ë½ÐÉʲÄǽ¤Ê¥¢¥¤¥Æ¥à¤Î¼ïÎà
function CanExhibitType() {
return array(
"Sword" => "1",
"TwoHandSword" => "1",
"Dagger" => "1",
"TwinEdge" => "1",
"Spear" => "1",
"Pike" => "1",
"Axe" => "1",
"Hatchet" => "1",
"Wand" => "1",
"Staff" => "1",
"Mace" => "1",
"Hammer" => "1",
"Bow" => "1",
"CrossBow" => "1",
"DualGun" => "1",
"GunKnife" => "1",
"Whip" => "1",
"Instrument" => "1",
"Card" => "1",
"Dart" => "1",
"Dice" => "1",
"Shield" => "1",
"MainGauche" => "1",
"Book" => "1",
"Gauntlet" => "1",
"Bracelet" => "1",
"Armor" => "1",
"Cloth" => "1",
"Robe" => "1",
"Item" => "1",
"Portion" => "1",
"SkillBook" => "1",
"Material" => "1",
);
}
//////////////////////////////////////////////////
// ÀºÏ£²Äǽ¤Ê¥¢¥¤¥Æ¥à¤Î¼ïÎà
function CanRefineType() {
return array(
"Sword","TwoHandSword","MasterSword","Dagger","TwinEdge","Spear","Pike","Axe","Hatchet",
"Wand","Staff","Mace","Hammer","Bow","CrossBow","DualGun","GunKnife",
"Whip","Instrument","Card","Dart","Dice",
"Shield","MainGauche","Book","Gauntlet","Bracelet",
"Armor","Cloth","Robe",
);
}
//////////////////////////////////////////////////
// ´ü¸ÂÀڤ쥢¥«¥¦¥ó¥È¤Î°ìÀƺï½ü
function DeleteAbandonAccount() {
$list = glob(USER."*");
$now = time();
// ¥æ¡¼¥¶¡¼°ìÍ÷¤ò¼èÆÀ¤¹¤ë
foreach($list as $file) {
if(!is_dir($file)) continue;
$UserID = substr($file,strrpos($file,"/")+1);
$user = new user($UserID,true);
// ¾Ã¤µ¤ì¤ë¥æ¡¼¥¶¡¼
if($user->IsAbandoned())
{
// ¥é¥ó¥¥ó¥°¤òÆɤà
if(!isset($Ranking))
{
include_once(CLASS_RANKING);
$Ranking = new Ranking();
$RankChange = false;// ¥é¥ó¥¥ó¥°¥Ç¡¼¥¿¤¬Êѹ¹¤µ¤ì¤¿¤«
}
// ¥é¥ó¥¥ó¥°¤«¤é¾Ã¤¹
if( $Ranking->DeleteRank($UserID) ) {
$RankChange = true;// Êѹ¹¤µ¤ì¤¿
}
RecordManage(date("Y M d G:i:s",$now).": user ".$user->id." deleted.");
$user->DeleteUser(false);//¥é¥ó¥¥ó¥°¤«¤é¤Ï¾Ã¤µ¤Ê¤¤¤è¤¦¤Ëfalse
}
// ¾Ã¤µ¤ì¤Ê¤¤¥æ¡¼¥¶¡¼
else
{
$user->fpCloseAll();
unset($user);
}
}
// °ìÄ̤ê¥æ¡¼¥¶¥Á¥§¥Ã¥¯¤¬½ª¤ï¤Ã¤¿¤Î¤Ç¥é¥ó¥¥ó¥°¤ò¤É¤¦¤¹¤ë¤«
if($RankChange === true)
$Ranking->SaveRanking();
else if($RankChange === false)
$Ranking->fpclose();
//print("".print_r($list,1)."
");
}
//////////////////////////////////////////////////
// Äê´üŪ¤Ë´ÉÍý¤¹¤ë²¿¤«
function RegularControl($value=null) {
/*
¥µ¡¼¥Ð¤¬½Å(º®¤ß)¤½¤¦¤Ê»þ´ÖÂӤϸå²ó¤·¤Ë¤¹¤ë¡£
PM 7:00 - AM 2:00 ¤Ï½èÍý¤·¤Ê¤¤¡£
¢¨»þ¹ï¤Ï or ¤Ê¤Î¤ËÃí°Õ¡ª
*/
if(19 <= date("H") || date("H") <= 1)
return false;
$now = time();
$fp = FileLock(CTRL_TIME_FILE,true);
if(!$fp)
return false;
//$ctrltime = file_get_contents(CTRL_TIME_FILE);
$ctrltime = trim(fgets($fp, 1024));
// ¼þ´ü¤¬¤Þ¤À¤Ê¤é½ªÎ»
if($now < $ctrltime)
{
fclose($fp);
unset($fp);
return false;
}
// ´ÉÍý¤Î½èÍý
RecordManage(date("Y M d G:i:s",$now).": auto regular control by {$value}.");
DeleteAbandonAccount();//¤½¤Î1 Êü´þ¥æ¡¼¥¶¤ÎÁݽü
// Äê´ü´ÉÍý¤¬½ª¤ï¤Ã¤¿¤é¼¡¤Î´ÉÍý»þ¹ï¤ò½ñ¤¹þ¤ó¤Ç½ªÎ»¤¹¤ë¡£
WriteFileFP($fp,$now + CONTROL_PERIOD);
fclose($fp);
unset($fp);
}
//////////////////////////////////////////////////
// $id ¤¬²áµîÅÐÏ¿¤µ¤ì¤¿¤«¤É¤¦¤«
function is_registered($id) {
if($registered = @file(REGISTER)):
if(array_search($id."\n",$registered)!==false && !ereg("[\.\/]+",$id) )//²þ¹Ôµ¹æɬ¿Ü
return true;
else
return false;
endif;
}
//////////////////////////////////////////////////
// ¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¤·¤¿¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
function FileLock($file,$noExit=false) {
if(!file_exists($file))
return false;
$fp = @fopen($file,"r+") or die("Error!");
if(!$fp)
return false;
$i=0;
do{
if(flock($fp, LOCK_EX | LOCK_NB)) {
stream_set_write_buffer($fp, 0);
return $fp;
} else {
usleep(10000);//0.01ÉÃ
$i++;
}
}while($i<5);
if($noExit) {
return false;
} else {
ob_clean();
exit("file lock error.");
}
//flock($fp, LOCK_EX);//ÇÓ¾
//flock($fp, LOCK_SH);//¶¦Í¥í¥Ã¥¯
//flock($fp,LOCK_EX);
return $fp;
}
//////////////////////////////////////////////////
// ¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤à(°ú¿ô:¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿)
function WriteFileFP($fp,$text,$check=false) {
if(!$check && !trim($text))//$text¤¬¶õÍó¤Ê¤é½ª¤ï¤ë
return false;
/*if(file_exists($file)):
ftruncate()
else:
$fp = fopen($file,"w+");*/
ftruncate($fp,0);
rewind($fp);
//$fp = fopen($file,"w+");
//flock($fp,LOCK_EX);
fputs($fp,$text);
//print("
"."
".$text);
}
//////////////////////////////////////////////////
// ¥Õ¥¡¥¤¥ë¤Ë½ñ¤¹þ¤à
function WriteFile($file,$text,$check=false) {
if(!$check && !$text)//$text¤¬¶õÍó¤Ê¤é½ª¤ï¤ë
return false;
/*if(file_exists($file)):
ftruncate()
else:
$fp = fopen($file,"w+");*/
$fp = fopen($file,"w+");
flock($fp,LOCK_EX);
fputs($fp,$text);
}
//////////////////////////////////////////////////
// ¥Õ¥¡¥¤¥ë¤òÆɤó¤ÇÇÛÎó¤Ë³ÊǼ(°ú¿ô:¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿)
function ParseFileFP($fp) {
if(!$fp) return false;
while( !feof($fp) ) {
$str = fgets($fp);
$str = trim($str);
if(!$str) continue;
$pos = strpos($str,"=");
if($pos === false)
continue;
$key = substr($str,0,$pos);
$val = substr($str,++$pos);
$data[$key] = trim($val);
}
//print("");
//print_r($data);
//print("
");
if($data)
return $data;
else
return false;
}
//////////////////////////////////////////////////
// ¥Õ¥¡¥¤¥ë¤òÆɤó¤ÇÇÛÎó¤Ë³ÊǼ
function ParseFile($file) {
$fp = fopen($file,"r+");
if(!$fp) return false;
flock($fp, LOCK_EX | LOCK_NB);
while( !feof($fp) ) {
$str = fgets($fp);
$str = trim($str);
if(!$str) continue;
$pos = strpos($str,"=");
if($pos === false)
continue;
$key = substr($str,0,$pos);
$val = substr($str,++$pos);
$data[$key] = trim($val);
}
//print("");
//print_r($data);
//print("
");
if($data)
return $data;
else
return false;
}
//////////////////////////////////////////////////
//
function UserAmount() {
static $amount;
if($amount) {
return $amount;
} else {
$amount = count(glob(USER."*"));
return $amount;
}
}
//////////////////////////////////////////////////
//
function JudgeList(){
// ¼«Æ°Æɤ߹þ¤ß(for¤Ç¥ë¡¼¥×¤µ¤»¤Æ¤ë¤«¤é̵Â̤ʽèÍý)
if(JUDGE_LIST_AUTO_LOAD) {
for($i=1000; $i<2500; $i++) {
if( LoadJudgeData($i) !== false)
$list[]=$i;
}
return $list;
// ¼êÆ°(Äɲä·¤¿È½ÃǤϼ«Ê¬¤Ç½ñ¤Â¤»)
} else {
return array(
1000, 1001,
1099, //HP
1100, 1101, 1105, 1106, 1110,
1111, 1121, 1125, 1126, 1130,
1135,
1199, //SP
1200, 1201, 1205, 1206, 1210,
1211, 1221, 1225, 1226,
1299, //¥¹¥Æ¡¼¥¿¥¹
1300, 1301, 1310, 1311, 1320,
1321, 1330, 1331, 1340, 1341,
1350, 1351, 1355, 1360, 1361,
1365, 1370, 1371, 1375, 1380,
1381, 1385,
1399, //À¸»à(Ì£Êý)
1400, 1401, 1405, 1406, 1410,
1415, 1416, 1420, 1421,
1449, //À¸»à(Ũ)
1450, 1451, 1455, 1456,
1499, //¥Á¥ã¡¼¥¸+±Ó¾§
1500, 1501, 1505, 1506, 1510,
1511, 1520, 1521, 1525, 1526,
3545, 3546, 3547, 3548,
3550, 3551, 3555, 3556,
1549, //¥Á¥ã¡¼¥¸+±Ó¾§(Ũ)
1550, 1551, 1555, 1556, 1560,
1561, 1563, 1564, 1565, 1566,
1599, //ÆÇ
1600, 1610, 1611, 1612, 1613,
1620, 1630, 1631, 1632, 1633,
1640, 1650, 1651, 1652, 1653,
1660, 1670, 1671, 1672, 1673,
1680, 1690, 1691, 1692, 1693,
1614, //ÆÇ(Ũ)
1615, 1616, 1617, 1618, 1635,
1636, 1637, 1638, 1655, 1656,
1657, 1658, 1675, 1676, 1677,
1678,
1699,//ÂâÎó
1700, 1701, 1710, 1711, 1712,
1715, 1716, 1717,
1749, //ÂâÎó(Ũ)
1750, 1751, 1752, 1755, 1756,
1757,
1799, //¾¤´
1800, 1801, 1805, 1810, 1811,
1812, 3810, 3811, 3812,
1815, 1816, 1817,
1819, //¾¤´(Ũ)
1820, 1821, 1825, 1830, 1831,
1832, 3830, 3831, 3832,
1839, //ËâË¡¿Ø
1840, 1841, 1845, 1847, 1848,
1849, //ËâË¡¿Ø
1850, 1851, 1855,
2399, //ÃÏÁê
2400, 2401, 2405, 2406,
2410, 2411, 2415, 2416,
2420, 2421, 2425, 2426,
2430, 2431, 2435, 2436,
2440, 2441, 2445, 2446,
2450, 2451,
1856, //¥Ü¥¤¥¹
1857, 1858,
1859, //¥Á¥§¥¤¥ó
1860, 1861,
1864, //¥ì¥¤¥º
1865, 1866,
1869, //¾õÂÖ
1867, 1868,
3867, 3868, 3869, 3870,
3875, 3876, 3877, 3878,
3879, 3880,
1880, 1881,
1870, 1871, 1872, 1873, 1874,
1875, 1876, 1877, 1878, 1879,
3881, 3882, 3883, 3884,
1884, //¾õÂÖ(Ũ)
1882, 1883, 3885, 3886,
1885, 1886, 1887, 1888, 1891,
1892, 1889, 1890,
1899, //»ØÄê¹ÔÆ°²ó¿ô
1900, 1901, 1902, 1905,
1910, 1911,
1919, //²ó¿ôÀ©¸Â
1920,
1939, //³ÎΨ
1940,
1999, //¿¦¶ÈȽÄê(Í×Telegnosis)
2000, 2001, 2005, 2006, 2010,
2011, 2015, 2016, 2020, 2021,
2025, 2026, 2030, 2031, 2035,
2036, 2040, 2041, 2045, 2046,
2050, 2051, 2055, 2056, 2060,
2061, 2065, 2066, 2070, 2071,
2075, 2076, 2080, 2081, 2085,
2086, 2090, 2091, 2095, 2096,
2100, 2101, 2105, 2106, 2110,
2111, 2115, 2116, 2120, 2121,
2125, 2126, 2130, 2131, 2135,
2136, 2140, 2141, 2145, 2146,
2150, 2151, 2155, 2156, 2160,
2161, 2165, 2166, 2170, 2171,
2175, 2176, 2180, 2181, 2185,
2186, 2190, 2191, 2195, 2196,
2200, 2201, 2205, 2206, 2210,
2211, 2215, 2216,
2299, //¥¹¥Æ¡¼¥¿¥¹È½Äê(Í×Clairvoyance)
2300, 2305, 2306, 2310, 2315,
2316,
);
}
}
//////////////////////////////////////////////////
// ¤ª¶â¤Îɽ¼¨Êý¼°
function MoneyFormat($number) {
return '$ '.number_format($number);
}
//////////////////////////////////////////////////
//
function ItemSellPrice($item) {
$price = (isset($item["sell"]) ? $item["sell"] : round($item["buy"]*SELLING_PRICE));
return $price;
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨
function ShowLogList() {
print("\n");
/*// ¥í¥°¾¯¤Ê¤¤¤Ê¤éÁ´Éôɽ¼¨¤¹¤ì¤Ð¤¤¤¤¡£¢
// common
print("
ºÇ¶á¤ÎÀïÆ®(Recent Battles)
\n");
$log = @glob(LOG_BATTLE_NORMAL."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file);
}
// union
print("
¥æ¥Ë¥ª¥óÀï(Union Battle Log)
\n");
$log = @glob(LOG_BATTLE_UNION."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"UNION");
}
// rank
print("
¥é¥ó¥¥ó¥°Àï(Rank Battle Log)
\n");
$log = @glob(LOG_BATTLE_RANK."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"RANK");
}
*/
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// common
print("
ºÇ¶á¤ÎÀïÆ® - Á´É½¼¨(Recent Battles)
\n");
$log = @glob(LOG_BATTLE_NORMAL."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file);
$limit++;
if(10 <= $limit) {
break;
}
}
// union
$limit = 0;
print("
¥æ¥Ë¥ª¥óÀï - Á´É½¼¨(Union Battle Log)
\n");
$log = @glob(LOG_BATTLE_UNION."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"UNION");
$limit++;
if(10 <= $limit) {
break;
}
}
// party
$limit = 0;
print("
¥Ñ¡¼¥Æ¥£ÀïÆ® - Á´É½¼¨(Party Battle Log)
\n");
$log = @glob(LOG_BATTLE_PARTY."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"PARTY");
$limit++;
if(10 <= $limit) {
break;
}
}
// partyunion
$limit = 0;
print("
¥Ñ¡¼¥Æ¥£¥æ¥Ë¥ª¥óÀïÆ® - Á´É½¼¨(Party Union Battle Log)
\n");
$log = @glob(LOG_BATTLE_PARTYUNION."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"PARTYUNION");
$limit++;
if(10 <= $limit) {
break;
}
}
// rank
$limit = 0;
print("
Ä̾ïÂÐÀï ¥é¥ó¥¥ó¥° - Á´É½¼¨(Classic Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_RANK."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"RANK");
$limit++;
if(10 <= $limit) {
break;
}
}
// squad
$limit = 0;
print("
10¿ÍÂÐÀï ¥é¥ó¥¥ó¥° - Á´É½¼¨(Squad Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_SQUAD."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"SQUAD");
$limit++;
if(10 <= $limit) {
break;
}
}
// duel
$limit = 0;
print("
1ÂÐ1ÂÐÀï ¥é¥ó¥¥ó¥° - Á´É½¼¨(Duel Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_DUEL."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"DUEL");
$limit++;
if(10 <= $limit) {
break;
}
}
// old
$limit = 0;
print("
4¿¦¸ÂÄêÂÐÀï ¥é¥ó¥¥ó¥° - Á´É½¼¨(Old-fashion Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_OLD."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"OLD");
$limit++;
if(10 <= $limit) {
break;
}
}
// arena
$limit = 0;
print("
Ä̾ïÂÐÀï ¥¢¥ê¡¼¥Ê - Á´É½¼¨(Classic Arena Battle Log)
\n");
$log = @glob(LOG_BATTLE_ARENA."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"ARENA");
$limit++;
if(10 <= $limit) {
break;
}
}
// arenasquad
$limit = 0;
print("
10¿ÍÂÐÀï ¥¢¥ê¡¼¥Ê - Á´É½¼¨(Squad Arena Battle Log)
\n");
$log = @glob(LOG_BATTLE_ARENASQUAD."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"ARENASQUAD");
$limit++;
if(10 <= $limit) {
break;
}
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨
function LogShowCommon() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// common
print("
ºÇ¶á¤ÎÀïÆ® - Á´¥í¥°(Recent Battles)
\n");
$log = @glob(LOG_BATTLE_NORMAL."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file);
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(union)
function LogShowUnion() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// union
print("
¥æ¥Ë¥ª¥óÀï - Á´¥í¥°(Union Battle Log)
\n");
$log = @glob(LOG_BATTLE_UNION."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"UNION");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(party)
function LogShowParty() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// union
print("
¥Ñ¡¼¥Æ¥£ÀïÆ® - Á´¥í¥°(Party Battle Log)
\n");
$log = @glob(LOG_BATTLE_PARTY."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"PARTY");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(partyunion)
function LogShowPartyUnion() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// union
print("
¥Ñ¡¼¥Æ¥£¥æ¥Ë¥ª¥óÀïÆ® - Á´¥í¥°(Party Union Battle Log)
\n");
$log = @glob(LOG_BATTLE_PARTYUNION."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"PARTYUNION");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(ranking)
function LogShowRanking() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// rank
print("
Ä̾ïÂÐÀï ¥é¥ó¥¥ó¥° - Á´¥í¥°(Classic Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_RANK."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"RANK");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(squad)
function LogShowSquad() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// rank
print("
10¿ÍÂÐÀï ¥é¥ó¥¥ó¥° - Á´¥í¥°(Squad Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_SQUAD."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"SQUAD");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(duel)
function LogShowDuel() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// rank
print("
1ÂÐ1ÂÐÀï ¥é¥ó¥¥ó¥° - Á´¥í¥°(Duel Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_DUEL."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"DUEL");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(old)
function LogShowOld() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// rank
print("
4¿¦¸ÂÄêÂÐÀï ¥é¥ó¥¥ó¥° - Á´¥í¥°(Old-fashion Ranking Battle Log)
\n");
$log = @glob(LOG_BATTLE_OLD."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"OLD");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(Arena)
function LogShowArena() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// rank
print("
Ä̾ïÂÐÀï ¥¢¥ê¡¼¥Ê - Á´¥í¥°(Classic Arena Battle Log)
\n");
$log = @glob(LOG_BATTLE_ARENA."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"ARENA");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Îɽ¼¨(ArenaSquad)
function LogShowArenaSquad() {
print("\n");
print("
All ");
print("
Common ");
print("
Union ");
print("
Party ");
print("
Party-Union ");
print("
");
print("
Classic ");
print("
Squad ");
print("
Duel ");
print("
Old-fashion");
print("
");
print("
Classic-Arena ");
print("
Squad-Arena");
// rank
print("
10¿ÍÂÐÀï ¥¢¥ê¡¼¥Ê - Á´¥í¥°(Squad Arena Battle Log)
\n");
$log = @glob(LOG_BATTLE_ARENASQUAD."*");
foreach(array_reverse($log) as $file) {
BattleLogDetail($file,"ARENASQUAD");
}
print("
\n");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤Î¾ÜºÙ¤òɽ¼¨(¥ê¥ó¥¯)
function BattleLogDetail($log,$type=false) {
$fp = fopen($log,"r");
// ¿ô¹Ô¤À¤±Æɤ߹þ¤à¡£
$time = fgets($fp);//³«»Ï»þ´Ö 1¹ÔÌÜ
$team = explode("<>",fgets($fp));//¥Á¡¼¥à̾ 2¹ÔÌÜ
$number = explode("<>",trim(fgets($fp)));//¿Í¿ô 3¹ÔÌÜ
$avelv = explode("<>",trim(fgets($fp)));//Ê¿¶Ñ¥ì¥Ù¥ë 4¹ÔÌÜ
$win = trim(fgets($fp));// ¾¡Íø¥Á¡¼¥à 5¹ÔÌÜ
$act = trim(fgets($fp));// Áí¹ÔÆ°¿ô 6¹ÔÌÜ
fclose($fp);
$date = date("m/d H:i:s",substr($time,0,10));
// ¾¡Íø¥Á¡¼¥à¤Ë¤è¤Ã¤Æ¿§¤òʬ¤±¤Æɽ¼¨
if($type == "RANK")
print("[ {$date} ] \n");
else if($type == "SQUAD")
print("[ {$date} ] \n");
else if($type == "DUEL")
print("[ {$date} ] \n");
else if($type == "OLD")
print("[ {$date} ] \n");
else if($type == "UNION")
print("[ {$date} ] \n");
else if($type == "PARTY")
print("[ {$date} ] \n");
else if($type == "PARTYUNION")
print("[ {$date} ] \n");
else if($type == "ARENA")
print("[ {$date} ] \n");
else if($type == "ARENASQUAD")
print("[ {$date} ] \n");
else
print("[ {$date} ] \n");
print("$actturns \n");//Áí¥¿¡¼¥ó¿ô
if($win === "0")
print("{$team[0]}");
else if($win === "1")
print("{$team[0]}");
else
print("{$team[0]}");
print("({$number[0]}:{$avelv[0]})");
print(" vs ");
if($win === "0")
print("{$team[1]}");
else if($win === "1")
print("{$team[1]}");
else
print("{$team[1]}");
print("({$number[1]}:{$avelv[1]})
");
}
//////////////////////////////////////////////////
// ÀïÆ®¥í¥°¤ò²óÍ÷¤¹¤ë
function ShowBattleLog($no,$type=false) {
if($type == "RANK")
$file = LOG_BATTLE_RANK.$no.".dat";
else if($type == "SQUAD")
$file = LOG_BATTLE_SQUAD.$no.".dat";
else if($type == "DUEL")
$file = LOG_BATTLE_DUEL.$no.".dat";
else if($type == "OLD")
$file = LOG_BATTLE_OLD.$no.".dat";
else if($type == "UNION")
$file = LOG_BATTLE_UNION.$no.".dat";
else if($type == "PARTY")
$file = LOG_BATTLE_PARTY.$no.".dat";
else if($type == "PARTYUNION")
$file = LOG_BATTLE_PARTYUNION.$no.".dat";
else if($type == "ARENA")
$file = LOG_BATTLE_ARENA.$no.".dat";
else if($type == "ARENASQUAD")
$file = LOG_BATTLE_ARENASQUAD.$no.".dat";
else
$file = LOG_BATTLE_NORMAL.$no.".dat";
if(!file_exists($file)) {//¥í¥°¤¬Ìµ¤¤
print("log doesnt exists");
return false;
}
$log = file($file);
$row = 6;//¥í¥°¤Î²¿¹ÔÌܤ«¤é½ñ¤½Ð¤¹¤«?
$time = substr($log[0],0,10);
//print(''."\n");
print(' ');
print(" battle log*");
print("\nthis battle starts at ");
print(date("m/d H:i:s",substr($time,0,10)));
print("\n");
//print(" |
\n");
while($log["$row"]) {
print($log["$row"]);
$row++;
}
}
//////////////////////////////////////////////////
// µ»¤Î¾ÜºÙ¤òɽ¼¨
function ShowSkillDetail($skill,$radio=false) {
if(!$skill) return false;
if($radio)
print('');
print('');
print("{$skill[name]}");
if($radio)
print(" / {$skill[learn]}pt");
if($skill[target][0] == "all")//ÂоÝ
print(" / {$skill[target][0]}");
else if($skill[target][0] == "enemy")
print(" / {$skill[target][0]}");
else if($skill[target][0] == "friend")
print(" / {$skill[target][0]}");
else if($skill[target][0] == "self")
print(" / {$skill[target][0]}");
else if(isset($skill[target][0]))
print(" / {$skill[target][0]}");
if($skill[target][1] == "all")//ñÂÎorÊ£¿ôorÁ´ÂÎ
print(" - {$skill[target][1]}");
else if($skill[target][1] == "individual")
print(" - {$skill[target][1]}");
else if($skill[target][1] == "multi")
print(" - {$skill[target][1]}");
else if(isset($skill[target][1]))
print(" - {$skill[target][1]}");
if(isset($skill["sacrifice"]))
print(" / Sacrifice:{$skill[sacrifice]}%");
// ¾ÃÈñSP
if(isset($skill["sp"]))
print(" / {$skill[sp]}sp");
// ¾ÃÈñËâÊý¿Ø
if($skill["MagicCircleDeleteTeam"])
print(" / MagicCircle x".$skill["MagicCircleDeleteTeam"]."");
if($skill["pow"]) {
if($skill["counter"]) {
print(" / {$skill[pow]}%x");
if($skill["hitbias"])
print($skill["counterhit"] * $skill["hitbias"]);
else
print($skill["counterhit"]);
} else {
print(" / {$skill[pow]}%x");
if($skill["hitbias"])
print(( $skill["target"][2] ? ($skill["target"][2] * $skill["hitbias"]) : $skill["hitbias"] ) );
else
print(( $skill["target"][2] ? $skill["target"][2] : "1" ) );
}
} else if($skill["target"][2] > 1) {
print(" / x");
if($skill["hitbias"])
print(( $skill["target"][2] ? ($skill["target"][2] * $skill["hitbias"]) : $skill["hitbias"] ) );
else
print(( $skill["target"][2] ? $skill["target"][2] : "1" ) );
}
if($skill["type"] == 1)
print(" / Magic");
if($skill["jump"] == 1)
print(" / Jump");
if($skill["ward"])
print(" / Ward");
if($skill["field"])
print(" / Field");
if($skill["song"])
print(" / Song");
if($skill["chain"])
print(" / Chain ".$skill[chain]."%");
if($skill["CircleSympathy"])
print(" / CircleSympathy");
if($skill["passive"])
print(" / Passive");
if($skill["quick"])
print(" / Quick");
if($skill["halfquick"])
print(" / HalfQuick");
if($skill["FirstQuick"])
print(" / FirstQuick");
if($skill["invalid"])
print(" / invalid");
if($skill["priority"] == "Back" && !$skill["support"])
print(" / BackAttack");
if($skill["CureBadStatus"])
print(" / CureBadStatus");
if($skill["CurePoison"])
print(" / CurePoison");
if($skill["SpRecoveryRate"])
print(" / SpRecovery+".$skill[SpRecoveryRate]."");
if($skill["delay"])
print(" / Delay-".$skill[delay]."%");
// if($skill["support"])
// print(" / support");
if($skill["UpMAXHP"])
print(" / MaxHP+".$skill[UpMAXHP]."%");
if($skill["UpMAXSP"])
print(" / MaxSP+".$skill[UpMAXSP]."%");
if($skill["UpSTR"])
print(" / Str+".$skill[UpSTR]."%");
if($skill["UpINT"])
print(" / Int+".$skill[UpINT]."%");
if($skill["UpDEX"])
print(" / Dex+".$skill[UpDEX]."%");
if($skill["UpSPD"])
print(" / Spd+".$skill[UpSPD]."%");
if($skill["UpLUK"])
print(" / Luk+".$skill[UpLUK]."%");
if($skill["UpATK"])
print(" / Atk+".$skill[UpATK]."%");
if($skill["UpMATK"])
print(" / Matk+".$skill[UpMATK]."%");
if($skill["UpDEF"])
print(" / Def+".$skill[UpDEF]."%");
if($skill["UpMDEF"])
print(" / Mdef+".$skill[UpMDEF]."%");
if($skill["DownMAXHP"])
print(" / MaxHP-".$skill[DownMAXHP]."%");
if($skill["DownMAXSP"])
print(" / MaxSP-".$skill[DownMAXSP]."%");
if($skill["DownSTR"])
print(" / Str-".$skill[DownSTR]."%");
if($skill["DownINT"])
print(" / Int-".$skill[DownINT]."%");
if($skill["DownDEX"])
print(" / Dex-".$skill[DownDEX]."%");
if($skill["DownSPD"])
print(" / Spd-".$skill[DownSPD]."%");
if($skill["DownLUK"])
print(" / Luk-".$skill[DownLUK]."%");
if($skill["DownATK"])
print(" / Atk-".$skill[DownATK]."%");
if($skill["DownMATK"])
print(" / Matk-".$skill[DownMATK]."%");
if($skill["DownDEF"])
print(" / Def-".$skill[DownDEF]."%");
if($skill["DownMDEF"])
print(" / Mdef-".$skill[DownMDEF]."%");
if($skill["PlusMAXHP"])
print(" / MaxHP+".$skill[PlusMAXHP]."");
if($skill["PlusMAXSP"])
print(" / MaxSP+".$skill[PlusMAXSP]."");
if($skill["PlusSTR"])
print(" / Str+".$skill[PlusSTR]."");
if($skill["PlusINT"])
print(" / Int+".$skill[PlusINT]."");
if($skill["PlusDEX"])
print(" / Dex+".$skill[PlusDEX]."");
if($skill["PlusSPD"])
print(" / Spd+".$skill[PlusSPD]."");
if($skill["PlusLUK"])
print(" / Luk+".$skill[PlusLUK]."");
if($skill["charge"]["0"] || $skill["charge"]["1"]) {
print(" / (".($skill["charge"]["0"]?$skill["charge"]["0"]:"0").":");
print(($skill["charge"]["1"]?$skill["charge"]["1"]:"0").")");
}
// Éð´ïÀ©¸Âɽ¼¨
if($skill["limit"]) {
$Limit = " / Limit:";
foreach($skill["limit"] as $type => $bool) {
$Limit .= $type.", ";
}
print(substr($Limit,0,-2));
}
if($skill["exp"])
print(" / {$skill[exp]}");
print("\n");
}
//////////////////////////////////////////////////
// ¥¢¥¤¥Æ¥à¤Î¾ÜºÙ¤òÊÖ¤¹...¤Á¤ç¤Ã¤È½¤Àµ¤·¤¿¤¤¤Ê¡£
function ShowItemDetail($item,$amount=false,$text=false,$need=false) {
if(!$item) return false;
$html = "";
// ÀºÏ£ÃÍ
if($item["refine"])
$html .= "+{$item[refine]} ";
if($item["AddName"])
$html .= "{$item[AddName]} ";
$html .= "{$item[base_name]}";// ̾Á°
if($item["drefine"]) {
$html .= " ";
for($i=0; $i<$item["drefine"]; $i++) {
$html .= "+";
}
}
if($item["type"])
$html .= " ({$item[type]})";
if($amount) {//¿ôÎÌ
$html .= " x{$amount}";
}
if($item["atk"]["0"])//ʪÍý¹¶·â
$html .= ' / Atk:'.$item[atk][0].'';
if($item["atk"]["1"])//ËâË¡¹¶·â
$html .= ' / Matk:'.$item[atk][1].'';
if($item["def"]) {
$html .= " / Def:{$item[def][0]}+{$item[def][1]}";
$html .= " / Mdef:{$item[def][2]}+{$item[def][3]}";
}
if($item["P_SUMMON"])
$html .= ' / Summon+'.$item["P_SUMMON"].'%';
if(isset($item["handle"]))
$html .= ' / h:'.$item[handle].'';
if($item["option"])
$html .= ' / '.substr($item["option"],0,-2)."";
if($need && $item["need"]) {
$html .= " /";
foreach($item["need"] as $M_itemNo => $M_amount) {
$M_item = LoadItemData($M_itemNo);
$html .= "";
$html .= "{$M_item[base_name]}";// ̾Á°
$html .= " x{$M_amount}";
if($need["$M_itemNo"])
$html .= "(".$need["$M_itemNo"].")";
}
}
if($text)
return $html;
print($html);
}
//////////////////////////////////////////////////
// ÀÖ¤¤·Ù¹ðʸ¤Ç¥¨¥é¡¼É½¼¨
function ShowResult($message,$add=false) {
if($add)
$add = " ".$add;
if(is_string($message))
print(''.$message.'
'."\n");
}
//////////////////////////////////////////////////
// ÀÖ¤¤·Ù¹ðʸ¤Ç¥¨¥é¡¼É½¼¨
function ShowError($message,$add=false) {
if($add)
$add = " ".$add;
if(is_string($message))
print(''.$message.'
'."\n");
}
//////////////////////////////////////////////////
// ¥Þ¥Ë¥å¥¢¥ë¤òɽ¼¨¤¹¤ë
function ShowManual() {
include(MANUAL);
return true;
}
//////////////////////////////////////////////////
// ¥Þ¥Ë¥å¥¢¥ë¤òɽ¼¨¤¹¤ë
function ShowManual2() {
include(MANUAL_HIGH);
return true;
}
//////////////////////////////////////////////////
// ¥Á¥å¡¼¥È¥ê¥¢¥ë¤òɽ¼¨¤¹¤ë
function ShowTutorial() {
include(TUTORIAL);
return true;
}
//////////////////////////////////////////////////
// Data Board¤òɽ¼¨¤¹¤ë
function ShowDataBoard() {
include(DATA_BOARD);
return true;
}
//////////////////////////////////////////////////
// Data Board¤òɽ¼¨¤¹¤ë
function ShowDataBoardMaster() {
include(DATA_BOARD_MASTER);
return true;
}
//////////////////////////////////////////////////
// ¹¹¿·ÆâÍƤÎɽ¼¨
function ShowUpDate() {
print('');
print("
Back
to bottom
");
if($_POST["updatetext"]) {
$update = htmlspecialchars($_POST["updatetext"],ENT_QUOTES);
$update = stripslashes($update);
} else
$update = @file_get_contents(UPDATE);
print('
EOD;
print("
Back
");
}
//////////////////////////////////////////////////
// ¤²¡¼¤à¤Ç¡¼¤¿
function ShowGameData() {
?>
switch($_GET["gamedata"]) {
case "job": include(GAME_DATA_JOB); break;
case "item": include(GAME_DATA_ITEM); break;
case "judge": include(GAME_DATA_JUDGE); break;
case "monster": include(GAME_DATA_MONSTER); break;
default: include(GAME_DATA_JOB); break;
}
}
//////////////////////////////////////////////////
//
function userNameLoad() {
$name = @file(USER_NAME);
if($name) {
foreach($name as $key => $var) {
$name[$key] = trim($name[$key]);
if($name[$key] === "")
unset($name[$key]);
}
return $name;
} else {
return array();
}
}
//////////////////////////////////////////////////
//
function userNameAdd($add) {
foreach(userNameLoad() as $name) {
$string .= $name."\n";
}
$string .= $add."\n";
$fp = fopen(USER_NAME,"w+");
flock($fp, LOCK_EX);
fwrite($fp,$string);
fclose($fp);
}
//////////////////////////////////////////////////
// Á´¥é¥ó¥¥ó¥°¤Îɽ¼¨
function RankAllShow() {
print(''."\n");
print('
Classic Ranking - '.date("Yǯn·îjÆü G»þiʬsÉÃ").'
'."\n");
include(CLASS_RANKING);
$Rank = new Ranking();
$Rank->ShowRanking();
print(''."\n");
}
//////////////////////////////////////////////////
// Á´¥é¥ó¥¥ó¥°¤Îɽ¼¨
function SquadAllShow() {
print(''."\n");
print('
Squad Ranking - '.date("Yǯn·îjÆü G»þiʬsÉÃ").'
'."\n");
include(CLASS_SQUAD);
$Squad = new Squad();
$Squad->ShowRanking();
print(''."\n");
}
//////////////////////////////////////////////////
// Á´¥é¥ó¥¥ó¥°¤Îɽ¼¨
function DuelAllShow() {
print(''."\n");
print('
Duel Ranking - '.date("Yǯn·îjÆü G»þiʬsÉÃ").'
'."\n");
include(CLASS_DUEL);
$Duel = new Duel();
$Duel->ShowRanking();
print(''."\n");
}
//////////////////////////////////////////////////
// Á´¥é¥ó¥¥ó¥°¤Îɽ¼¨
function OldAllShow() {
print(''."\n");
print('
Old-fashion Ranking - '.date("Yǯn·îjÆü G»þiʬsÉÃ").'
'."\n");
include(CLASS_OLD);
$Old = new Old();
$Old->ShowRanking();
print(''."\n");
}
//////////////////////////////////////////////////
// Á´¥é¥ó¥¥ó¥°¤Îɽ¼¨
function ArenaAllShow() {
print(''."\n");
print('
Classic Arena - '.date("Yǯn·îjÆü G»þiʬsÉÃ").'
'."\n");
include(CLASS_ARENA);
$Arena = new Arena();
$Arena->ShowRanking();
print(''."\n");
}
//////////////////////////////////////////////////
// Á´¥é¥ó¥¥ó¥°¤Îɽ¼¨
function ArenaSquadAllShow() {
print(''."\n");
print('
Squad Arena - '.date("Yǯn·îjÆü G»þiʬsÉÃ").'
'."\n");
include(CLASS_ARENASQUAD);
$ArenaSquad = new ArenaSquad();
$ArenaSquad->ShowRanking();
print(''."\n");
}
//////////////////////////////////////////////////
//
function RecordManage($string) {
$file = MANAGE_LOG_FILE;
$fp = @fopen($file,"r+") or die();
$text = fread($fp,2048);
ftruncate($fp,0);
rewind($fp);
fwrite($fp,$string."\n".$text);
}
/*
* ÆþÎϤµ¤ì¤¿Ê¸»úÎó¤ò³Îǧ¤¹¤ë
* ÊÖ¤êÃÍ
* À®¸ù = array(true,ÊÑ´¹($string));
* ¼ºÇÔ = array(false,¼ºÇÔÍýͳ);
*/
function CheckString($string,$maxLength=16) {
$string = trim($string);
$string = stripslashes($string);
if(is_numeric(strpos($string,"\t"))) {
return array(false,"ÉÔÀµ¤Êʸ»ú");
}
if(is_numeric(strpos($string,"\n"))) {
return array(false,"ÉÔÀµ¤Êʸ»ú");
}
if (!$string) {
return array(false,"̤ÆþÎÏ");
}
$length = strlen($string);
if ( 0 == $length || $maxLength < $length) {
return array(false,"Ť¹¤®¤«Ã»¤¹¤®¤ë");
}
$string = htmlspecialchars($string,ENT_QUOTES);
return array(true,$string);
}
///////////////////////////////////////////////////
// üËö¤òȽÃÇ¡£
function isMobile() {
if(strstr($_SERVER['HTTP_USER_AGENT'],"DoCoMo")){
$env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"Vodafone")){
$env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"SoftBank")){
$env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"MOT-")){
$env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"J-PHONE")){
$env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"KDDI")){
//$env = 'ez';
$env = 'ez';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"UP.Browser")){
$env = 'i';
}elseif(strstr($_SERVER['HTTP_USER_AGENT'],"WILLCOM")){
$env = 'ez';
}else{
$env = 'pc';
}
return $env;
}
//////////////////////////////////////////////////
// DUMP
if(!function_exists("dump")) {
function dump($array) {
print("".print_r($array,1)."
");
}
}
?>
include(DATA_JOB);
class char{
// ¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿
var $fp;
var $file;
var $Number;
var $rank_fp;
var $rank_file;
// ï¤Î¥¥ã¥é¤«?
var $user;
/*
´ðËÜŪ¤Ê¾ðÊó
$gender = (0=male 1=female)
*/
var $name, $gender, $job, $job_name, $img, $birth, $level, $exp;
// ¥¹¥Æ¡¼¥¿¥¹
var $maxhp, $hp, $maxsp, $sp, $str, $int, $dex, $spd, $luk;
// ¥¹¥Æ¡¼¥¿¥¹¥Ý¥¤¥ó¥È¤È¤«
var $statuspoint;
var $skillpoint;
// ÁõÈ÷
var $weapon, $shield, $armor, $item, $exitem;
var $equip_exitem;
// ÀïÆ®¤½¤Î¾
var $position, $guard;
// ¥¹¥¥ë
var $skill;
// ¥³¥Ô¡¼¥¹¥¥ë
var $retain;
// ¸«Àڤꥹ¥¥ë
var $dodge;
// ¹ÔÆ°(ȽÄê¡¢»È¤¦¥¹¥¥ë)
var $Pattern;
var $PatternMemo;
var $PatternMemo2;
var $PatternMemo3;
var $PatternMemo4;
var $PatternMemo5;
var $PatternMemoName;
var $judge, $quantity, $action;
var $limit_level=60;
// ÀïÆ®ÍÑÊÑ¿ô(BattleVariable) ¥Ç¡¼¥¿¤Ë¤ÏÊݸ¤µ¤ì¤Ê¤¤¡£
var $team;
var $IMG;
var $MAXHP, $HP, $MAXSP, $SP, $STR, $INT, $DEX, $SPD, $LUK;
var $STATE;//¾õÂÖ(0=À¸Â¸ 1=¤·¤Ü¡¼ 2=ÆǾõÂÖ)
var $POSITION;
var $P_MAXHP, $P_MAXSP, $P_STR, $P_INT, $P_DEX, $P_SPD,$P_LUK;//ñ½ã¤Ê¥¹¥Æ¡¼¥¿¥¹ÊäÀµ(plus)
var $M_MAXHP, $M_MAXSP;//ñ½ã¤Ê¥¹¥Æ¡¼¥¿¥¹ÊäÀµ(multipication)
var $SPECIAL;// Æü쵻ǽ
/*
PoisonResist ÆÇÄñ¹³
HealBonus .
Barrier
Undead
*/
var $WEAPON;//Éð´ï¥¿¥¤¥×
var $D_ATK, $D_DEF;
var $HANDLE=0;
var $atk, $def;// $atk=array(ʪÍý,ËâË¡); $def=array(ʪÍý/,ʪÍý-,ËâË¡/,ËâË¡-);
var $delay;//¹ÔÆ°¤Þ¤Ç¤Î»þ´Ö
var $expect = false;//±Ó¾§´°Î»»þ¤Ë»È¤¦¥¹¥¥ë
var $expect_type;//±Ó¾§´°Î»»þ¤Ë»È¤¦¥¹¥¥ë¤Î¥¿¥¤¥×(ʪÍý/ËâË¡)
var $expect_target;//¢¬¤Î¥¿¡¼¥²¥Ã¥È
var $ActCount;//¹ç·×¹ÔÆ°²ó¿ô
var $JdgCount;//·èÄꤷ¤¿È½ÃǤβó¿ô=array()
var $SklCount;//¥¹¥¥ë¤ò»ÈÍѤ·¤¿²ó¿ô=array()
var $summon=false;
//////////////////////////////////////////////////
function char($file=false) {
if(!$file)
return 0;
$this->Number = basename($file,".dat");
$this->file = $file;
$this->fp = FileLock($file);
$data = ParseFileFP($this->fp);
$this->SetCharData($data);
}
//////////////////////////////////////////////////
// ¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤¬³«¤«¤ì¤Æ¤¤¤ì¤ÐÊĤ¸¤ë
function fpclose() {
if(is_resource($this->fp)) {
//print("who?.".$this->Name()."
\n");
//print("FPÊĤ¸¤¿");
fclose($this->fp);
unset($this->fp);
}
}
//////////////////////////////////////////////////
// ¾¤´ÎÏ?¾¤´¤·¤¿»þ¤Î¾¤´¥â¥ó¥¹¥¿¡¼¤Î¶¯¤µ
function SummonPower() {
$DEX_PART = sqrt($this->DEX) * 5;// DEXʬ¤Î¶¯²½Ê¬
$Strength = 1 + ($DEX_PART + $this->LUK)/250;
$Multiply = 100;
if($this->SPECIAL["Summon"])
$Multiply += $this->SPECIAL["Summon"];
if($this->SPECIAL["Vampire"])
$Multiply += 100;
$Strength *= $Multiply/100;
return $Strength;
}
//////////////////////////////////////////////////
// HP¤Îµ¾À·
function SacrificeHp($rate) {
if(!$rate) return false;
$SelfDamage = ceil( $this->MAXHP*($rate/100) );
if($this->POSITION != "front")
$SelfDamage *= 2;
print("".$this->Name(bold)." sacrifice ");
print("$SelfDamage HP\n");
$this->HpDamage($SelfDamage);
print("
\n");
}
//////////////////////////////////////////////////
// Æü쵻ǽ?¤ÎÄɲÃ
function GetSpecial($name,$value) {
if(is_bool($value)) {
$this->SPECIAL["$name"] = $value;
} else if (is_array($value)) {
foreach($value as $key => $val) {
$this->SPECIAL["$name"]["$key"] += $val;
}
} else {
$this->SPECIAL["$name"] += $value;
}
}
//////////////////////////////////////////////////
// ÊѿȲò½ü
function ShapeOriginal() {
print($this->Name(bold)." returns to original.
\n");
$this->img = $this->IMG;
$this->SPECIAL["AutoSkill"] = false;
if($this->SPECIAL["Weawolf"]) {
$this->GetSpecial("Weawolf",false);
print($this->Name(bold)." HP({$this->HP}) down to ");
$this->HP = round($this->HP * (1 - 33/100));
print("{$this->HP}
\n");
$this->DownMAXHP(33);
$this->DownDEF(33);
} else if($this->SPECIAL["Vampire"]) {
$this->GetSpecial("Vampire",false);
$this->DownINT(50);
print($this->Name(bold)."'s SummonPower down 100%
\n");
} else if($this->SPECIAL["DarkWizard"]) {
$this->GetSpecial("DarkWizard",false);
$this->DownMAXSP(39);
} else if($this->SPECIAL["Shademan"]) {
$this->GetSpecial("Shademan",false);
$this->DownDEF(9);
$this->DownMDEF(9);
} else if($this->SPECIAL["Falcon"]) {
$this->GetSpecial("Falcon",false);
$this->DownSPD(20);
} else if($this->SPECIAL["Phoenix"]) {
$this->GetSpecial("Phoenix",false);
$this->DownMDEF(33);
} else if($this->SPECIAL["Enchanter"]) {
$this->GetSpecial("Enchanter",false);
print($this->Name(bold)." HP({$this->HP}) down to ");
$this->HP = round($this->HP * (1 - 20/100));
print("{$this->HP}
\n");
$this->DownMAXHP(20);
$this->DownMAXSP(24);
$this->DownDEF(20);
} else if($this->SPECIAL["ElfinMage"]) {
$this->GetSpecial("ElfinMage",false);
$this->DownDEX(33);
} else if($this->SPECIAL["SpellLinker"]) {
$this->GetSpecial("SpellLinker",false);
$this->DownINT(33);
$this->DownSPD(13);
} else if($this->SPECIAL["Animist"]) {
$this->GetSpecial("Animist",false);
$this->DownMAXSP(24);
$this->DownMDEF(20);
$this->SPECIAL["HealBoost"] -= 100;
print($this->Name(bold)."'s HealBoost down 100%
\n");
} else if($this->SPECIAL["EvilCleric"]) {
$this->GetSpecial("EvilCleric",false);
$this->DownMAXSP(24);
$this->DownMDEF(20);
} else if($this->SPECIAL["Turtle"]) {
$this->GetSpecial("Turtle",false);
$this->UpSTR(233);
$this->UpINT(233);
$this->UpSPD(233);
$this->DownDEF(20);
} else if($this->SPECIAL["Panda"]) {
$this->GetSpecial("Turtle",false);
$this->UpMAXSP(100);
$this->UpDEF(50);
$this->UpMDEF(50);
} else if($this->SPECIAL["Evolution"]) {
$this->GetSpecial("Evolution",false);
print($this->Name(bold)." HP({$this->HP}) down to ");
$this->HP = round($this->HP * (1 - 33/100));
print("{$this->HP}
\n");
$this->DownMAXHP(33);
$this->DownMAXSP(33);
$this->DownSTR(50);
$this->DownINT(50);
$this->DownSPD(50);
$this->DownATK(100);
$this->DownMATK(100);
$this->DownDEF(100);
$this->DownMDEF(100);
}
}
//////////////////////////////////////////////////
// Ward²ò½ü
function ResetWard() {
if($this->SPECIAL["Ward"])
print("".$this->Name(bold)."'s ".$this->SPECIAL["Ward"]." end.
\n");
$this->SPECIAL["Ward"] = false;
$this->SPECIAL["ShortWard"] = false;
$this->SPECIAL["AggressiveWard"] = false;
$this->SPECIAL["DefensiveWard"] = false;
$this->SPECIAL["AccelerateWard"] = false;
$this->SPECIAL["CheerWard"] = false;
$this->SPECIAL["MentalWard"] = false;
$this->SPECIAL["PierceWard"] = false;
$this->SPECIAL["ImpromptuWard"] = false;
$this->SPECIAL["AnimaWard"] = false;
$this->SPECIAL["CircleWard"] = false;
}
//////////////////////////////////////////////////
// Auto²ò½ü
function EndAutoSpell() {
print($this->Name(bold)."'s ".$this->SPECIAL["AutoName"]." end.
\n");
$this->SPECIAL["AutoSpell"] = false;
$this->SPECIAL["AutoSkill"] = false;
$this->SPECIAL["AutoName"] = false;
}
//////////////////////////////////////////////////
// HPSP»ý³²óÉü
function AutoRegeneration() {
// HP²óÉü
$HpRegen = 0;
if($this->SPECIAL["HpRegen"]) $HpRegen += $this->SPECIAL["HpRegen"];
if($this->SPECIAL["AnimaWard"]) $HpRegen += $this->SPECIAL["AnimaWard"];
if($HpRegen) {
$Regen = round($this->MAXHP * $HpRegen/100);
if($this->SPECIAL["Berserk"]) $Regen = 0;
print('* '.$this->Name(bold)." Auto Regenerate ".$Regen." HP ");
$this->HpRecover($Regen);
print("
\n");
}
// SP²óÉü
$SpRegen = 0;
if($this->SPECIAL["SpRegen"]) $SpRegen += $this->SPECIAL["SpRegen"];
if($this->SPECIAL["AnimaWard"]) $SpRegen += $this->SPECIAL["AnimaWard"];
if($SpRegen) {
$Regen = round($this->MAXSP * $SpRegen/100);
if($this->SPECIAL["Berserk"]) $Regen = 0;
print('* '.$this->Name(bold)." Auto Regenerate ".$Regen." SP ");
$this->SpRecover($Regen);
print("
\n");
}
}
//////////////////////////////////////////////////
// ¥¥ã¥é¥¹¥Æ¡¼¥¿¥¹¤Î°ìÈÖ¾å¤Î¤ä¤Ä¡£
function ShowCharDetail() {
$P_MAXHP = round($this->maxhp * $this->M_MAXHP/100) + $this->P_MAXHP;
$P_MAXSP = round($this->maxsp * $this->M_MAXSP/100) + $this->P_MAXSP;
?>