View previous topic :: View next topic |
Author |
Message |
sponge cake recipe Grandmaster Cheater Supreme Reputation: 22
Joined: 24 Sep 2007 Posts: 1635
|
Posted: Mon Aug 02, 2010 8:53 am Post subject: PHP RPG |
|
|
Project set by Holland (along with a few lines of starter code).
Quite proud of it myself, first thing I've done in php.
I tried to clean it up and comment it somewhat.
http://viral.stop.stylin-on.me/at/coding/php/rpgs/
Code: | <?php
session_start();
if(!isset($_SESSION['your_hp'])) #Starting a new game / lost session.
{
$_SESSION['potions'] = 3;
$_SESSION['your_hp'] = 100;
$_SESSION['his_hp'] = 100;
}
echo "<center>";
foreach ($_POST as $key => $value) { #Turning all $_POST into $_SESSION
$_SESSION[$key] = $value;
}
echo $_SESSION["usname"] . " " . "- Viral's RPG<br>"; #Top info.
echo "-------------------------------<br>";
echo "<a href=./fightan.html>HARRRR</a><br><br>";
$attackverb = array("swipe"=>0, "stab"=>1, "lunge"=>2, "hack"=>3, "slash"=>4, "rush"=>5,); #verb array
if($_POST["attack"]) #attacking
{
echo "You " . array_rand($attackverb,1) . " at your opponent!<br>";
$damage = rand(3, 14);
$opp_dam = rand (7, 26);
echo "You dealt " . $damage . " damage. <br>";
if($_SESSION['his_hp']<1) #so opponent doesn't attack after dead
{
session_destroy();
echo "Victory!<br><br>";
echo "<a href=./>Click here to play again</a>";
}
echo "Your opponent dealt you " . $opp_dam . " damage. <br><br>";
$_SESSION['his_hp'] = $_SESSION['his_hp'] - $damage;
$_SESSION['your_hp'] = $_SESSION['your_hp'] - $opp_dam;
}
if($_POST["counter"])
{
$damage = rand(-34, 34);
if($damage=="0")
echo "No damage was inflicted.<br><br>";
elseif($damage<"0")
{
echo "Your counter failed, and you took " . $damage*-1 . " damage!<br><br>"; #*-1 to remove negative, so output would make sense. eg. you took -5 damage. :|
$_SESSION['your_hp'] = $_SESSION['your_hp'] + $damage;
}
else
{
echo "Counter successful! You've inflicted " . $damage . " damage!<br><br>";
$_SESSION['his_hp'] = $_SESSION['his_hp'] - $damage;
}
}
$heal = rand(1, 28);
if($_POST["drink"]) #messsssy
{
if($_SESSION['your_hp']<100)
{
if($_SESSION['potions']==0) echo "No potions available.<br>";
else
{
$_SESSION['your_hp'] = $_SESSION['your_hp'] + $heal;
$_SESSION['potions']--;
echo "Health replenished.<br>";
if($_SESSION['your_hp']>99) #making sure you don't get buffed health
{
$_SESSION['your_hp'] = 100;
}
}
}
else
{
echo "Your health is already full!<br>";
}
echo "You have " . $potions . " potion(s) remaining.<br>";
}
if($_SESSION['his_hp']<1) $_SESSION['his_hp'] = 0; #no negative health
if($_SESSION['your_hp']<1) $_SESSION['your_hp'] = 0;
echo "<b><br>You now have " . $_SESSION['your_hp'] . " health left.</b><br>";
echo "<b>Your opponent has " . $_SESSION['his_hp'] . " health left.</b><br><br>";
if($_SESSION['his_hp']<1) #victory
{
session_destroy();
echo "Victory!<br><br>";
echo "<a href=./>Click here to play again</a>";
}
elseif($_SESSION['your_hp']<1) #death
{
session_destroy();
echo "You have died. :(<br><br>";
echo "<a href=./>Click here to play again</a>";
}
echo "</center>";
?> |
|
|
Back to top |
|
|
C-Dizzle Grandmaster Cheater Reputation: 89
Joined: 16 Mar 2008 Posts: 623
|
Posted: Mon Aug 02, 2010 9:04 am Post subject: |
|
|
Thanks for posting this, it should help me a lot. |
|
Back to top |
|
|
Cryoma Member of the Year Reputation: 198
Joined: 14 Jan 2009 Posts: 1819
|
Posted: Mon Aug 02, 2010 3:11 pm Post subject: |
|
|
Quote: | Cryoma - Viral's RPG
-------------------------------
HARRRR
You lunge at your opponent!
You dealt 11 damage.
Your opponent dealt you 14 damage.
You now have 0 health left.
Your opponent has 0 health left.
Victory!
Click here to play again |
Yeah I dunno, seems pretty difficult. |
|
Back to top |
|
|
Garavito Master Cheater Reputation: 0
Joined: 21 Jun 2009 Posts: 387
|
Posted: Mon Aug 02, 2010 5:10 pm Post subject: |
|
|
I'm not good at PHP and this looks super hard. _________________
|
|
Back to top |
|
|
[WQW]Xellos Grandmaster Cheater Reputation: 0
Joined: 21 Feb 2009 Posts: 504 Location: /dev/null
|
Posted: Mon Aug 02, 2010 6:18 pm Post subject: |
|
|
My code
Code: | <?php
include_once 'connect.php';
session_start();
include_once 'logo.php';
?>
<link href="style.css" rel="stylesheet" type="text/css" />
<div id="login2" div align="center">
<?php
///////////////////////////////////
if (isset($_SESSION['player']))
{
$player=$_SESSION['player'];
}
else
{
echo "Not Logged in <br><br> <A href='login.php'>Login</a>";
exit;
}
?>
</div>
<?php
$playerinfo="SELECT * from players where name='$player'";
$playerinfo2=mysql_query($playerinfo) or die("could not get player stats!");
$playerinfo3=mysql_fetch_array($playerinfo2);
$playerhp = $playerinfo3['hpoints'];
$playerattack = $playerinfo3['attack'];
$playerdefense = $playerinfo3['defense'];
if (isset($_GET['randid']))
{
$randid=$_GET['randid'];
$iteminfo="SELECT * from inventory where randid='$randid'";
$iteminfo2=mysql_query($iteminfo) or die("could not get item stats!");
$iteminfo3=mysql_fetch_array($iteminfo2);
if (!$iteminfo3['name'])
{
}
else
{
$name = $iteminfo3['name'];
$stats = $iteminfo3['stats'];
$statadd = $iteminfo3['statadd'];
$type = $iteminfo3['type'];
if ($type == "healing")
{
$newhp = $statadd + $playerhp;
if ($newhp > $playerinfo3['maxhp'])
{
$newhp = $playerinfo3['maxhp'];
}
$updateplayer="update players set hpoints='$newhp' where name='$player'";
mysql_query($updateplayer) or die("Could not update player");
$updateitem="DELETE from inventory where name='$name' AND randid='$randid' limit 1";
mysql_query($updateitem) or die("Could not delete item");
$playerhp = $newhp;
echo "Used " . $name . " and recovered " . $statadd . ".<br>";
}
}}
////////////////////////////////
if (isset($_GET['creature']))
{
$creature=$_GET['creature'];
$creatureinfo="SELECT * from creatures where name = '$creature'";
$creatureinfo2=mysql_query($creatureinfo) or die("could not get the creature you were fighting!");
$creatureinfo3=mysql_fetch_array($creatureinfo2);
}
else
{
$creatureinfo="SELECT * from creatures order by rand() limit 1";
$creatureinfo2=mysql_query($creatureinfo) or die("could get a creature!");
$creatureinfo3=mysql_fetch_array($creatureinfo2);
}
$creature = $creatureinfo3['name'];
$creaturehp = $creatureinfo3['hpoints'];
$creatureattack = $creatureinfo3['attack'];
$creaturedefense = $creatureinfo3['defense'];
?>
<div id="player">
<?php
/////player info
echo "<u> " . $playerinfo3['name'] . "</u><br>";
echo "Hit points = " . $playerhp . "<br>";
echo "Attack = " . $playerattack . "<br>";
echo "Defense = " . $playerdefense . "<br><br><br>";
?>
</div>
<div id="creature">
<?php
///////creature info
echo "<u> " . $creatureinfo3['name'] . "</u><br>";
echo "Hit points = " . $creaturehp . "<br>";
echo "Attack = " . $creatureattack . "<br>";
echo "Defense = " . $creaturedefense . "<br><br><br>";
echo "<a href='attack.php?creature=$creature'>Attack!";
echo "<br><a href='useitem.php?creature=$creature'>Use Item";
echo "<br><a href='store.php?creature=$creature'>Go to Store";
?>
</div>
<div id="logout">
<?php
echo "<br><a href='logout.php'><img src='images/logout.gif'>";
?>
</div> |
|
|
Back to top |
|
|
sponge cake recipe Grandmaster Cheater Supreme Reputation: 22
Joined: 24 Sep 2007 Posts: 1635
|
Posted: Tue Aug 03, 2010 2:04 am Post subject: |
|
|
Fixed, Cryoma.
Code: | if($_POST["attack"]) #attacking
{
echo "You " . array_rand($attackverb,1) . " at your opponent!<br>";
$damage = rand(3, 14);
$opp_dam = rand (7, 26);
echo "You dealt " . $damage . " damage. <br>";
$_SESSION['his_hp'] = $_SESSION['his_hp'] - $damage;
if($_SESSION['his_hp']<1) #so opponent doesn't attack after dead
{
echo "<br><br><b>You now have " . $_SESSION['your_hp'] . " health left.</b><br>";
echo "<b>Your opponent now has 0 health left.</b><br><br>";
echo "<br>Victory!<br><br>";
echo "<a href=./>Click here to play again</a>";
session_destroy();
exit;
}
echo "Your opponent dealt you " . $opp_dam . " damage. <br><br>";
$_SESSION['your_hp'] = $_SESSION['your_hp'] - $opp_dam;
} |
Also fixed potions telling you that you have none remaining in two different ways.
Code: | if($_POST["drink"]) #messsssy
{
if($_SESSION['your_hp']<100)
{
if($_SESSION['potions']==0) echo "No potions available.<br>";
else
{
$_SESSION['your_hp'] = $_SESSION['your_hp'] + $heal;
$_SESSION['potions']--;
echo "Health replenished.<br>";
echo "You have " . $potions . " potion(s) remaining.<br>";
if($_SESSION['your_hp']>99) #making sure you don't get buffed health
{
$_SESSION['your_hp'] = 100;
}
}
}
else
{
echo "Your health is already full!<br>";
}
} |
|
|
Back to top |
|
|
Cryoma Member of the Year Reputation: 198
Joined: 14 Jan 2009 Posts: 1819
|
Posted: Tue Aug 03, 2010 4:06 pm Post subject: |
|
|
Did you add a tie for dual-KO?
And maybe the enemy can use potions too? |
|
Back to top |
|
|
goat69 Master Cheater Reputation: 2
Joined: 20 Jul 2010 Posts: 284
|
Posted: Tue Aug 03, 2010 4:09 pm Post subject: |
|
|
1st thing i noticed was
HARRRR
And the link says Arepeegee.
Best
Thing
Evar |
|
Back to top |
|
|
Maes Advanced Cheater Reputation: 10
Joined: 09 Apr 2009 Posts: 50
|
Posted: Tue Aug 03, 2010 5:31 pm Post subject: |
|
|
Would it be a good idea to make it where you can login and store items? _________________
Account reclaimed by former owner? |
|
Back to top |
|
|
sponge cake recipe Grandmaster Cheater Supreme Reputation: 22
Joined: 24 Sep 2007 Posts: 1635
|
Posted: Wed Aug 04, 2010 12:03 am Post subject: |
|
|
Cryoma wrote: | Did you add a tie for dual-KO?
And maybe the enemy can use potions too? |
Possibly.
If I add a new enemy type, perhaps they'll be able to heal.
The reason I didn't for this one is that I made him somewhat OP, so you'd actually need potions.
Rokurai wrote: | Would it be a good idea to make it where you can login and store items? |
Yes.
Though I assume that'd require mysql and such, and I've got less than no idea how to do that currently. |
|
Back to top |
|
|
Lyfa The Lonely Man Reputation: 12
Joined: 02 Nov 2008 Posts: 744
|
Posted: Sat Aug 07, 2010 5:02 am Post subject: |
|
|
Just saw this and tested on your site:
Your script is open to XSS (Cross site scripting) because you're not sanitizing the user's name.
Change Code: | echo $_SESSION["usname"] . " " . "- Viral's RPG<br>"; #Top info. | to Code: | echo htmlspecialchars($_SESSION["usname"]) . " " . "- Viral's RPG<br>"; #Top info. |
That'll make it so it echos out stuff like <script> and it's contents as text and not HTML _________________
|
|
Back to top |
|
|
|