我想爲高級帳戶添加另一個選項。目前,你可以每兩天改變一次角色,但是我希望再添加一次支票,以保證優質用戶每12小時一次。他們從PREMIUM
中的另一個表中確定,它們的編號爲strAccountID
如果它們不是溢價,那麼該表中將不會有行中的行。如何編輯我現有的php函數並添加另一個檢查?
這是我目前使用的PHP函數,適用於所有用戶,並允許他們每兩天完成一次。
private function doProcessClassChangeFormD()
{
$db = $this->database[GDB];
$character = $this->site->SanitizeName($_POST['character']);
$num_rows = $db->doQuery('SELECT bNation FROM ACCOUNT_CHAR WHERE strAccountID = ? AND ? IN(strCharID1, strCharID2, strCharID3)', $_SESSION['strAccountID'], $character);
if ($num_rows == -1)
{
$db->GetError(__file__, __line__);
$this->m_ccError = Template::GetLangVar('DB_ERROR');
return false;
}
else if ($num_rows == 0)
{
$this->m_ccError = Template::GetLangVar('CC_INVALID_ACCOUNT');
return false;
}
$row = $db->doRead();
$nation = $row['bNation'];
$num_rows = $db->doQuery('SELECT Class, Race, Strong, Sta, Dex, Intel, Cha, Points, TransferTime FROM USERDATA WHERE strUserId = ? AND (TransferTime < DATEADD(DAY,-2,GETDATE()) OR TransferTime IS NULL) and zone<>199 and authority<>255', $character);
if ($num_rows == -1)
{
$db->GetError(__file__, __line__);
$this->m_ccError = Template::GetLangVar('DB_ERROR');
return false;
}
else if ($num_rows == 0)
{
$this->m_ccError = Template::GetLangVar('CC_RECENT_TRANSFER');
return false;
}
$row = $db->doRead();
$oldRace = $row['Race'];
$oldClass = $row['Class'];
$newRace = intval($_POST['race']);
$newClass = intval($_POST['class']);
$pCT = new ClassTransfer($nation, $oldClass, $oldRace, $newClass, $newRace);
if (!($res = $pCT->canChangeClass()))
{
$this->m_ccError = $pCT->GetError(__file__, __line__);
return false;
}
$newClass = $res[0];
$newRace = $res[1];
$free = $row['Points'] + $row['Strong'] + $row['Sta'] + $row['Dex'] + $row['Intel'] + $row['Cha'];
$newStats = $pCT->getStarterStats($newClass, $newRace);
for ($i = 0; $i < 5; $i++)
$free -= $newStats[$i];
if ($free > 255)
{
$_SESSION['bClassTransfer'] = true;
$_SESSION['strUserId'] = $character;
$_SESSION['bNewRace'] = $newRace;
$_SESSION['bNewClass'] = $newClass;
$_SESSION['bStrong'] = $newStats[KO_STR];
$_SESSION['bStamina'] = $newStats[KO_STA];
$_SESSION['bDexterity'] = $newStats[KO_DEX];
$_SESSION['bIntelligence'] = $newStats[KO_INT];
$_SESSION['bCharisma'] = $newStats[KO_CHA];
$_SESSION['bAvailable'] = $free;
$this->m_bSelectPoints = true;
return false;
}
$newStats[5] = $free;
return $this->doExecuteClassChangeD($character, $newClass, $newRace, $newStats);
}
我試過多種方法,但沒有成功。我如何實現這一目標?
我有點困惑。有沒有可能在pastebin.com上上傳編輯後的功能,以便我們看看它應該如何查找?我真的很感激。我們可以從我的函數中的第一個查詢中使用'$ _SESSION ['strAccountID']' – oLdPkj
你已經有了你需要做的事情的基礎。創建我上面寫的SQL語句,並使用與您已經使用的代碼完全相同的代碼(如果num_rows> 0)...如果保費...做的事情繼續做你現在正在做的事情。 –
我明白,我很欣賞它,但我只是不想搞亂它,這就是爲什麼。我不知道如何連接它們以確保其餘部分將被執行。 – oLdPkj