Add item/inventory code
parent
e9a0695462
commit
30dacbd85c
@ -1,2 +1,54 @@
|
||||
<?php
|
||||
|
||||
require 'required.php';
|
||||
require 'onlyloggedin.php';
|
||||
|
||||
/**
|
||||
* https://www.sitepoint.com/php-random-number-generator/
|
||||
*/
|
||||
class Random {
|
||||
|
||||
// random seed
|
||||
private static $RSeed = 0;
|
||||
|
||||
// set seed
|
||||
public static function seed($s = 0) {
|
||||
self::$RSeed = abs(intval($s)) % 9999999 + 1;
|
||||
self::num();
|
||||
}
|
||||
|
||||
// generate random number
|
||||
public static function num($min = 0, $max = 9999999) {
|
||||
if (self::$RSeed == 0) {
|
||||
self::seed(mt_rand());
|
||||
}
|
||||
self::$RSeed = (self::$RSeed * 125) % 2796203;
|
||||
return self::$RSeed % ($max - $min + 1) + $min;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$origcode = $VARS['code'];
|
||||
|
||||
if (is_empty($origcode)) {
|
||||
sendError("Bad code!", true);
|
||||
}
|
||||
|
||||
if ($database->has('claimedcodes', ["AND" => ['code' => $origcode, 'playeruuid' => $_SESSION['uuid']]])) {
|
||||
sendError("You've already found this code!", true);
|
||||
}
|
||||
|
||||
$codearray = str_split($origcode);
|
||||
|
||||
$codeint = 0;
|
||||
foreach ($codearray as $chr) {
|
||||
$codeint += ord($chr);
|
||||
}
|
||||
|
||||
Random::seed($codeint);
|
||||
$itemcode = Random::num(1, 6);
|
||||
|
||||
$database->insert('inventory', ['playeruuid' => $_SESSION['uuid'], 'itemid' => $itemcode]);
|
||||
$database->insert('claimedcodes', ['code' => $origcode, 'playeruuid' => $_SESSION['uuid']]);
|
||||
$itemname = $database->select('items', ['itemname'], ['itemid' => $itemcode])[0]['itemname'];
|
||||
sendOK($itemname);
|
||||
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
require 'required.php';
|
||||
require 'onlyloggedin.php';
|
||||
|
||||
$itemuuid = $VARS['itemuuid'];
|
||||
|
||||
if (is_empty($itemuuid) || !is_numeric($itemuuid) || !$database->has('inventory', ["AND" => ['itemuuid' => $itemuuid, 'playeruuid' => $_SESSION['uuid']]])) {
|
||||
sendError("Invalid itemuuid.", true);
|
||||
}
|
||||
|
||||
$item = $database->select(
|
||||
'items', [
|
||||
'[>]inventory' => ['itemid' => 'itemid'],
|
||||
'[>]itemclasses' => ['classid', 'classid']
|
||||
], [
|
||||
'inventory.itemuuid',
|
||||
'inventory.itemid',
|
||||
'inventory.itemjson',
|
||||
'items.itemname',
|
||||
'items.itemcode',
|
||||
'itemclasses.classid',
|
||||
'itemclasses.classname'
|
||||
], [
|
||||
"AND" => [
|
||||
'itemuuid' => $itemuuid,
|
||||
'playeruuid' => $_SESSION['uuid']
|
||||
]
|
||||
]
|
||||
)[0];
|
||||
|
||||
$player = $database->select('players', ['energy', 'maxenergy'], ['uuid' => $_SESSION['uuid']])[0];
|
||||
|
||||
|
||||
$item['itemcode'] = json_decode($item['itemcode'], true);
|
||||
switch ($item['classname']) {
|
||||
case "healmagic":
|
||||
// Only use item if it will do something
|
||||
if ($player['energy'] < $player['maxenergy']) {
|
||||
$newhp = $player['energy'] + $item['itemcode']['amount'];
|
||||
if ($newhp > $player['maxenergy']) {
|
||||
$newhp = $player['maxenergy'];
|
||||
}
|
||||
$database->update('players', ['energy' => $newhp], ['uuid' => $_SESSION['uuid']]);
|
||||
if ($item['itemcode']['uses'] == 1) {
|
||||
$database->delete('inventory', ["AND" => ['itemuuid' => $itemuuid, 'playeruuid' => $_SESSION['uuid']]]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
sendOK();
|
||||
//echo json_encode($item);
|
Reference in New Issue