nanduzenho
Member
Good morning, I have this error, could someone help me?
Fatal error: Uncaught Error: Call to undefined method Player::getAc() in C:\xampp\htdocs\pages\shopguild.php:1749 Stack trace: #0 C:\xampp\htdocs\system\load.page.php(7): include() #1 C:\xampp\htdocs\index.php(43): include_once('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\pages\shopguild.php on line 1749
I managed to fix it, now there's another error. I make the purchase at the shopguild, but the item is in the database and does not appear in the char...
shopguild.lua:

Fatal error: Uncaught Error: Call to undefined method Player::getAc() in C:\xampp\htdocs\pages\shopguild.php:1749 Stack trace: #0 C:\xampp\htdocs\system\load.page.php(7): include() #1 C:\xampp\htdocs\index.php(43): include_once('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\pages\shopguild.php on line 1749
PHP:
if($buy_player->isLoaded()) {
$buy_player_account = $buy_player->getAc(); <====== THIS LINE IS 1749 <=========
if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes') {
if($buy_offer['type'] == 'pacc') {
$player_premdays = $buy_player_account->getCustomField('premdays');
$player_lastlogin = $buy_player_account->getCustomField('lastday');
$save_transaction = 'INSERT INTO '.$SQL->tableName('z_shopguild_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');';
$SQL->query($save_transaction);
$nomedoComprador = $buy_player_account->getName();
if($player_premdays > 0){
$newVipDays = $player_premdays + ($buy_offer['days']);
$merda = $SQL->query("UPDATE `accounts` SET `premdays` = '$newVipDays' WHERE `name` = '$nomedoComprador'");
}else{
$newVipDays2 = ($buy_offer['days']);
$merda = $SQL->query("UPDATE `accounts` SET `premdays` = '$newVipDays2' WHERE `name` = '$nomedoComprador'");
}
Post automatically merged:
I managed to fix it, now there's another error. I make the purchase at the shopguild, but the item is in the database and does not appear in the char...
shopguild.lua:
Lua:
- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 18
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
local result_plr = db.storeQuery("SELECT * FROM z_ots_guildcomunication")
if(result_plr ~= false) then
repeat
local id = tonumber(result.getDataInt(result_plr, "id"))
local action = tostring(result.getDataString(result_plr, "action"))
local delete = tonumber(result.getDataInt(result_plr, "delete_it"))
local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))
if(cid) then
local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))
local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))
local container_id = tonumber(result.getDataInt(result_plr, "param3"))
local container_count = tonumber(result.getDataInt(result_plr, "param4"))
local add_item_type = tostring(result.getDataString(result_plr, "param5"))
local add_item_name = tostring(result.getDataString(result_plr, "param6"))
local received_item = 0
local full_weight = 0
if(add_item_type == 'container') then
container_weight = getItemWeight(container_id, 1)
if(isItemRune(itemtogive_id)) then
items_weight = container_count * getItemWeight(itemtogive_id, 1)
else
items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
end
full_weight = items_weight + container_weight
else
full_weight = getItemWeight(itemtogive_id, itemtogive_count)
if(isItemRune(itemtogive_id)) then
full_weight = getItemWeight(itemtogive_id, 1)
else
full_weight = getItemWeight(itemtogive_id, itemtogive_count)
end
end
local free_cap = getPlayerFreeCap(cid)
if(full_weight <= free_cap) then
if(add_item_type == 'container') then
local new_container = doCreateItemEx(container_id, 1)
local iter = 0
while(iter ~= container_count) do
doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
iter = iter + 1
end
received_item = doPlayerAddItemEx(cid, new_container)
else
local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
received_item = doPlayerAddItemEx(cid, new_item)
end
if(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
db.query("DELETE FROM `z_ots_guildcomunication` WHERE `id` = " .. id .. ";")
db.query("UPDATE `z_shopguild_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
else
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
end
else
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '..SQL_interval ..' seconds to get it.')
end
end
until not result.next(result_plr)
result.free(result_plr)
end
return true
end

Last edited: