Author Topic: Steal money and Random money bugs?  (Read 3427 times)

Offline City Builder

Steal money and Random money bugs?
« on: May 18, 2008, 10:33:35 am »
Hello,
We are running the latest SMFShop version with SMF 1.1.5

I have added an item (the random money item) and created the amounts of -1000 and 1000  A user uses the item and loses 575 credits.  But he doesn't have enough credits in his pocket to pay that amount so the system tells him that he doesn't have enough money in his pocket to pay it so it came out of his bank account.  The problem here is that he didn't have any money in his bank account so it didn't take anything.  I think it should have removed what ever pocket credits he had and then created a negative amount for the remaining balance that he would have to regain by posting on the forum.

The other problem is the Steal Money item.  When we use this item these are the problems:

1. We use the name finder and input a name, the username is found.  When we click on it, it doesn't transfer to the main page.
2. We then just copy and paste it into the main page on whom we wish to steal the money from, when we hit submit, we are told that the user entered does not exist when we know that he does.

Can anybody help me to fix these two bugs so that it works correctly?

Other than that, it's a great fun system for our users for silly things like our Pet Rock Limited edition collection that our users try to collect each one, we make them limited editions to entice them into trading them later on for more credits than they paid and it works pretty good so far.

So anyway, if anybody can help me to fix the two supposed bugs, I'd sure appreciate it as the smfshop doesn't have a whole lot of really fun items like the steal credits one so it would be nice if we could actually get it to function as well as the random money putting the user into the negative amounts else they just keep buying more 1000 credit random money items when they know they don't have enough to pay if they lose.

Thanks for your time.

Offline slackerpunk

Re: Steal money and Random money bugs?
« Reply #1 on: July 07, 2008, 01:01:34 pm »
I am having the same problem running 1.1.5 and TP 0.9.8

Offline arcanine

Re: Steal money and Random money bugs?
« Reply #2 on: July 14, 2008, 04:55:04 am »
hi there regarding your first question I don't really know

however I had the same problem with the steal money item
I can't remember where I found the solution it was in the this forum
somewhere but regardless heres a copy of my steal.php
from sources/shop/item
simply open notepad copy this code
into it and save it as
steal.php and upload it to your sources/shop/item dir

Code: [Select]
<?php
/**********************************************************************************
* SMFShop item                                                                    *
***********************************************************************************
* SMFShop: Shop MOD for Simple Machines Forum                                     *
* =============================================================================== *
* Software Version:           SMFShop 3.0 (Build 12)                              *
* $Date:: 2007-01-18 19:26:55 +1100 (Thu, 18 Jan 2007)                          $ *
* $Id:: Steal.php 79 2007-01-18 08:26:55Z daniel15                              $ *
* Software by:                DanSoft Australia (http://www.dansoftaustralia.net/)*
* 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] = 100;
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 
$db_prefix$ID_MEMBER$item_info;

// 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(0100);

// If successful
if ($try $item_info[1])
{

// Get stealee's (person we're stealing from) money count
$result db_query("
SELECT money
FROM 
{$db_prefix}members
WHERE memberName = '
{$user}'"__FILE____LINE__);

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

$row mysql_fetch_assoc($result);

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

// Take this money away from stealee...
$result db_query("
UPDATE 
{$db_prefix}members
SET money = money - 
{$steal_amount}
WHERE memberName = '
{$user}'
LIMIT 1"
__FILE____LINE__);
//...and give to stealer (robber)
$result db_query("
UPDATE 
{$db_prefix}members
SET money = money + 
{$steal_amount}
WHERE ID_MEMBER = 
{$ID_MEMBER}
LIMIT 1"
__FILE____LINE__);

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
{return 
'Steal unsuccessful please try again';}
}
}

?>



In theory that should give you a working steal item 

Offline bfeo

Re: Steal money and Random money bugs?
« Reply #3 on: August 24, 2008, 01:00:00 am »
What of the punishment for failing? 

My forums do not use Karma, so it doesn't have a big enough sting.  Is there a way to perhaps change the karma lost to random amount of credits, say between 0-500, lost to the person you attempted to steal from?

Offline Celdric

Re: Steal money and Random money bugs?
« Reply #4 on: October 05, 2008, 06:42:08 am »
The code doesn't work for me. I don't know why. However, I made the changes which are suggested here and now the Steal item works.

http://www.daniel15.com/forum/index.php/topic,559.0.html