diff --git a/hwe/_admin2_submit.php b/hwe/_admin2_submit.php index 0e38c1b8..87ef4fb5 100644 --- a/hwe/_admin2_submit.php +++ b/hwe/_admin2_submit.php @@ -75,7 +75,7 @@ switch($btn) { $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $general = MYDB_fetch_array($result); - $special2 = getSpecial2($connect, $general['leader'], $general['power'], $general['intel']); + $special2 = getSpecial2($general['leader'], $general['power'], $general['intel']); $query = "update general set specage2=age,special2='$special2' where no='{$general['no']}'"; MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); diff --git a/hwe/func.php b/hwe/func.php index e3bb9953..d55df440 100644 --- a/hwe/func.php +++ b/hwe/func.php @@ -1713,7 +1713,7 @@ function addAge($connect) { for($i=0; $i < $gencount; $i++) { $general = MYDB_fetch_array($result); - $special2 = getSpecial2($connect, $general['leader'], $general['power'], $general['intel'], 0, $general['dex0'], $general['dex10'], $general['dex20'], $general['dex30'], $general['dex40']); + $special2 = getSpecial2($general['leader'], $general['power'], $general['intel'], 0, $general['dex0'], $general['dex10'], $general['dex20'], $general['dex30'], $general['dex40']); $query = "update general set special2='$special2' where no='{$general['no']}'"; MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); diff --git a/hwe/func_gamerule.php b/hwe/func_gamerule.php index 66c149a0..0e761be0 100644 --- a/hwe/func_gamerule.php +++ b/hwe/func_gamerule.php @@ -126,7 +126,7 @@ function getSpecial($connect, $leader, $power, $intel) { // 60 돌격, 무쌍, 견고, 위압 = 4 무장전투 // 70 저격, 필살, 징병, 의술, 격노, 척사 = 6 공통전투 -function getSpecial2($connect, $leader, $power, $intel, $nodex=1, $dex0=0, $dex10=0, $dex20=0, $dex30=0, $dex40=0) { +function getSpecial2($leader, $power, $intel, $nodex=1, $dex0=0, $dex10=0, $dex20=0, $dex30=0, $dex40=0) { $special2 = 70; // 숙련 10,000: 25%, 40,000: 50%, 100,000: 79%, 160,000: 100% $dex = sqrt($dex0 + $dex10 + $dex20 + $dex30 + $dex40); diff --git a/hwe/j_adjust_icon.php b/hwe/j_adjust_icon.php index 3e3f79a6..65c7e90a 100644 --- a/hwe/j_adjust_icon.php +++ b/hwe/j_adjust_icon.php @@ -2,25 +2,10 @@ namespace sammo; include('lib.php'); -include('func.php'); -$userID = Session::getUserID(); -$generalID = Session::Instance()->generalID; -session_write_close(); - -if(!$userID){ - Json::die([ - 'result'=>false, - 'reason'=>'로그인되지 않았습니다.' - ]); -} - -if(!$generalID){ - Json::die([ - 'result'=>false, - 'reason'=>'장수를 생성하지 않았습니다.' - ]); -} +$session = Session::requireGameLogin([])->setReadOnly(); +$userID = $session->userID; +$generalID = $session->generalID; $rootDB = RootDB::db(); $db = DB::db(); @@ -39,6 +24,14 @@ $db->update('general', [ 'imgsvr'=>$image['imgsvr'] ], 'owner = %i and npc = 0', $userID); +$affected = $db->affectedRows(); +if($affected == 0){ + Json::die([ + 'result'=>true, + 'reason'=>'등록된 장수가 없습니다' + ]); +} + Json::die([ 'result'=>true, 'reason'=>'success' diff --git a/hwe/j_msgsubmit.php b/hwe/j_msgsubmit.php index ea80522a..31c5ae89 100644 --- a/hwe/j_msgsubmit.php +++ b/hwe/j_msgsubmit.php @@ -48,7 +48,7 @@ if(getBlockLevel() == 1 || getBlockLevel() == 3) { $conlimit = $db->queryFirstField('select conlimit from game limit 1'); -$me = $db->queryFirstRow('select `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr` from `general` where `owner` = %i', Session::getUserID()); +$me = $db->queryFirstRow('select `no`,`name`,`nation`,`level`,`con`,`picture`,`imgsvr` from `general` where `owner` = %i', $session->userID); if(!$me){ $session->logoutGame(); diff --git a/hwe/join.php b/hwe/join.php index f40aee8f..fef0c79c 100644 --- a/hwe/join.php +++ b/hwe/join.php @@ -4,7 +4,9 @@ namespace sammo; include "lib.php"; include "func.php"; -$userID = Session::getUserID(); +$session = Session::requireLogin()->setReadOnly(); + +$userID = $session->userID; if(!$userID) { MessageBox("잘못된 접근입니다!!!"); diff --git a/hwe/join_post.php b/hwe/join_post.php index d115b535..9d6068d3 100644 --- a/hwe/join_post.php +++ b/hwe/join_post.php @@ -4,30 +4,60 @@ namespace sammo; include "lib.php"; include "func.php"; +$v = new Validator($_POST); +$v +->rule('required', [ + 'name', + 'pic', + 'leader', + 'power', + 'intel' +]) +->rule('integer', [ + 'leader', + 'power', + 'intel', + 'character', + 'pic' +]) +->rule('lengthBetween', 'name', [1, 6]) +->rule('min', [ + 'leader', + 'power', + 'intel' +], 10) +->rule('max', [ + 'leader', + 'power', + 'intel' +], 75) +->rule('min', 'character', 0) +->rule('max', 'character', 11); - -$name = $_POST['name']; -$name = StringUtil::NoSpecialCharacter($name); -$pic = Util::array_get($_POST['pic'],''); -$character = $_POST['character']; - -$leader = Util::array_get($_POST['leader'], 50); -$power = Util::array_get($_POST['power'], 50); -$intel = Util::array_get($_POST['intel'], 50); - -$mylog = []; - -$userID = Session::getUserID(); - -if(!$userID) { - MessageBox("잘못된 접근입니다!!!"); +if(!$v->validate()){ + MessageBox($v->errorStr()); echo ""; exit(1); } +$session = Session::requireLogin()->setReadOnly(); +//NOTE: 이 페이지에서는 세션에 데이터를 등록하지 않음. 로그인은 이후에. +$name = $_POST['name']; +$name = StringUtil::NoSpecialCharacter($name); +$pic = (int)Util::array_get($_POST['pic'], 0); +$character = (int)Util::array_get($_POST['character'], 0); + +$leader = (int)$_POST['leader']; +$power = (int)$_POST['power']; +$intel = (int)$_POST['intel']; + +$mylog = []; + +$userID = $session->userID; +$rootDB = RootDB::db(); //회원 테이블에서 정보확인 -$member = RootDB::db()->queryFirstRow("select no,id,picture,imgsvr,grade from MEMBER where no = %i", $userID); +$member = $rootDB->queryFirstRow('SELECT `no`, id, picture, grade, `name` FROM MEMBER WHERE no=%i', $userID); if(!$member) { MessageBox("잘못된 접근입니다!!!"); @@ -35,233 +65,217 @@ if(!$member) { exit(1); } -$date = date('Y-m-d H:i:s'); -//등록정보 -RootDB::db()->query("update MEMBER set reg_num=reg_num+1,reg_date=%s where no=%i", $date, $userID); - -$connect = dbConn(); $db = DB::db(); ########## 동일 정보 존재여부 확인. ########## -$admin = $db->queryFirstRow("select year,month,scenario,maxgeneral,turnterm,genius,img from game limit 1"); -$gencount = $db->queryFirstField("select count(no) from general where npc<2"); -$id_num = $db->queryFirstField("select count(no) from general where owner= %i", $userID); -$name_num = $db->queryFirstField("select count(no) from general where name= %s", $name); +$admin = $db->queryFirstRow('SELECT year,month,maxgeneral,turnterm,genius,npcmode from game limit 1'); +$gencount = $db->queryFirstField('SELECT count(`no`) FROM general WHERE noc<2'); +$oldGeneral = $db->queryFirstField('SELECT `no` FROM general WHERE `owner`=%i', $userID); +$oldName = $db->queryFirstField('SELECT `no` FROM general WHERE `name`=%i', $name); -if($id_num) { +if($oldGeneral) { echo(""); exit; -} elseif($name_num) { +} +if($oldName) { echo(""); exit; -} elseif($token_num != 1) { - echo(""); - exit; -} elseif($admin['maxgeneral'] <= $gencount) { +} +if($admin['maxgeneral'] <= $gencount) { echo(""); exit; -} elseif($id == "") { - echo(""); - exit; -} elseif(StringUtil::GetStrLen($name) < 1) { +} +if(mb_strlen($name) < 1) { echo(""); exit; -} elseif($name == "") { - echo(""); - exit; -} elseif(StringUtil::GetStrLen($name) > 6) { +} +if(mb_strlen($name) > 6) { echo(""); exit; -} elseif($leader + $power + $intel > 150) { +} +if($leader + $power + $intel > 150) { echo(""); exit; -} elseif($leader > 75 || $leader < 10 || $power > 75 || $power < 10 || $intel > 75 || $intel < 10) { - echo(""); - exit; -} elseif($character < 0 || $character > 11) { - echo(""); - exit; -} else { - $ratio = rand() % 100; - // 현재 1% - if($ratio == 50 && $admin['genius'] > 0) { - $genius = 1; - - $db->query("update game set genius=genius-1"); - } else { - $genius = 0; - } - - //중, 소 공백지 개수 - $citycount = Util::toInt($db->queryFirstField("select count(city) from city where level>=5 and level<=6 and nation=0")); - - // 공백지에서만 태어나게 - if($citycount > 0) { - $city = Util::toInt($db->queryFirstField("select city from city where level>=5 and level<=6 and nation=0 order by rand() limit 0,1")); - } else { - $city = Util::toInt($db->queryFirstField("select city from city where level>=5 and level<=6 order by rand() limit 0,1")); - } - - $total = rand() % 6; - $pleader = rand() % 100; - $ppower = rand() % 100; - $pintel = rand() % 100; - $rate = $pleader + $ppower + $pintel; - $pleader = floor($pleader / $rate * $total + 0.5); - $ppower = floor($ppower / $rate * $total + 0.5); - $pintel = floor($pintel / $rate * $total + 0.5); - - $leader = $leader + $pleader; - $power = $power + $ppower; - $intel = $intel + $pintel; - - $age = 20 + ($pleader + $ppower + $pintel) * 2 + (rand() % 2); - // 아직 남았고 천재등록상태이면 특기 부여 - if($genius == 1) { - $specage2 = $age; - $special2 = getSpecial2($connect, $leader, $power, $intel); - } else { - $specage2 = round((80 - $age)/3) + $age; - $special2 = 0; - } - //내특 - $specage = round((80 - $age)/12) + $age; - $special = 0; - - if($admin['scenario'] > 0) { - $specage2 = $age + 3; - $specage = $age + 3; - } - - $turntime = getRandTurn($admin['turnterm']); - - $lastconnect = date('Y-m-d H:i:s'); - if($lastconnect >= $turntime) { - $turntime = addTurn($turntime, $admin['turnterm']); - } - - //특회 전콘 - if($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture'] != "" && $pic == 1) { - $face = $member['picture']; - $imgsvr = $member['imgsvr']; - } else { - $face = "default.jpg"; - $imgsvr = 0; - } - - //성격 랜덤시 - if($character == 11) $character = rand()%10; - //상성 랜덤 - $affinity = rand()%150 + 1; - - ########## 회원정보 테이블에 입력값을 등록한다. ########## - $db->insert('general', [ - 'owner' => $userID, - 'name' => $name, - 'picture' => $face, - 'imgsvr' => $imgsvr, - 'nation' => 0, - 'city' => $city, - 'troop' => 0, - 'affinity' => $affinity, - 'leader' => $leader, - 'power' => $power, - 'intel' => $intel, - 'experience' => 0, - 'dedication' => 0, - 'gold' => 1000, - 'rice' => 1000, - 'crew' => 0, - 'train' => 0, - 'atmos' => 0, - 'level' => 0, - 'turntime' => $turntime, - 'killturn' => 6, - 'lastconnect' => $lastconnect, - 'makelimit' => 0, - 'age' => $age, - 'startage' => $age, - 'personal' => $character, - 'specage' => $specage, - 'special' => $special, - 'specage2' => $specage2, - 'special2' => $special2 - ]); - - $me = $db->queryFirstRow("select no,name from general where owner= %i", $userID); - - if($me['name'] == "") { - $r = rand() % 999 + 1; - $me['name'] = '장수-'.$r; - - $db->query("update general set name=%s where owner=%i", $me['name'], $userID); - } - $cityname = getCity($connect, $city, "name"); - if($genius == 1) { - $log[0] = "●{$admin['month']}월:{$cityname['name']}에서 {$me['name']}(이)라는 기재가 천하에 이름을 알립니다."; - $log[1] = "●{$admin['month']}월:".getGenSpecial($special2)." 특기를 가진 천재의 등장으로 온 천하가 떠들썩합니다."; - - $history[0] = "●{$admin['year']}년 {$admin['month']}월:【천재】{$cityname['name']}에 천재가 등장했습니다."; - pushWorldHistory($history, $admin['year'], $admin['month']); - } else { - $log[0] = "●{$admin['month']}월:{$cityname['name']}에서 {$me['name']}(이)라는 호걸이 천하에 이름을 알립니다."; - } - pushGeneralHistory($me, "●{$admin['year']}년 {$admin['month']}월:{$me['name']}, {$cityname['name']}에서 큰 뜻을 품다."); - $mylog[] = "●삼국지 모의전투 PHP의 세계에 오신 것을 환영합니다 ^o^"; - $mylog[] = "●처음 하시는 경우에는 도움말을 참고하시고,"; - $mylog[] = "●문의사항이 있으시면 게시판에 글을 남겨주시면 되겠네요~"; - $mylog[] = "●부디 즐거운 삼모전 되시길 바랍니다 ^^"; - $mylog[] = "●통솔 $pleader 무력 $ppower 지력 $pintel 의 보너스를 받으셨습니다."; - $mylog[] = "●연령은 $age세로 시작합니다."; - if($genius == 1) { - $mylog[] = "●축하합니다! 천재로 태어나 처음부터 ".getGenSpecial($special2)." 특기를 가지게 됩니다!"; - pushGeneralHistory($me, "●{$admin['year']}년 {$admin['month']}월:".getGenSpecial($special2)." 특기를 가진 천재로 탄생."); - } - pushGenLog($me, $mylog); - pushGeneralPublicRecord($log, $admin['year'], $admin['month']); - - $adminLog[0] = "가입 : {$name} // {$me['name']} // {$id} // ".getenv("REMOTE_ADDR"); - pushAdminLog($adminLog); - - MYDB_close($connect); - - echo(""); - //echo(""); - echo 'index.php';//TODO:debug all and replace } +$genius = Util::randBool(0.01); +// 현재 1% +if($genius && $admin['genius'] > 0) { + + $db->update('game', [ + 'genius'=>$db->sqleval('genius-1') + ], true); +} else { + $genius = false; +} + +// 공백지에서만 태어나게 +$city = $db->queryFirstField("select city from city where level>=5 and level<=6 and nation=0 order by rand() limit 0,1"); +if(!$city) { + $city = $db->queryFirstField("select city from city where level>=5 and level<=6 order by rand() limit 0,1"); +} + +$pleader = 0; +$ppower = 0; +$pintel = 0; +for($statBonusCnt = 3 + mt_rand(0, 2); $statBonusCnt > 0; $statBonusCnt--){ + switch(Util::choiceRandomUsingWeight(array($leader, $power, $intel))){ + case 0: + $pleader++; + break; + case 1: + $ppower++; + break; + case 2: + $pintel++; + break; + } +} + +$leader = $leader + $pleader; +$power = $power + $ppower; +$intel = $intel + $pintel; + +$age = 20 + ($pleader + $ppower + $pintel) * 2 - (mt_rand(0, 1)); +// 아직 남았고 천재등록상태이면 특기 부여 +if($genius) { + $specage2 = $age; + $special2 = getSpecial2($leader, $power, $intel); +} else { + $specage2 = round((80 - $age)/3) + $age; + $special2 = 0; +} +//내특 +$specage = round((80 - $age)/12) + $age; +$special = 0; + +if($admin['scenario'] > 0) { + $specage2 = $age + 3; + $specage = $age + 3; +} + +$turntime = getRandTurn($admin['turnterm']); + +$lastconnect = date('Y-m-d H:i:s'); +if($lastconnect >= $turntime) { + $turntime = addTurn($turntime, $admin['turnterm']); +} + +//특회 전콘 +if($admin['show_img_level'] >= 1 && $member['grade'] >= 1 && $member['picture'] != "" && $pic == 1) { + $face = $member['picture']; + $imgsvr = $member['imgsvr']; +} else { + $face = "default.jpg"; + $imgsvr = 0; +} + +//성격 랜덤시 +if($character == 11) $character = rand()%10; +//상성 랜덤 +$affinity = rand()%150 + 1; + +########## 회원정보 테이블에 입력값을 등록한다. ########## +$db->insert('general', [ + 'owner' => $userID, + 'name' => $name, + 'picture' => $face, + 'imgsvr' => $imgsvr, + 'nation' => 0, + 'city' => $city, + 'troop' => 0, + 'affinity' => $affinity, + 'leader' => $leader, + 'power' => $power, + 'intel' => $intel, + 'experience' => 0, + 'dedication' => 0, + 'gold' => 1000, + 'rice' => 1000, + 'crew' => 0, + 'train' => 0, + 'atmos' => 0, + 'level' => 0, + 'turntime' => $turntime, + 'killturn' => 6, + 'lastconnect' => $lastconnect, + 'makelimit' => 0, + 'age' => $age, + 'startage' => $age, + 'personal' => $character, + 'specage' => $specage, + 'special' => $special, + 'specage2' => $specage2, + 'special2' => $special2 +]); +$generalID = $db->insertId(); + +$cityname = CityConst::byID($city)->name; + +$me = [ + 'no'=>$generalID +]; + +if($genius) { + $log[0] = "●{$admin['month']}월:{$cityname}에서 {$name}(이)라는 기재가 천하에 이름을 알립니다."; + $log[1] = "●{$admin['month']}월:".getGenSpecial($special2)." 특기를 가진 천재의 등장으로 온 천하가 떠들썩합니다."; + + $history[0] = "●{$admin['year']}년 {$admin['month']}월:【천재】{$cityname}에 천재가 등장했습니다."; + pushWorldHistory($history, $admin['year'], $admin['month']); +} else { + $log[0] = "●{$admin['month']}월:{$cityname}에서 {$name}(이)라는 호걸이 천하에 이름을 알립니다."; +} +pushGeneralHistory($me, "●{$admin['year']}년 {$admin['month']}월:{$name}, {$cityname}에서 큰 뜻을 품다."); +$mylog[] = "●삼국지 모의전투 PHP의 세계에 오신 것을 환영합니다 ^o^"; +$mylog[] = "●처음 하시는 경우에는 도움말을 참고하시고,"; +$mylog[] = "●문의사항이 있으시면 게시판에 글을 남겨주시면 되겠네요~"; +$mylog[] = "●부디 즐거운 삼모전 되시길 바랍니다 ^^"; +$mylog[] = "●통솔 $pleader 무력 $ppower 지력 $pintel 의 보너스를 받으셨습니다."; +$mylog[] = "●연령은 $age세로 시작합니다."; +if($genius) { + $mylog[] = "●축하합니다! 천재로 태어나 처음부터 ".getGenSpecial($special2)." 특기를 가지게 됩니다!"; + pushGeneralHistory($me, "●{$admin['year']}년 {$admin['month']}월:".getGenSpecial($special2)." 특기를 가진 천재로 탄생."); +} +pushGenLog($me, $mylog); +pushGeneralPublicRecord($log, $admin['year'], $admin['month']); + +$adminLog[0] = "가입 : {$name} // {$name} // {$id} // ".getenv("REMOTE_ADDR"); +pushAdminLog($adminLog); + +$rootDB->insert('member_log', [ + 'member_no' => $userID, + 'date'=>date('Y-m-d H:i:s'), + 'action_type'=>'make_general', + 'action'=>Json::encode([ + 'server'=>DB::prefix(), + 'type'=>'general', + 'generalID'=>$generalID, + 'generalName'=>$name + ]) +]); + +?> + + + + diff --git a/hwe/select_npc_post.php b/hwe/select_npc_post.php index 9fe1d286..2f516c8c 100644 --- a/hwe/select_npc_post.php +++ b/hwe/select_npc_post.php @@ -4,15 +4,15 @@ namespace sammo; include "lib.php"; include "func.php"; +$session = Session::requireLogin()->setReadOnly(); + $face = $_POST['face'];//TODO: face를 user_id에서 general.no 값을 이용하도록 변경 -$userID = Session::getUserID(); -$connect = dbConn(true); +$userID = $session->userID; +$rootDB = RootDB::db(); //회원 테이블에서 정보확인 -$query = "select no,id,picture,grade,name from MEMBER where no='$userID'"; -$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); -$member = MYDB_fetch_array($result); +$member = $rootDB->queryFirstRow('SELECT `no`, id, picture, grade, `name` FROM MEMBER WHERE no=%i', $userID); if(!$member) { MessageBox("잘못된 접근입니다!!!"); @@ -20,100 +20,107 @@ if(!$member) { exit(1); } -$date = date('Y-m-d H:i:s'); -//등록정보 -$query = "update MEMBER set reg_num=reg_num+1,reg_date='$date' where no='{$member['no']}'"; -$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); +$db = DB::db(); -$connect = dbConn(); - -$npcid = "gen{$face}"; -$query = "select no,npc,level from general where no='$face'"; -$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); -$npc = MYDB_fetch_array($result); +$npc = $db->queryFirstRow('SELECT `no`, `name`, `npc`, `level` FROM general WHERE `no`=%i', $face); +if(!$npc){ + echo ""; + echo ""; + exit(); +} +$npcID = $npc['no']; ########## 동일 정보 존재여부 확인. ########## -$query = "select year,month,maxgeneral,turnterm,genius,npcmode from game limit 1"; -$result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); -$admin = MYDB_fetch_array($result); - -$query = "select no from general where npc<2"; -$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); -$gencount = MYDB_num_rows($result); - -$query = "select no from general where owner='$userID'"; -$result = MYDB_query($query,$connect) or Error(__LINE__.MYDB_error($connect),""); -$id_num = MYDB_num_rows($result); +$admin = $db->queryFirstRow('SELECT year,month,maxgeneral,turnterm,genius,npcmode from game limit 1'); +$gencount = $db->queryFirstField('SELECT count(`no`) FROM general WHERE noc<2'); +$oldGeneral = $db->queryFirstField('SELECT `no` FROM general WHERE `owner`=%i', $userID); if($admin['npcmode'] != 1) { echo ""; echo ""; exit(); -} elseif($id_num) { +} +if($oldGeneral) { echo(""); exit; -} elseif($admin['maxgeneral'] <= $gencount) { +} +if($admin['maxgeneral'] <= $gencount) { echo(""); exit; -} elseif($npc['npc'] < 2) { +} +if($npc['npc'] < 2) { echo(""); exit; -} elseif($npc['npc'] != 2) { +} +if($npc['npc'] != 2) { echo(""); exit; -/* -} elseif($npc['level'] >= 5) { +} +/*if($npc['level'] >= 5) { echo(""); exit; -*/ -} else { - $query = " - update general set - name2='{$member['name']}', - npc=1, - killturn=6, - mode=2, - map=0, - owner='$userID', - where no='{$npcid}' - "; - MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); - $query = "select no,name from general where user_id='$id'"; - $result = MYDB_query($query, $connect) or Error("join_post ".MYDB_error($connect),""); - $me = MYDB_fetch_array($result); - - $log[0] = "●{$admin['month']}월:{$me['name']}의 육체에 {$member['name']}(이)가 빙의됩니다!"; - pushGeneralHistory($me, "●{$admin['year']}년 {$admin['month']}월:{$me['name']}의 육체에 {$member['name']}(이)가 빙의되다."); - pushGenLog($me, $mylog); - pushGeneralPublicRecord($log, $admin['year'], $admin['month']); - - $adminLog[0] = "가입 : {$me['name']} // {$id} // ".getenv("REMOTE_ADDR"); - pushAdminLog($adminLog); - - MYDB_close($connect); +} */ +$db->update('general', [ + 'name2'=>$session->userName, + 'npc'=>1, + 'killturn'=>6, + 'mode'=>2, + 'map'=>0, + 'owner'=>$userID +], 'no=%i and npc=2', $npcID); +$affected = $db->affectedRows(); +if(!$affected){ echo(""); - echo(""); - //echo(""); - echo 'index.php';//TODO:debug all and replace + window.alert('이미 선택된 장수입니다!') + history.go(-1) + "); + exit; } +$me = [ + 'no'=>$npcID +]; + +$log[0] = "●{$admin['month']}월:{$npc['name']}의 육체에 {$session->userName}(이)가 빙의됩니다!"; +pushGeneralHistory($me, "●{$admin['year']}년 {$admin['month']}월:{$npc['name']}의 육체에 {$session->userName}(이)가 빙의되다."); +pushGenLog($me, $mylog); +pushGeneralPublicRecord($log, $admin['year'], $admin['month']); + +$adminLog[0] = "가입 : {$session->userName} // {$id} // ".getenv("REMOTE_ADDR"); +pushAdminLog($adminLog); + +$rootDB->insert('member_log', [ + 'member_no' => $userID, + 'date'=>date('Y-m-d H:i:s'), + 'action_type'=>'make_general', + 'action'=>Json::encode([ + 'server'=>DB::prefix(), + 'type'=>'npc', + 'generalID'=>$me['no'], + 'generalName'=>$me['name'] + ]) +]); + +?> +"); + diff --git a/src/sammo/Util.php b/src/sammo/Util.php index 713c061c..99c50867 100644 --- a/src/sammo/Util.php +++ b/src/sammo/Util.php @@ -189,7 +189,7 @@ class Util extends \utilphp\util{ * @return boolean */ public static function randBool($prob = 0.5){ - return randF() < $prob; + return self::randF() < $prob; }