Author Topic: Steal Item - Always steals 1  (Read 2546 times)

Offline greendude120

Steal Item - Always steals 1
« on: October 09, 2012, 10:12:18 am »
I wanted to test the Steal item so I set the percentage to 95% and tried it on a member. It was succesful but only gave me 0. I tried it again and it was 0 again.
I changed the 0 to a 1 in the code and now i only steal 1 every time. Why do I always get the minimum gold?

My steal.php
Code: [Select]
<?php
/**********************************************************************************
* SMFShop item                                                                    *
***********************************************************************************
* SMFShop: Shop MOD for Simple Machines Forum                                     *
* =============================================================================== *
* Software Version:           SMFShop 3.1 (Build 14)                              *
* Software by:                DanSoft Australia (http://www.dansoftaustralia.net/)*
* Copyright 2009 by:          vbgamer45 (http://www.smfhacks.com)                 *
* Copyright 2005-2007 by:     DanSoft Australia (http://www.dansoftaustralia.net/)*
* Support, News, Updates at:  http://www.dansoftaustralia.net/                    *
*                                                                                 *
* Forum software by:          Simple Machines (http://www.simplemachines.org)     *
* Copyright 2006-2007 by:     Simple Machines LLC (http://www.simplemachines.org) *
*           2001-2006 by:     Lewis Media (http://www.lewismedia.com)             *
***********************************************************************************
* This program is free software; you may redistribute it and/or modify it under   *
* the terms of the provided license as published by Simple Machines LLC.          *
*                                                                                 *
* This program is distributed in the hope that it is and will be useful, but      *
* WITHOUT ANY WARRANTIES; without even any implied warranty of MERCHANTABILITY    *
* or FITNESS FOR A PARTICULAR PURPOSE.                                            *
*                                                                                 *
* See the "license.txt" file for details of the Simple Machines license.          *
* The latest version of the license can always be found at                        *
* http://www.simplemachines.org.                                                  *
***********************************************************************************/

if (!defined('SMF'))
die('Hacking attempt...');

class 
item_Steal extends itemTemplate
{
function getItemDetails()
{
$this->authorName 'Daniel15';
$this->authorWeb 'http://www.dansoftaustralia.net/';
$this->authorEmail 'dansoft@dansoftaustralia.net';

$this->name 'Steal Credits';
$this->desc 'Try to steal credits from another member!';
$this->price 50;

$this->require_input true;
$this->can_use_item true;
}

function getAddInput()
{
global $item_info;
if ($item_info[1] == 0$item_info[1] = 40;
return 'For steal, user <b>does NOT need to, and shouldn\'t</b> know the probability! It\'s more fun this way :-)<br />Probability of successful steal: <input type="text" name="info1" value="' $item_info[1]  . '" />%';
}

function getUseInput()
{
global $context$scripturl$settings$txt;
return 'Steal From: <input type="text" name="stealfrom" id="membername" size="50" />
 <a href="' 
$scripturl '?action=findmember;input=membername;quote=0;sesc=' $context['session_id'] . '" onclick="return reqWin(this.href, 350, 400);"><img src="' $settings['images_url'] . '/icons/assist.gif" border="0" alt="' $txt['find_members'] . '" /> Find Member</a><br />';
}

function onUse()
{
global $context$item_info$smcFunc;

// Check some inputs
if (!isset($_POST['stealfrom']) || $_POST['stealfrom'] == ''
die('ERROR: Please enter a username to steal from!');

// This code from PersonalMessage.php5. It trims the " characters off the membername posted, 
// and then puts all names into an array
$_POST['stealfrom'] = strtr($_POST['stealfrom'], array('\\"' => '"'));
 preg_match_all('~"([^"]+)"~'$_POST['stealfrom'], $matches);
 $userArray array_unique(array_merge($matches[1], explode(','preg_replace('~"([^"]+)"~'''$_POST['stealfrom']))));

// We only want the first memberName found
$user $userArray[0];

// Get a random number between 0 and 100
$try mt_rand(1100);

// If successful
if ($try $item_info[1])
{
// Get stealee's (person we're stealing from) money count
$result $smcFunc['db_query']('''
SELECT money
FROM {db_prefix}members
WHERE member_name = {string:name}'
,
array(
'name' => $user,
));

// If user doesn't exist
if ($smcFunc['db_num_rows']($result) == 0)
die('ERROR: The specified user doesn\'t exist!');

$row $smcFunc['db_fetch_assoc']($result);

// Get random amount between 0 and amount of money stealee has
$steal_amount mt_rand(1$row['money']);

// Take this money away from stealee...
$result $smcFunc['db_query'](''"
UPDATE {db_prefix}members
SET money = money - {int:steal_amount}
WHERE member_name = {string:member_name}
LIMIT 1"
,
array(
'steal_amount' => $steal_amount,
'member_name' => $user,
));
cache_put_data('user_settings-' $usernull60);
//...and give to stealer (robber)
$result $smcFunc['db_query'](''"
UPDATE {db_prefix}members
SET money = money + {int:steal_amount}
WHERE id_member = {int:id_member}
LIMIT 1"
,
array(
'steal_amount' => $steal_amount,
'id_member' => $context['user']['id'],
));
cache_put_data('user_settings-' $context['user']['id'], null60);
if ($steal_amount 50
return 'Steal successful, although you only stole ' $steal_amount '!';
else
return 'Successfully stole ' $steal_amount ' from ' $user '! It\'s their fault they don\'t have their money in the bank!';
}
else
{
// If reducing Karma doesn't work, replace
 // 'karmaBad = karmaBad + 10' with 'karmaGood = karmaGood - 10'
 $result db_query("
 UPDATE 
{$db_prefix}members
 SET karmaBad = karmaBad + 10
 WHERE ID_MEMBER = 
{$ID_MEMBER}"__FILE____LINE__);
array(
'id_member' => $context['user']['id'],
);
   return 'Steal <b>unsuccessful!</b> You reputation is now reduced by 1!';
}
}
}

?>


Offline Quazty

Re: Steal Item - Always steals 1
« Reply #1 on: November 10, 2012, 09:15:22 pm »
bulle