本文整理汇总了PHP中UserClass::PaymentQuery方法的典型用法代码示例。如果您正苦于以下问题:PHP UserClass::PaymentQuery方法的具体用法?PHP UserClass::PaymentQuery怎么用?PHP UserClass::PaymentQuery使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserClass
的用法示例。
在下文中一共展示了UserClass::PaymentQuery方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: SellShop
public static function SellShop($shopId, $qty)
{
global $config, $user;
// has canSell permissions
if (!$user->hasPerms('canSell')) {
$_SESSION['error'][] = 'You don\'t have permission to sell.';
return FALSE;
}
// sanitize args
$shopId = (int) $shopId;
$qty = (int) $qty;
if ($shopId < 1) {
$_SESSION['error'][] = 'Invalid server shop id!';
return FALSE;
}
if ($qty < 1) {
$_SESSION['error'][] = 'Invalid qty!';
return FALSE;
}
// query shop
$shop = QueryAuctions::QuerySingleShop($shopId);
if (!$shop) {
$_SESSION['error'][] = 'Shop not found!';
return FALSE;
}
$shopItem = $shop->getItem();
if (!$shopItem) {
$_SESSION['error'][] = 'Failed to get item info for server shop!';
return FALSE;
}
// query player items
$Items = QueryItems::QueryInventory($user->getId(), $shopItem);
if (!$Items) {
$_SESSION['error'][] = 'Failed to get item from inventory!';
return FALSE;
}
// shop price
$shopPrice = $shop->getPriceSell();
if ($shopPrice <= 0.0) {
$_SESSION['error'][] = 'Cannot sell to this shop!';
return FALSE;
}
// sell multiple stacks
$hasFound = FALSE;
$soldCount = 0;
while (TRUE) {
$Item = $Items->getNext();
// no more stacks found
if (!$Item) {
break;
}
// remove empty stack
if ($Item->getItemQty() <= 0) {
ItemFuncs::RemoveItem($Item->getTableRowId(), -1);
continue;
}
// sold enough
if ($soldCount >= $qty) {
break;
}
$hasFound = TRUE;
// sell partial stack
if ($qty - $soldCount < $Item->getItemQty()) {
$sellQty = $qty - $soldCount;
$soldCount += $sellQty;
if (!ItemFuncs::RemoveItem($Item->getTableRowId(), $sellQty)) {
$_SESSION['error'][] = 'Failed to remove sold item!';
return FALSE;
}
// sell full stack
} else {
$soldCount += $Item->getItemQty();
if (!ItemFuncs::RemoveItem($Item->getTableRowId(), -1)) {
$_SESSION['error'][] = 'Failed to remove sold item!';
return FALSE;
}
}
}
// no items sold
if (!$hasFound || $soldCount <= 0) {
$_SESSION['error'][] = 'You don\'t have any of this item!';
return FALSE;
}
// price for sold items
$priceTotal = $shopPrice * (double) $soldCount;
// success
$_SESSION['success'][] = 'Sold ' . $soldCount . ' items for ' . SettingsClass::getString('Currency Prefix') . $priceTotal . SettingsClass::getString('Currency Postfix');
// make payment to seller
UserClass::PaymentQuery($user->getName(), $user->getUUID(), $priceTotal);
// sold less than requested
if ($qty > $soldCount) {
$_SESSION['error'][] = 'You don\'t have that many!';
}
// add sale log
$Item->setItemQty($soldCount);
LogSales::addLog(LogSales::LOG_SALE, LogSales::SALE_SERVER, NULL, $user->getId(), $Item, $priceTotal, FALSE, '', FALSE);
return TRUE;
}