Author Topic: Steal Credits not working  (Read 2357 times)

Offline christinaosburn

Steal Credits not working
« on: February 20, 2008, 02:22:58 pm »
Can you please give me the file for steal.php?  This is what I have but it is not working: 

1.  all tries are unsuccessful
2.  some of the users are not found
3.  when you search a user and click on their name, it does not populate the field

Any help would be appreciated.  Thanks!  Christina

Here is the code I have: 

<?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] = 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 'User\'s name: <input type="text" name="username" size="50" />
            <a href="' . $scripturl . '?action=findmember;input=stealfrom;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 />
            New title: <input type="text" name="newtitle" size="50" />';
   }

   function onUse()
   {
      global $db_prefix, $ID_MEMBER, $item_info;
      
      // Check some inputs
      if (!isset($_POST['stealfrom']) || $_POST['stealfrom'] == '') die('ERROR: Please enter a membername 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(0, 100);

      // 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 member doesn't exist
         if (mysql_num_rows($result) == 0)
            die('ERROR: The specified member 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
      {
         // 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__);
         return 'Steal <b>unsuccessful!</b> You Karma is now reduced by 10!';
      }
   }
}

?>

Offline christinaosburn

Re: Steal Credits not working
« Reply #1 on: February 21, 2008, 08:58:44 am »
Anyone know how to help me?   :-[

Offline seraphikah

Re: Steal Credits not working
« Reply #2 on: February 21, 2008, 01:03:39 pm »
Yep! Same problem for me! :D