Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 04/05/2011 in all areas

  1. 11 points
    It's been a very very long time since MWG was online, however I'm excited to announce we're back. For good! The demise of MWG was originally down to an attack on the McCodes server MWG was hosted on. There was then sadly no drive to get it back online, until recently. I'm sure there are a few questions that I hope to address in this post. Ownership I, Dave Macaulay, own the majority of MakeWebGames (including source code, database, domain etc) whilst McCodes (Kunal and Dabomstew) retain a small portion owned by the McCodes company itself. This allows me to have full control over the forums, direction and leadership. New Domain: makewebgames.io We've moved from the original makewebgames.com domain over to our new makewebgames.io domain. This is partly due to someone forgetting to renew the domain before it expired, thanks Kunal! New Software We've ditched the horrendous vBulletin 5 and migrated to IPS (or IPB depending on how old you are). I hope this shows my commitment to reviving the forum as those licences aren't cheap. We've ensured to migrate all existing member accounts and content from the legacy instance over, so all the great content you posted when you were younger is retained for you to laugh at. McCodes & MWG As with the above you have probably assumed that we will retain some ties with McCodes, it was the most popular game engine on this forum and it's the topic with the most posts. Staff If activity on the forum picks up I will be looking to recruit staff members to help run and manage the forum on a day to day basis. Spam When MWG was last live there was a huge spam problem, we were being barraged by spam on a day to day basis and it was a real challenge for the moderation team to keep under control. Luckily the new forum software should enable us to stay spam free for the foreseeable future. If you have any further questions please respond to this post and I'll be glad to answer them! Welcome back.
  2. 9 points
    I remember back when I started up my first few games how challenging it was to find an affordable, easy and game orientated host that would work flawlessly with my game engine of choice. Well today MakeWebGames wants to change that. We've recently migrated to our own server which we're now able to offer affordable and fast shared hosting from! All of our hosting plans come with the following as standard: SSD Storage Unlimited Domains Unlimited Bandwidth Unlimited Email Accounts Unlimited FTP Accounts Unlimited MySQL databases Choice in PHP versions: 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3 We're committed to install new PHP versions as they become available, we're also happy to install any additional packages your site requires within reason. 1 Minute Crons SSH Access Ability to SSH into your account and perform tasks as you see fit from a terminal session. CGI Access Choice of FREE makeweb.games sub-domain Free SSL Full cPanel Access Discord and Ticket support Instant Provisioning We're committed to ensuring your game or site can run effectively on our hosting, to this effect we've setup demos of all the popular game engines today: MCCodes v2: http://mccodes.makeweb.games/ demo / demo Gangster Legends v2: https://glv2.makeweb.games/ [email protected] / demo GRPG v1: https://grpgv1.makeweb.games/ demo / demo GRPG v2: https://grpgv2.makeweb.games/ demo / demo If you have a game engine you'd like to confirm working on our hosting please contact myself and we'll certainly create a demo site. We offer two different packages both available in our store right now for purchase, both more than capable of hosting your game project: 1 GB cPanel Hosting - $0.95 / month incl. VAT > Purchase 1 GB Hosting 5 GB cPanel Hosting - $2.95 / month incl. VAT > Purchase 5 GB Hosting For a limited time only receive 2 months free when signing up for 12 months!
  3. 8 points
    Bonjour, Wouldn't be proper of me to not pester Dave to give me access to my old account and make a post now, would it? Some of you know me, some of you don't. If you do know me, it's probably for my tendency to call people out on their shit. Still doing a lot of work with Laravel, my partner in crime is still Zeddicus (I know he's reading this, love you daddy ❤️) and I met @sniko in real life, 1/10 would not recommend. Also I'd like to state on the record that Magento is the Donald Trump of eCommerce solutions. Have at me.
  4. 7 points
    It's great seeing so many of you post new modifications and modules for Gangster Legends on the marketplace here on MWG. To celebrate how great the work that @Dayo and you all have done on this engine and how much traction this engine has gotten over the recent months I am starting a competition for the best new extension for Gangster Legends! The prize for the best extension is $50 in cold hard virtual cash, to your preferred payment method, I'll pay the fees! Competition Terms: The module must be a new feature not currently implemented in the core of Gangster Legends or by another GL module within the Marketplace. Cannot be an existing module that was previously released prior to this competition, we wanna see new stuff! The module must be posted onto the Marketplace for at least $10.00 or more by the deadline (this means you're going to make more than $50!). Deadline is 1 month from now, 20th May 2020. Judging: The winner will be determined by the combination of a community poll and the judges, whom are myself and @Dayo (seems fitting right?!). We will judge every extension on the following points: Uniqueness of idea - 35% Execution of idea - 35% Quality of code - 10% Quality of user experience - 20% Entry: Every member of the forum is allowed 1 entry, to enter you must submit the module to the marketplace and respond to this thread with a link to which module you would like to enter. As mentioned above entries will be stopped on the 20th May 2020 and a winner will be decided by the 25th May 2020, with payment to follow immediately.
  5. 7 points
    I hope you all are doing fine during the pandemic. Since I am not in any financial issues, I wanted to help the community a bit, so I bought all the GL modules I didnt already own. Besides that I might be able to pay for some development hours if any of you are in financial issues, it requires that you are familiar with GL modules. Also a note: Please make it possible to buy more modules at once, instead of having to buy each of them individually. Best wishes, Mark
  6. 6 points

    Version 1.0

    This module will let you add awards into your game that auto credit to users. Features users are able to track their percentage of each award. give players rewards for gaining awards. you can upload images for the awards from admin panel. premade awards (gang, travel, crimes, busts) Awards are shown on each users profile for the ones they have earned. Hidden award feature that allows the user to gain an award but not know how to achieve it (descriptions etc are hidden) How to Install Open up your game Go to the admin Panel Go to Modules & Themes Open the Module Manager Click on Install Module Upload the ZIP file Need Help? Discord: URB4NZ#6770

    $15.00

  7. 6 points

    Version 1.2.0

    The last chat your game will ever need, packed with features to drastically improve player communication in your game. Features: Configurable channels based on user level & location Private messages between users Chat button included on users profiles to easily open a chat Gang chat rooms (if Gang module is installed) Responsive friendly Emoji support Ability to minimize all chats and close private chats between users In context admin controls to: Remove messages Ban users from chat Admin GUI Manage settings, channels and banned users See statistics from the chat application Ability to disable or enable private messages and gang chat No edits required, fully installable via the GLv2 admin panel Future Features (if there is demand): Emoji keyboard Shortcut commands in chat for admin and users /ban etc Ability to close channels, not just private messages User chat settings Your requests here! Support: As this is a new module I am committed to fixing all bugs found in existing functionality. Please PM me with the issue and I'll certainly help you to fix it. Demo: I've installed the module upon the MakeWebGames GLv2 demo site: http://glv2.makeweb.games/ Username: [email protected] Password: demo I'd recommend registering a new user so you can chat with others.

    $30.00

  8. 6 points
    Lay off the drugs dude.
  9. 6 points
  10. 6 points
    Prison Struggle - Free to Play MMORPG LockdownGaming (myself & @Aaron_) are proud to announce our acquisition of the original Prison Struggle game which has been re-released under its new name Prison Struggle Classic. Sign up today for free at https://prisonstruggle.com/
  11. 6 points
    We're super excited to announce that @urbanmafia's entry of Automatic Awards System is the winner of the $50 grand prize!
  12. 6 points
    Wheres your game? 😠
  13. 6 points
    I recently hired Sniko to do a job for me. We narrowed down the specs of the feature. Negotiated a fair price and he got the job done within a few hours. He maintained constant communication and was extremely professional. He made sure I was 100% satisfied before signing off on the job. I will definitely hire Sniko for future jobs. Highly Satisfied.
  14. 6 points
    I remember this argument from the days of old; so allow me to bring forward a piece of wisdom from that time. It is not for you to decide whether the author's asking price is too much or too little. All you can do is decide whether it's too much or too little for you. Let's turn the tables for a moment. Let's say you've worked for hours (even days!) on something you intend to release. At the completion of that project, you've got not only the time you spent on writing it, but the time and effort that went into learning how to do it. You (the author) may decide you should be financially rewarded by whomever wishes to use the result of your time and effort. Now, what if I told you that the price you put on your product is unfair or unacceptable? What if you were in a superstore? Would you tell the cash registrar that the price on the item you've already picked up is too much, or would you realise the situation and either pay for it or put it back? Note for future reference: You don't have to like the price of something to respect what went into it. Be mindful, please.
  15. 6 points
    Never coded in my life im a full time grandad now to my beautiful grandaughter Teagan whos approaching 8 month old. Yep its a daunting task starting all over again as a carer but shes worth it.....
  16. 5 points
    Seeing this isn't said quiet enough, I want to begin by thanking all of those who have helped me with my game. You coders are fantastic, and very generous. Our day to give "Thanks" is on Thursday in the month of November its always falls under the fourth Thursday. So my "Thanks" Is to you guys for helping me get my game running... I trust many of you in which you haven't shown me an ounce of distrust and that is what i want to say thank you... and I also want to wish everyone a Happy Thanksgiving to the US. Thank you again Karma/Laura
  17. 5 points
  18. 5 points
    this post is to show my current work or what i finished as some ppl dont know me: i do both UI / UX i worked with MCC for years it even affected my codding habbits 😄 in this post i will be posting screenshot from time to time. lets start with my MCC v1 project (right now its postponed): now lets talk GL for a sec. this my main theme (Dark Streets theme) free version [link] : i started this design just for fun but its comming together better than my main theme (Dark Streets) all this beauty was in just some hours , currently naming it YAKUZA Theme (dont ask my why i name them like this idont even know😄) i sold the theme + code source for WiseCrime well this is it for now. you need some thing PM here or in discord (ID: PHPkiller#5602)
  19. 5 points
  20. 5 points
    Ok so back before MWG closed I had looked around for a trade system and couldn't find one, so I built one to suit my needs. So here it is SQL For Trades CREATE TABLE IF NOT EXISTS `trades` ( `trID` int(11) NOT NULL AUTO_INCREMENT, `trFROM` int(11) unsigned NOT NULL DEFAULT '0', `trUSER` int(11) NOT NULL DEFAULT '0', `trMONEY` bigint(22) NOT NULL DEFAULT '0', `trITEM` varchar(70) NOT NULL DEFAULT '', `trQTY` varchar(70) NOT NULL DEFAULT '', `trTAK` tinyint(1) NOT NULL, `trACC` tinyint(1) DEFAULT '0', `trRMONEY` bigint(22) NOT NULL DEFAULT '0', `trRITEM` varchar(70) NOT NULL DEFAULT '', `trRQTY` varchar(70) NOT NULL DEFAULT '', `trRTAK` tinyint(1) NOT NULL, `trRACC` tinyint(1) DEFAULT '0', PRIMARY KEY (`trID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Sql for Logs CREATE TABLE IF NOT EXISTS `trades_logs` ( `trID` int(11) NOT NULL AUTO_INCREMENT, `trFROM` int(11) UNSIGNED NOT NULL DEFAULT 0, `trUSER` int(11) NOT NULL DEFAULT 0, `trGOLD` bigint(22) NOT NULL DEFAULT 0, `trITEM` varchar(70) NOT NULL DEFAULT '', `trQTY` varchar(70) NOT NULL DEFAULT '', `trTAK` varchar(15) NOT NULL, `trACC` tinyint(1) DEFAULT 0, `trRGOLD` bigint(22) NOT NULL DEFAULT 0, `trRITEM` varchar(70) NOT NULL DEFAULT '', `trRQTY` varchar(70) NOT NULL DEFAULT '', `trRTAK` varchar(15) NOT NULL, `trRACC` tinyint(1) DEFAULT 0, `time_added` timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (`trID`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; Create a file called trade.php if you are using Cronus's mod for the armory uncomment the part about check_loaned. Also if your global_func doesn't have an inv_dropdown I created one <?php require_once __DIR__.'/globals.php'; /* * DON'T BE A DICK PUBLIC LICENSE * Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. * * DON'T BE A DICK PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION * * Do whatever you like with the original work, just don't be a dick. * * Being a dick includes - but is not limited to - the following instances: * * 1a. Outright copyright infringement - Don't just copy this and change the name. * 1b. Selling the unmodified original with no work done what-so-ever, that's REALLY being a dick. * 1c. Modifying the original work to contain hidden harmful content. That would make you a PROPER dick. * * If you become rich through modifications, related works/services, or supporting the original work, share the love. Only a dick would make loads off this work and not buy the original works creator(s) a pint. * * Code is provided with no warranty. Using somebody else's code and bitching when it goes wrong makes you a DONKEY dick. Fix the problem yourself. A non-dick would submit the fix back. */?> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#btnAdd').click(function() { var num = $('.clonedInputOne').length; var numTwo = $('.clonedInputTwo').length; var newNum = new Number(num + 1); var newElem = $('#input' + num).clone().attr('id', 'input' + newNum); var newElemTwo = $('#inputTwo' + numTwo).clone().attr('id', 'inputTwo' + newNum); newElem.children(':first').attr('id', 'item' + newNum).attr('name', 'item' + newNum); newElemTwo.children(':first').attr('id', 'qty' + newNum).attr('name', 'qty' + newNum); $('#input' + num).after(newElem); $('#inputTwo' + numTwo).after(newElemTwo); $('#btnDel').attr('disabled',''); if (newNum == 10) $('#btnAdd').attr('disabled','disabled'); }); $('#btnDel').click(function() { var num = $('.clonedInputTwo').length; $('#input' + num).remove(); $('#inputTwo' + num).remove(); $('#btnAdd').attr('disabled',''); if (num-1 == 1) $('#btnDel').attr('disabled','disabled'); }); $('#btnDel').attr('disabled','disabled'); }); </script> <?php echo " <h2>Trading Center</h2> "; $_GET['action'] = array_key_exists('action', $_GET) ? $_GET['action'] : null; switch ($_GET['action']) { default: def(); break; case 'accept': accept(); break; case 'add': add(); break; case 'view': view_trade(); break; case 'create': begin_trade(); break; case 'decline': decline_trade(); break; } function def() { global $db, $ir, $c, $userid, $h; $_GET['ID'] = array_key_exists('ID', $_GET) && ctype_digit($_GET['ID']) ? $_GET['ID'] : 0; $r = $db->query("SELECT * FROM trades WHERE trFROM = $userid OR trUSER = $userid ORDER by trID ASC"); if (0 == $db->num_rows($r)) { echo " No trade boxes opened.<br /><br /><a href='trade.php?action=create'><button>Create Trade</button></a>"; } else { echo " <table> <tr> <th>Trade ID</th> <th>Trading With</th> <th>See Trade</th> </tr>"; while ($d = $db->fetch_row($r)) { if ($d['trUSER'] == $userid) { $s = $d['trFROM']; } else { $s = $d['trUSER']; } $s = $db->query("SELECT username,userid FROM users WHERE userid = $s"); $f = $db->fetch_row($s); echo " <tr> <td>{$d['trID']}</td> <td><a href='viewuser.php?u={$f['userid']}'>{$f['username']}[{$f['userid']}]</a></td> <td><a href='trade.php?action=view&ID={$d['trID']}'>View</a></td> </tr>"; } echo "</table><br /><a href='trade.php?action=create'><button>Create New Trade</button></a>"; } } function begin_trade() { global $db, $ir, $c, $userid, $h; if ($_POST) { $_POST['user'] = isset($_POST['user']) && ctype_digit($_POST['user']) ? $_POST['user'] : null; $_POST['money'] = isset($_POST['money']) && ctype_digit($_POST['money']) ? $_POST['money'] : 0; $_POST['item'] = isset($_POST['item']) && preg_match('/^[0-9,]+$/', $_POST['item']) ? $_POST['item'] : null; $_POST['qty'] = isset($_POST['qty']) && ctype_digit($_POST['qty']) ? $_POST['qty'] : null; if (empty($_POST['user'])) { echo"You didn\'t enter a valid player ID."; die($h->endpage()); } if ($_POST['user'] == $userid) { echo"Really? You can\'t trade with yourself."; die($h->endpage()); } $items = $_POST['item']; $qty = $_POST['qty']; $itemCnt = 0; $qtyCnt = 0; for ($i = 1; $i <= 10; ++$i) { if ($_POST['item'.$i] > 0) { ++$itemCnt; $items .= ','.$_POST['item'.$i]; } } for ($i = 1; $i <= 10; ++$i) { $_POST['qty'.$i] = isset($_POST['qty'.$i]) && ctype_digit($_POST['qty'.$i]) ? $_POST['qty'.$i] : null; if ($_POST['qty'.$i] > 0) { ++$qtyCnt; $qty .= ','.$_POST['qty'.$i]; } } if ($itemCnt != $qtyCnt) { echo"Something doesn\'t add up. Please check your inputs"; die($h->endpage()); } $ex = explode(',', $_POST['item']); $qtys = explode(',', $_POST['qty']); $n = 0; if ($itemCnt) { foreach ($ex as $i) { $do_they_have = $db->query("SELECT * FROM `inventory` WHERE `inv_userid`={$userid} AND `inv_itemid`={$i} AND inv_qty>={$qtys[$n]}"); /*check_loaned($i, $qtys[$n]);*/ if (0 == $db->num_rows($do_they_have)) { echo"You do not have the item(s) you are trying to trade."; die($h->endpage()); } ++$n; } } unset($n); $us = $db->query("SELECT userid,username,money FROM users WHERE userid = {$_POST['user']}"); if (0 == $db->num_rows($us)) { echo"You are trying to trade with an invalid user!"; die($h->endpage()); } if ($_POST['money'] > $ir['money']) { echo"You don\'t have enough money to trade!"; die($h->endpage()); } if ($qty <= 0 && $items > 0) { echo"You can\'t trade a zero or a negative amount."; die($h->endpage()); } $ri = $db->fetch_row($us); $db->query("INSERT INTO `trades` (`trID`, `trFROM`, `trUSER`, `trMONEY`, `trITEM`, `trQTY`, `trTAK`, `trACC`, `trRMONEY`, `trRITEM`, `trRQTY`, `trRTAK`, `trRACC`) VALUES (NULL,{$userid},{$_POST['user']},{$_POST['money']},'{$items}','{$qty}',0,0,0,0,0,0,0)"); $db->query("INSERT INTO `trades_logs` (`trID`, `trFROM`, `trUSER`, `trMONEY`, `trITEM`, `trQTY`, `trTAK`, `trACC`, `trRMONEY`, `trRITEM`, `trRQTY`, `trRTAK`, `trRACC`) VALUES (NULL,{$userid},{$_POST['user']},{$_POST['money']},'{$items}','{$qty}','{$ir['lastip']}',0,0,0,0,'{$ri['lastip']}',0)"); $db->query("UPDATE users SET money=money-{$_POST['money']} WHERE userid=$userid"); echo"The trade has been entered! <br> <a href='trade.php'><button>Go Back</button></a>"; exit($h->endpage()); } ?> <form id='trade' method='post'> <fieldset style='width:75%;'><legend>Trading</legend> Userid: <input type='text' name='user' length='7' maxlength='7' value='0' /> <br /> Money: <input type='text' name='money' value='0' /> <br /> <table> <tr> <td><div id='input1' class='clonedInputOne'>Item: <?php echo inv_dropdown($c, 'item'); ?>x</div></td> <td><div id='inputTwo1' class='clonedInputTwo'><input type='text' name='qty' size='2' value='0' /></div></td> </tr> </table> <div> <input type='button' id='btnAdd' value='&plus;' /> <input type='button' id='btnDel' value='&minus;' /> </div> </fieldset> <input type='submit' value='Trade' /> </form><?php } function view_trade() { global $db, $ir, $c, $userid, $h; $_GET['ID'] = array_key_exists('ID', $_GET) && ctype_digit($_GET['ID']) ? $_GET['ID'] : 0; //fetch trade $q = $db->query("SELECT * FROM trades WHERE trID={$_GET['ID']}"); $r = $db->fetch_row($q); if (!$r['trID']) { echo"Invalid trade ID!"; die($h->endpage()); } $us = $db->query("SELECT userid,username,money FROM users WHERE userid = {$r['trFROM']}"); $user = $db->fetch_row($us); $us1 = $db->query("SELECT userid,username,money FROM users WHERE userid = {$r['trUSER']}"); $user1 = $db->fetch_row($us1); echo " <table> <tr> <th>User</th> <th>Money</th> <th>Item</th> <th>Quantity</th> </tr>"; echo " <tr> <td><a href='viewuser.php?u={$user['userid']}'>".$user['username'].'</a></td> <td>'.$r['trMONEY'].'</td>'; $ex = explode(',', $r['trITEM']); $qty = explode(',', $r['trQTY']); $n = 0; $items_needed=''; $qty_needed=''; foreach ($ex as $i) { $item = $db->query("SELECT `itmname` FROM `items` WHERE `itmid`={$i}"); $t = $db->fetch_row($item); $do_they_have = $db->query("SELECT `inv_itemid` FROM `inventory` WHERE `inv_userid`={$user['userid']} AND `inv_itemid`={$i} AND `inv_qty`>={$qty[$n]}"); if (0 == $qty[$n]) { $items_needed = 'None'; } $items_needed .= $t['itmname'].'<br />'; $qty_needed .= $qty[$n].'<br/>'; ++$n; } unset($n); echo '<td>'.$items_needed.'</td> <td>'.$qty_needed."</td> </tr> <tr> <td><a href='viewuser.php?u={$user1['userid']}'>".$user1['username'].'</a></td> <td>'.$r['trRMONEY'].'</td>'; $ex = explode(',', $r['trRITEM']); $qty = explode(',', $r['trRQTY']); $n = 0; $qty_needed1=''; foreach ($ex as $i) { $item = $db->query("SELECT `itmname` FROM `items` WHERE `itmid`={$i}"); $t = $db->fetch_row($item); $do_they_have = $db->query("SELECT `inv_itemid` FROM `inventory` WHERE `inv_userid`={$user1['userid']} AND `inv_itemid`={$i} AND `inv_qty`>={$qty[$n]}"); if (0 == $qty[$n]) { $items_needed1 = 'None'; } $items_needed1 .= $t['itmname'].'<br />'; $qty_needed1 .= $qty[$n].'<br/>'; ++$n; } unset($n); echo '<td>'.$items_needed1.'</td> <td>'.$qty_needed1.'</td> </tr></table>'; if ($r['trFROM'] == $userid) { if (1 == $r['trACC']) { echo 'You have<font color=green> accepted</font> the trade.<br />'; } elseif (0 == $r['trACC']) { echo 'You have not<font color=red> accepted</font> the trade.<br />'; } if (0 == $r['trRACC']) { echo 'They have not<font color=red> accepted</font> the trade.'; } elseif (1 == $r['trRACC']) { echo 'They have<font color=green> accepted</font> the trade.'; } } elseif ($r['trUSER'] == $userid) { if (1 == $r['trRACC']) { echo 'You have<font color=green> accepted</font> the trade<br />'; } elseif (0 == $s['trRACC']) { echo 'You have not<font color=red> accepted</font> the trade.<br />'; } if (0 == $r['trACC']) { echo 'They have not<font color=red> accepted</font> the trade.'; } elseif (1 == $r['trACC']) { echo 'They have<font color=green> accepted </font>the trade.'; } } echo '</div>'; echo "<br /><center><a href='trade.php?action=accept&ID={$r['trID']}'><button>Accept</button></a> <a href='trade.php?action=decline&ID={$r['trID']}'><button>Decline</button></a> <a href='trade.php?action=add&ID={$r['trID']}'><button>Update</button></a> <a href='trade.php'><button>Back</button></a><br /><br /> Warning: Updating a trade resets all items and amounts</center>"; } function add() { global $db, $ir, $c, $userid, $h; $_GET['ID'] = array_key_exists('ID', $_GET) && ctype_digit($_GET['ID']) ? $_GET['ID'] : 0; $q = $db->query("SELECT * FROM trades WHERE trID={$_GET['ID']}"); $r = $db->fetch_row($q); if (!$r['trID']) { echo"Invalid trade ID!"; die($h->endpage()); } if ($_POST) { $_POST['money'] = filter_var($_POST['money'], FILTER_VALIDATE_INT) ? abs((int) $_POST['money']) : 0; $_POST['item'] = filter_var($_POST['item'], FILTER_VALIDATE_INT) ? abs((int) $_POST['item']) : 0; $_POST['qty'] = filter_var($_POST['qty'], FILTER_VALIDATE_INT) ? abs((int) $_POST['qty']) : 0; $items = $_POST['item']; $qty = $_POST['qty']; $itemCnt = 0; $qtyCnt = 0; for ($i = 1; $i <= 10; ++$i) { $_POST['item'.$i] = isset($_POST['item'.$i]) && ctype_digit($_POST['item'.$i]) ? $_POST['item'.$i] : null; if ($_POST['item'.$i] > 0) { ++$itemCnt; $items .= ','.$_POST['item'.$i]; } } for ($i = 1; $i <= 10; ++$i) { $_POST['qty'.$i] = isset($_POST['qty'.$i]) && ctype_digit($_POST['qty'.$i]) ? $_POST['qty'.$i] : null; if ($_POST['qty'.$i] > 0) { ++$qtyCnt; $qty .= ','.$_POST['qty'.$i]; } } if ($itemCnt != $qtyCnt) { echo"Something doesn\'t add up. Please check your inputs"; die($h->endpage()); } $ex = explode(',', $_POST['item']); $qtys = explode(',', $_POST['qty']); $n = 0; if ($itemCnt) { foreach ($ex as $i) { $item = $db->query("SELECT `itmname` FROM `items` WHERE `itmid`={$i}"); $t = $db->fetch_row($item); if ($i > 0 && 0 == $qtys[$n]) { echo"All Items must have a qty."; die($h->endpage()); } /*check_loaned($i, $qtys[$n]);*/ $do_they_have = $db->query("SELECT * FROM `inventory` WHERE `inv_userid`={$userid} AND `inv_itemid`={$i} AND `inv_qty`>={$qtys[$n]}"); if (0 == $db->num_rows($do_they_have)) { echo"You do not have the item(s) you are trying to trade."; die($h->endpage()); } unset($n); } } trade_add(); if ($qty <= 0 && $items > 0) { echo"You can\'t trade zero or a negative amount."; die($h->endpage()); } if ($_POST['money'] > $ir['money']) { echo"You don\'t have enough money to trade!"; die($h->endpage()); } if ($r['trFROM'] == $userid) { $db->query("UPDATE users SET money=money+{$r['trMONEY']}, money=money-{$_POST['money']} WHERE userid=$userid"); $db->query("UPDATE trades SET trMONEY={$_POST['money']}, trITEM = '{$items}', trQTY = '{$qty}', trACC=0,trRACC=0 WHERE trID={$r['trID']}"); $db->query("UPDATE trades_logs SET trMONEY={$_POST['money']}, trITEM = '{$items}', trQTY = '{$qty}', trACC=0,trRACC=0 WHERE trID={$r['trID']}"); } if ($r['trUSER'] == $userid) { $db->query("UPDATE users SET money=money+{$r['trRMONEY']},money=money-{$_POST['money']} WHERE userid=$userid"); $db->query("UPDATE trades SET trRMONEY={$_POST['money']}, trRITEM = '{$items}', trRQTY = '{$qty}', trACC=0, trRACC=0 WHERE trID={$r['trID']}"); $db->query("UPDATE trades_logs SET trRMONEY={$_POST['money']}, trRITEM = '{$items}', trRQTY = '{$qty}', trACC=0, trRACC=0 WHERE trID={$r['trID']}"); } echo "Trade box has been updated. <br /><a href='trade.php?action=view&ID={$r['trID']}'><button>Back</button></a>"; exit($h->endpage()); } ?> <form id='#' method='post'> <fieldset style='width:75%;'><legend>Trade</legend> <sub><font color=red>Warning: Updating a trade resets all items and amounts!</font></sub><br /><br /> Money: <input type='text' name='money' value='0' /> <br /> <table> <tr> <td><div id='input1' class='clonedInputOne'>Item: <?php echo inv_dropdown($c, 'item'); ?>x</div></td> <td><div id='inputTwo1' class='clonedInputTwo'><input type='text' name='qty' size='2' value='0' /></div></td> </tr> </table> <div> <input type='button' id='btnAdd' value='&plus;' /> <input type='button' id='btnDel' value='&minus;' /> </div> </fieldset> <input type='submit' value='Update' /> </form><?php } function accept() { global $db, $ir, $c, $userid, $h; $_GET['ID'] = array_key_exists('ID', $_GET) && ctype_digit($_GET['ID']) ? $_GET['ID'] : 0; $q = $db->query("SELECT * FROM trades WHERE trID={$_GET['ID']}"); $r = $db->fetch_row($q); if (!$r['trID']) { echo"Invalid trade ID!"; die($h->endpage()); } if (0 == $r['trACC'] && 0 == $r['trRACC'] && $r['trFROM'] == $userid) { $db->query("UPDATE trades SET trACC=1 WHERE trID={$r['trID']}"); $db->query("UPDATE trades_logs SET trACC=1 WHERE trID={$r['trID']}"); echo " Trade<font color=green> accepted</font>, please wait for the other person.<br /> <a href='trade.php?action=view&ID={$r['trID']}'><button>Back</button></a>"; } elseif (0 == $r['trRACC'] && 0 == $r['trACC'] && $r['trUSER'] == $userid) { $db->query("UPDATE trades SET trRACC=1 WHERE trID={$r['trID']}"); $db->query("UPDATE trades_logs SET trRACC=1 WHERE trID={$r['trID']}"); echo " Trade <font color=green>accepted</font>, please wait for the other person.<br /> <a href='trade.php?action=view&ID={$r['trID']}'><button>Back</button></a>"; } if ($r['trFROM'] == $userid && 0 == $r['trACC'] && 1 == $r['trRACC']) { $db->query("UPDATE trades SET trACC=1 WHERE trID = {$r['trID']}"); $db->query("UPDATE trades_logs SET trACC=1 WHERE trID = {$r['trID']}"); if ($r['trITEM'] > 0) { $ex = explode(',', $r['trITEM']); $qty = explode(',', $r['trQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trUSER'], $i, $qty[$n]); ++$n; } unset($n); } if ($r['trRITEM'] > 0) { $ex = explode(',', $r['trRITEM']); $qty = explode(',', $r['trRQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trFROM'], $i, $qty[$n]); ++$n; } unset($n); } $db->query("UPDATE users SET money=money+{$r['trMONEY']} WHERE userid={$r['trUSER']}"); $db->query("UPDATE users SET money=money+{$r['trRMONEY']} WHERE userid={$r['trFROM']}"); $db->query("DELETE FROM trades WHERE trID={$r['trID']}"); echo "Trade Accepted. <br /><a href='trade.php'><button>Back</button></a>"; } elseif ($r['trUSER'] == $userid && 0 == $r['trRACC'] && 1 == $r['trACC']) { $db->query("UPDATE trades SET trRACC=1 WHERE trID = {$r['trID']}"); $db->query("UPDATE trades_logs SET trRACC=1 WHERE trID = {$r['trID']}"); if ($r['trITEM'] > 0) { $ex = explode(',', $r['trITEM']); $qty = explode(',', $r['trQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trUSER'], $i, $qty[$n]); ++$n; } unset($n); } if ($r['trRITEM'] > 0) { $ex = explode(',', $r['trRITEM']); $qty = explode(',', $r['trRQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trFROM'], $i, $qty[$n]); ++$n; } unset($n); } $db->query("UPDATE users SET money=money+{$r['trMONEY']} WHERE userid={$r['trUSER']}"); $db->query("UPDATE users SET money=money+{$r['trRMONEY']} WHERE userid={$r['trFROM']}"); $db->query("DELETE FROM trades WHERE trID={$r['trID']}"); echo "Trade accepted and finished. <br /><a href='trade.php'><button>Back</button></a>"; } } function decline_trade() { global $db, $ir, $c, $userid, $h; $_GET['ID'] = array_key_exists('ID', $_GET) && ctype_digit($_GET['ID']) ? $_GET['ID'] : 0; $q = $db->query("SELECT * FROM trades WHERE trID={$_GET['ID']}"); $r = $db->fetch_row($q); if (!$r['trID']) { echo"Invalid trade ID!"; die($h->endpage()); } if ($r['trFROM'] == $userid) { event_add($r['trUSER'], "{$ir['username']} has declined a trade you were in."); } elseif ($r['trUSER'] == $userid) { event_add($r['trFROM'], "{$ir['username']} has declined a trade you were in."); } if ($r['trFROM'] == $userid) { $db->query("UPDATE trades_logs SET trACC=2 WHERE trID = {$r['trID']}"); if ($r['trITEM'] > 0) { $ex = explode(',', $r['trITEM']); $qty = explode(',', $r['trQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trFROM'], $i, $qty[$n]); ++$n; } unset($n); } if ($r['trRITEM'] > 0) { $ex = explode(',', $r['trRITEM']); $qty = explode(',', $r['trRQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trUSER'], $i, $qty[$n]); ++$n; } unset($n); } } if ($r['trUSER'] == $userid) { $db->query("UPDATE trades_logs SET trRACC=2 WHERE trID = {$r['trID']}"); if ($r['trITEM'] > 0) { $ex = explode(',', $r['trITEM']); $qty = explode(',', $r['trQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trFROM'], $i, $qty[$n]); ++$n; } unset($n); } if ($r['trRITEM'] > 0) { $ex = explode(',', $r['trRITEM']); $qty = explode(',', $r['trRQTY']); $n = 0; foreach ($ex as $i) { item_add($r['trUSER'], $i, $qty[$n]); ++$n; } unset($n); } } $db->query("UPDATE users SET money=money+{$r['trRMONEY']} WHERE userid={$r['trUSER']}"); $db->query("UPDATE users SET money=money+{$r['trMONEY']} WHERE userid={$r['trFROM']}"); $db->query("DELETE FROM trades WHERE trID={$_GET['ID']}"); echo " Trade <font color=red>declined!<font><br /> <a href='trade.php'><button>Back</button></a>"; } $h->endpage(); ?> Inv_dropdown for your global_func.php <?php function inv_dropdown($connection, $ddname = 'inv', $selected = -1) { global $db, $userid; $ret = "<select name='$ddname' type='dropdown'>"; $q = $db->query("SELECT * FROM inventory LEFT JOIN items ON inv_itemid=itmid WHERE inv_userid={$userid} ORDER BY itmname ASC"); if ($selected < 1) { $ret .= "<option value='0' selected='selected'> None </option>"; } else { $ret .= "<option value='0'> None </option>"; } while ($r = $db->fetch_row($q)) { $ret .= "\n<option value='{$r['itmid']}'"; if ($selected == $r['itmid']) { $ret .= " selected='selected'"; $first = 1; } $ret .= ">{$r['itmname']}</option>"; } $ret .= "\n</select>"; return $ret; } ?> And for your staff_logs.php file <?php //The case to add at the top case 'tradelogs': view_trade_logs(); break; //And the function to add. Then of course you'll want to add the link to your smenu function view_trade_logs() { global $db, $ir, $c, $h, $userid; echo '<h3>Trade Logs</h3><hr />'; if (!$_GET['st']) { $_GET['st'] = 0; } $st = abs((int) $_GET['st']); $app = 50; $q = $db->query('SELECT * FROM trades_logs'); $trades = $db->num_rows($q); $pages = ceil($trades / $app); echo 'Pages:&nbsp;'; for ($i = 1; $i <= $pages; ++$i) { $s = ($i - 1) * $app; if ($s == $st) { echo "<b>$i</b>&nbsp;"; } else { echo "<a href='staff_logs.php?action=tradelogs&st=$s'>$i</a>&nbsp;"; } if (0 == $i % 25) { echo '<br />'; } } echo "<br /> <table width='100%' cellspacing=1 class='table'><th>ID</th><th>User</th><th>Money</th><th>Items</th><th>Qty</th><th>ACP</th><th>IP</th></tr>"; $q = $db->query("SELECT t.*,u1.username as trader, u2.username as tradee FROM trades_logs t LEFT JOIN users u1 ON t.trFROM=u1.userid LEFT JOIN users u2 ON t.trUSER=u2.userid ORDER BY t.trID DESC LIMIT $st,$app"); while ($r = $db->fetch_row($q)) { echo "<tr><td width=5%>{$r['trID']}</td><td width=15%>[<a href='viewuser.php?u={$r['trFROM']}'>{$r['trader']}</a>]</td><td>$".$db->escape($r['trMONEY']).'</td>'; $ex = explode(',', $r['trITEM']); $qty = explode(',', $r['trQTY']); $n = 0; $items_needed=''; $qty_needed=''; foreach ($ex as $i) { $item = $db->query("SELECT `itmname` FROM `items` WHERE `itmid`={$i}"); $t = $db->fetch_row($item); if (0 == $qty[$n]) { $items_needed = 'None'; } $items_needed .= $t['itmname'].'<br />'; $qty_needed .= $qty[$n].'<br/>'; ++$n; } unset($n); echo '<td>'.$items_needed.'</td> <td>'.$qty_needed.'</td>'; if (0 == $r['trACC']) { $ac = 'No'; } elseif (1 == $r['trRCC']) { $ac = 'Yes'; } elseif (2 == $r['trACC']) { $ac = 'Canc'; } echo '<td>'.$ac."</td> <td>{$r['trTAK']}</td></tr> <tr><td width=5%>{$r['trID']}</td><td width=15%>[<a href='viewuser.php?u={$r['trUSER']}'>{$r['tradee']}</a>]</td><td>$".$db->escape($r['trRMONEY']).'</td>'; $ex = explode(',', $r['trRITEM']); $qty = explode(',', $r['trRQTY']); $n = 0; $qty_needed1=''; $items_needed1=''; foreach ($ex as $i) { $item = $db->query("SELECT `itmname` FROM `items` WHERE `itmid`={$i}"); $t = $db->fetch_row($item); if (0 == $qty[$n]) { $items_needed1 = 'None'; } $items_needed1 .= $t['itmname'].'<br />'; $qty_needed1 .= $qty[$n].'<br/>'; ++$n; } unset($n); echo '<td>'.$items_needed1.'</td> <td>'.$qty_needed1.'</td>'; if (0 == $r['trRACC']) { $acc = 'No'; } elseif (1 == $r['trRACC']) { $acc = 'Yes'; } elseif (2 == $r['trRACC']) { $acc = 'Canc'; } echo '<td>'.$acc."</td> <td>{$r['trRTAK']}</td> </tr>"; } echo '</table><br />'; $mypage = floor($_GET['st'] / $app) + 1; echo 'Pages:&nbsp;'; for ($i = 1; $i <= $pages; ++$i) { $s = ($i - 1) * $app; if ($s == $st) { echo "<b>$i</b>&nbsp;"; } else { echo "<a href='staff_logs.php?action=tradelogs&st=$s'>$i</a>&nbsp;"; } if (0 == $i % 25) { echo '<br />'; } } stafflog_add("Looked at the Trade Logs(Page $mypage)"); } ?> You'll want to add the link to your smenu staff_logs.php?action=tradelogs and of course the trade.php link to explore. Edit* This was tested on base mccodes and it worked for me, I also stripped all the game specific css coding so it is barebones.
  21. 5 points
    After a request i have made a simple scavenge the streets module. Within the admin panel you can alter various setting to increase/decrease payouts. The user can scavenge the streets once a day and can find money, bullets and points. You can download the module from GitHub and view the repository here. To install it you just download the zip file, rename it to scavenge.zip and then upload the .zip file within the "Admin Control Panel > Modules & Themes > Module Manager > Install Module" Screen Shots
  22. 5 points
    In my professional-time, a lot 😅 In my hobby-time, a website (... maybe a text based game 😉) with a React DOM frontend communicating to a Laravel backend with JWT authentication
  23. 5 points
    Now who's doing the grave yard digging eh?
  24. 5 points
    We’ve just released our fully responsive theme live on https://MusicBattle.online ! We will have an official app for iOS and Android following soon.
  25. 5 points
  26. 5 points
    Im a big fan of cronless crons and have been pushing this idea for 10 years now! (see here) Ive had a few people ask if i can make this easier to work with in GLv2 so i have created a simple Cron class that will hopefully make life easier and give you a better understanding of cronless crons. Cron Class <?php class Cron { public function __construct($cronName, $cronType, $interval, $maxRepetitions = 1000) { global $db, $user; $this->db = $db; $this->user = $user; $this->settings = new Settings(); $this->cronName = $cronName; $this->cronType = $cronType; $this->maxRepetitions = $maxRepetitions; $this->interval = $interval; } public function updateLastRun() { if (!$this->getRepetitionCount()) return $this; $key = "cron-" . $this->cronName; $newTime = time() - (time() % $this->interval); if ($this->cronType == "user" && $this->user) { $time = $this->user->updateTimer($key, $newTime); } else if ($this->cronType == "system") { $time = $this->settings->update($key, $newTime); } return $this; } public function getRepetitionCount () { $key = "cron-" . $this->cronName; if ($this->cronType == "user" && $this->user) { $time = $this->user->getTimer($key, false); } else if ($this->cronType == "system") { $time = $this->settings->loadSetting($key); } $count = floor((time() - $time) / $this->interval); return $count > $this->maxRepetitions?$this->maxRepetitions:$count; } public function getCronDates() { $key = "cron-" . $this->cronName; if ($this->cronType == "user" && $this->user) { $time = $user->getTimer($key); } else if ($this->cronType == "system") { $time = $this->settings->loadSetting($key); } $count = floor((time() - intval($time)) / $this->interval); if ($count > $this->maxRepetitions) { $count = $this->maxRepetitions; } if (!$count) return array(); $start = time() - time() % $this->interval; $dates = array(); while ($count) { $dates[] = $start - ($this->interval * ($count - 1)); $count--; } return $dates; } } Usage Examples (moduleExample.hooks.php) <?php new Hook("userInformation", function ($user) { global $page; if ($user) { $oneMinCron = new Cron("addUserEnergy", "user", 60, $this->user->info->US_maxEnergy); $howManyTimesTheCronWouldHaveRun = $oneMinCron->getRepetitionCount(); $newEnergy = $howManyTimesTheCronWouldHaveRun * 2 + $this->user->info->US_maxEnergy; if ($newEnergy > $this->user->info->US_maxEnergy) { $newEnergy = $this->user->info->US_maxEnergy; } $this->user->set("US_maxEnergy", $newEnergy); $oneMinCron->updateLastRun(); } $systemCron = new Cron("everyHour", "system", 3600, 24); $datesAndTimeThatTheCronWouldHaveRan = $systemCron->getCronDates(); foreach ($datesAndTimeThatTheCronWouldHaveRan as $date) { /* do something here */ } $systemCron->updateLastRun(); }); Documentation __construct($cronName, $cronType, $interval, $maxRepetitions) $cronName - A unique name given to this cron, this is used to identify it in the database $cronType - This can be "user" or "system" user - This cron will only run when the user is active and playing the game, if they have been AFK for a period of time it will run the cron as many times as needed.(capped by the maxRepetitions) system - This cron is run when there is any activity on the game, it can be a logged in user or someone visiting the login page, if it has not been run for a while it will run as many times as needed (capped by the maxRepetitions) $interval - How often should the cron run (seconds) $maxRepetitions - The maximum times this cron will run getRepetitionCount() Returns how many times the cron would have ran if it was running away in the background getCronDates() Same as getRepetitionCount but instead of returning a numerical value it will return an array of dates and times when the cron would have ran. updateLastRun Updates the database storing when the cron was last run. If the cron was not run
  27. 5 points
    Howdy, I'm new here and decided to become a member of the community. I have been working on a game which is not really an engine but will become and open source project/game soon. This game for coders is great especially for beginners, I am an intermediate PHP programmer and also an everything else kind of guy. I have been working on the game for about a month total..currently it's still not really playable but it is purely built using BootStrap/css/js and PHP etc.. I am looking for someone who is interested in following the project and to see if someone would be willing to help me test features as the project evolves.. this would be a volunteer position while I develop the game and lead towards an open source point. I am not planning on making this an easy way to make a game... is it not guided towards newbies without programming experience but rather newbies who are learning PHP/Web based Programming. The game is similar to MCCodes in terms of functionality and simplicity. Thus is where the inspiration has mostly come from. The Title of the game currently is Mob Labs, ignore the URL. I haven't pointed the new URL as of yet so for now it's http://brightmafia.xyz WHAT'S WORKING? Login/Registration WORKING Password Reset NOT WORKING Loading/Saving of basic player stats WORKING Simple Cron Jobs running with CPanel for Stats WORKING Banking System (withdrawal, sending of cash, and depositing) WORKING Housing System (Cash/Diamond Storage Abandoning house, selling house(half-value), sleeping(restores fatigue faster, but puts you in a sleep state meaning you cannot do anything during this period) WORKING Inventory System (Using Items(WIP, currently can only use Fatigue Refill Items), Equipping Weapons also WIP) WORKING/WIP AJax Chat Based System (Uses bootstrap/javascript) (Cash/Diamond Storage) WORKING One Layout for Mobile Devices/Desktop Devices, the design is fully responsive for most resolutions WORKING Tutorial System NOT WORKING/WIP Traveling WORKING/WIP WHAT'S NOT WORKING BUT IS PLANNED TO BE IMPLEMENTED? Traveling - One city to another Real-Estate (Buying/Selling Houses) Item Market (Listing/Buying Items) Hit the Streets (Scavenging for items, cash, exp, etc) Missions (Kind of like committing crimes but provide better rewards and experience) Families Businesses (Run them, upgrade them, collect money every so often) Training(Essentially is a place to train your stats, sorta like the GYM in MCCodes) Crimes(Self-Explanatory) Deal Shop (Donation based portion of the game, buy items, other boosters and misc stuff for real money) Searching for Mobsters(based on location, level, last login, etc) Contacts (fancy word for a friends list) Contracts (Viewing/Assigning Hits to players) Jailing System (used when committing crimes and getting caught, failing certain missions that involve law enforcement, etc. Can Breakout/Bribe Officers) Prison System(Similar to the jail system only you are incarcerated and your sentencing is usually longer, you can also break out of this system if you can get help from another player or two, Bribery is not possible in the prison system. While you are in here if you cannot breakout and you must endure your sentencing, you can bring in contraband to make money during your incarceration period.) Profile Viewing/Modifying your profile options, etc. Live Administration Functions(No separate panel, you'll be able to find most of the administration functions by viewing a players profile.. should you have the access level the functions will appear as buttons and inputs if required to use that function) (Base idea, banning, (force logging out someone, (maybe), currently sessions aren't stored in the database), changing player stats (bugs, etc), muting players from chatting, giving items(rewards), seeing a last report made by a player(might be in a separate location), Bank Loans Jobs(more info coming soon) I'll update this list as I come up with future Ideas.. I did forget a-lot of planned features, some of them I haven't written down so I'll update as I remember THE CODING it's currently based on PHP 8.0 - uses MySQL for data. I took a traditional approach so it's PHP but in Procedural Style, there's no Object-Orientation. It doesn't use any "Join / Inner " Statements and each query is separated. All of the core functions in the game are actually inside one php file called Functions.php, Literally every action is a function on it's own. I have tried not to use echoing of html tags, there is a few places on where I have... only on the main Index page, since the pages are dynamic the rest is inside of a "Mods" folder which is where all of the core pages are located. I have excluded some of the pages such as "forgotpw.php" and "help.php" etc to prevent those pages from loading dynamically as they are pages that act kinda like the index page does expect they are not connected to any pages located inside of the "mod" folder as they access the functions.php file to run the functions directly. Essentially I have kept the "Mods" folder primarily for the core game it's-self. I have tried to use the mysqli_free_result() Function to clear memory usage as much as possible, I'm sure I forgot to in some queries there's no commentary yet I'll do all that once I finish most of the core features, it's a little messy in some places and some of the functions are not complete yet/being used. Tutorial System WARNING There is no statement-preparation on the SQL Queries, I am simply escaping the variables (POST, GET & Even Session Variables). There is no extra security beyond this point, as-long as you use the most up-to-date PHP/MYSQL version with this project, escaping using mysqli_real_escape_string should be more than enough! OPEN SOURCE PROJECT Coming soon! ANDROID APK / IOS Coming soon! DISCORD https://discord.gg/cwCbMjC You can register a new account or check out the features with username: demo password: demo let me know what ya think. UPDATES FOR 02/09/2020 UPDATES FOR 02/10/2020
  28. 5 points

    Version 1.0.0

    47 downloads

    This modules allows users to try to "crack the safe" by choosing the safe combination. Settings are placed in "crackTheSafe.inc.php", it supports the following: - Time between how often a user can give it a try - Amount of possible inputs - Input values - Amount of correct combinations - Actions on failure - Actions on success - Multiple actions possible (set chance between them) - Loss health on action - Gain bullets on action - Gain money on action Feedback and ideas welcome.

    Free

  29. 5 points
  30. 5 points
    8 years later still no demo?
  31. 5 points
  32. 5 points
    Hey everybody, Another long-time member popping in after randomly coming across this forum being back, was good to see a few familiar names. To think I joined in 2007 when I had just turned 14 years of age ? I've since become a Software/Website Developer after completing a Computer Science degree therefore my days of coding MCCodes games helped me get on this track. I actually use PHP primarily in my job as a Web Developer for local government. After looking back at some of my earlier code (I think we all cringe when we do that), I am glad I've learnt quite a bit since then ? I'm glad to see MWG back and I may even start posting on here again. No promises however, since life and work seems to get in the way of internet activities nowadays ? - Redeye
  33. 5 points
    Thank for the support @KyleMassacre & @Zettieee. I never thought I would revisit this forum and go through what I posted years ago. BTW I hope, I do sound professional now @Veramis. On the contrary, I did learn PHP, SQL, etc, and created a game myself which live now with 22k+ users. Also, I m now a Unity3D Game Developer. Cheers!
  34. 5 points
    GL V2.2.0 - Release Notes Links Git Hub Download Discord Demo New Features Black Jack (casino game) Users can own a blackjack table They can change the min/max bets Murder Black Market You can buy weapons and Armour Has a bullet calculator to determine how many bullets are needed to kill someone with a certain weapon vs a certain Armour Find User You can hire detectives to find a target Kill Once a target is found you can shoot bullets at them Bounties Want someone dead? Put a bounty on them Forums You can make unlimited forum categories Users can make topics within the forum Has BBCode support Admin controls Edit topic Change topic level Important Sticky Normal Delete Topic Lock Topic Mute a user from posting on the forum Game Statistics Shows new and dead users Total users alive/dead Total game cash Total game bullets Total game points Bullet Factory Can now be owned Now restocks every hour (max stock = 40k) New Admin Features Manage game items (create/edit and delete) Cars Black Market Items Locations Car Theft options Manage cost to hire detectives Create new forum categories Custom staff Roles Each role can have a different color Each role can be locked down to certain areas of the admin Panel i.e. forum mods will only have access to the forum admin options
  35. 5 points
    From my 10 years + of observations, I find the opposite of this to be correct. People who put in the work and want to create an awesome, unique game can make ok money, but very few make a huge sum. On the other side of that, I've seen a lot of thrown together, include-any-free-mod-i-find games to make a tonne with no real effort on their part, no storyline and more holes than a Glaswegian prostitutes tights.
  36. 5 points
    Don't mind me, I'm of no interest. Just a random Guest passing through.
  37. 4 points
    Toon Crime Token Interactive & True Website Solutions are excited to announce the development of Toon Crime. After spending allot of time researching which game engine to go with we've finally decided on one. We needed something clean, supported, secure and quite frankly something we could push the envelop with. Its powered by a highly customized version of gangster legends v2. The game at its core is a text based online-RPG set in a quirky cartoonish underworld. That being said we are implementing some unique 2D gameplay features (character creation, dynamic map, mini games, combat) to reinvigorate the text based genre. The game is currently in closed beta but I will be providing updates here as we transition into our next phase. Please check us out at https://www.tooncrime.com
  38. 4 points
    Looks awesome, I really like what you have done with GL 😄
  39. 4 points
    Following on from the sad news from @ColdBlooded I have decided to try and fill the place left in our hearts by the closure of the MCCodes website marketplace. This was the main hub of free and paid extensions for MCCodes (alongside MWG obviously!) and it's a real shame to not have that available for those wanting to get into building games today. Due to this I'm proud to announce MWG now has a marketplace, this can be accessed via the "Marketplace" link in the top navigation menu, or by directly visiting: https://makewebgames.io/marketplace/ Features: Ability to post free and paid mods Purchases of your modules are deposited into credit in your account 10% commission is charged by MWG, along with a $0.50 transaction fee to cover PayPal fees. This is to help ensure MWG can continue to thrive and support its community. Credit can be withdrawn at any amount over $10.00, if you have a need for a withdrawal under this amount please contact myself and we can arrange this. You can withdraw to: PayPal (you will incur fees if you're outside of the US) UK Bank Transfer US Bank Transfer If you have any other withdrawal methods please send me a message, we're happy to accommodate. We aim to pay out all withdrawals in 24 hours, typically this can be within the hour if I am online and able to process your withdrawal then and there. If you have any questions please feel free to respond here or message me directly! I look forward to seeing your modules in our marketplace soon.
  40. 4 points
    Nothing Here
  41. 4 points
    RTFM Kiddo. 😉 Good Luck and yes you can bother anytime (though you know... the most typical answer will be... search by yourself).
  42. 4 points
    I'm crazy cheap! Alright I'll bite. LK Alright this hosting is pretty good. Really fast and decent tech support. Same old Dave hosting. Worth it and more.
  43. 4 points
    I have been working on a OC mod for a while its near completion, i can have it ready some time next week.
  44. 4 points
  45. 4 points
    I vote to ban this guy. Reactions = agreement.
  46. 4 points
    How have I not heard of this before?
  47. 4 points
    Well it also depends what you mean by text-based games. We can assume that something like ZombieWars is indeed text-based, but what about Tribal Wars or indeed Ikariam? Each of these are text-based with the additional of some professionally made graphics; Torn is again text based with some rather good CSS though little graphics from what I remember. Certainly I know many games that are in reality text-based however they are made to look like a graphical game. Sure, they are not No Man's Sky or Gran Turismo, but they are nevertheless presented in such a way as to appear graphically orientated. For personal developers or very small teams it would be almost impossible to break into the full graphics market as the standard is set extremely high; consider the amount of work that goes into making a game that run on multiple platforms; with 4K graphics, and Dolby Surround music . I know I certainly play a number of text-based games (in its loosest sense of the phrase) and occasionally fire up the PS4 if I fancy a quick drive around Brands Hatch. For simplicity however a good text-based game, with pleasing graphics is ideal - you can login, play a few screens and logout without all the hassle of games consoles.
  48. 4 points
    Thanks MTG, I really appreciate this! @ColdBlooded had to painfully send me the database, but apart from that I had to grind away getting everything set back up.
  49. 4 points
    I present myself, a savage, good old 2007 when I was a mere boy at 12 years old:
  50. 4 points
    Uncovering the ?scammers? I've been lurking for a while, and I came across this thread; so I decided to play along :o I went to the site in question, and submitted a 'ticket' to request a custom game; I said something along the lines of; They responded very quickly (kudos...?) with this e-mail   50 dollars atleast i will also include the private chat and chat and if you want me to set up the domain i can depends on domain   I was a little confused, and then straight away another email came through   sorry that was for someone else if you want a complete copy of tc i will do for 600 dollars includes everythimg   So I thought, what the f*ck, I'll continue playing along :p I sent back this;   50 dollars atleast i will also include the private chat and chat and if you want me to set up the domain i can depends on domain That seems like what I'd like. What will I get for the extra 550?   To which they replied'   the layout mods login page, secure etc i nice budget what else you want and nice budget i can definatly make it   I thought that was mandatory, so I asked;   Then what does the 50 dollars torn clone with private chat get?   They replied with (and I don't understand it)   someone else try want the background and something else your getting a clone could i get 100 dollars to start with   After reading that, I wanted to play with them even more   $100 USD as a deposit? Sure; how would you like it to be paid? When can I get the product?   They replied;   yes through paypal and within 3weeks   I think 3 weeks turnaround for an exact copy of torn is quite impressive!   What's your PayPal email? Can I have a preview on what I'd be receiving?     [email protected] you will receive a torn city clone   How will I receive it?   i will send you it in a zip file or set it up for you could you set up a domain and host and i neef a deposit of 100 dollars   You guys seem to know what you're doing, so I may as well ask. What could I get with you for $5k, instead of 600?   what ever you want   5000 is alot 600 is ok :) when i receive 100 dollars to [email protected] i will begin   ... seems like they don't like money after all? :confused:   So you won't deal with large amounts of money? It will take you exactly 3 weeks to clone torn?     so i can make your game like torn city and add features tc wont have you get full game support for 5yrs and we fix any bugs you experience and we add free mods to the game on your request   Man, for 600$ I will get 5 yrs free full game support, including bug patches, plus installation of free modifications! Christmas is early today, folks! I thought I'd play with them even further; and request something I know they cannot get.   I don't want features tc won't have; I want an exact copy of torn - even the database data.   To which he replied;   ok i will make tc exact but i need 100 dollars deposit   He can get all torns' database data?! Impressive :cool: Data on the e-mail Possible Facebook accounts Email: [email protected] Conclusion Either they; Conduct business lousy and will deliver Won't deliver, and scam me   Peace/ v874J
×
×
  • Create New...