Jump to content
MakeWebGames

Recommended Posts

Posted

I know it is possible to limit the amount of Exp players get when attacking.

Can it be done so that

Level 1 - 20 Can only get the max amount of exp being 25%

Level 21 - 100 Can only get up to 15%

Level 101 - 200 Can only get 10%

And then level 201 and above can only get up to 7% Exp

If anyone can help me I don't mind paying for this to be done

Posted

Re: Limit Exp For Levels

Well to get a % you have to do something like this (wont work as it is, but work on it)

$exp = $r['expgain'] / 100 * 25

Or whatever the exp gain is called.

I'm sure this can be done with an array, but I can't use them properly. (Array with the levels and how much exp they would gain, keeping vars to a minimum).

No need to pay for this, wait for someone who can use Arrays nicely to get on, and if they want to they can help. This will only take a minute or 2 for them.

Posted

Re: Limit Exp For Levels

Heres a simple one but not very good.

 

$exp1 = $r['expgain'] / 100 * 25;

$exp2 = $r['expgain'] / 100 * 15;

$exp3 = $r['expgain'] / 100 * 10;

$exp4 = $r['expgain'] / 100 * 7;

if($r['level'] < 20

{

UPDATE users set EXP = EXP + $exp1

}

expand on that

Posted

Re: Limit Exp For Levels

You don't need to PM your attack page.

All EXP is in other file. None of it is in the attack.php

And example of what to do is this.

 

if($ir['level'] <= 20)
{
$expgain = $expgain > $ir['exp_needed'] / 100 * 25 ? $ir['exp_needed']/100*25 : $expgain;
}
else if($ir['level'] > 20 && $ir['level'] <= 100)
{
$expgain = $expgain > $ir['exp_needed'] / 100 * 15 ? $ir['exp_needed']/100*15 : $expgain;
}

and so on...

Posted

Re: Limit Exp For Levels

I see can you tell me what line I should put that under then I can work from there

Attack Leave :

 

<?php
$atkpage=1;
include "globals.php";

$_GET['ID']=abs(@intval($_GET['ID']));
$_SESSION['attacking']=0;
$ir['attacking']=0;
$db->query("UPDATE users SET attacking=0 WHERE userid=$userid");
$od=$db->query("SELECT * FROM users WHERE userid={$_GET['ID']}");
if($_SESSION['attackwon'] != $_GET['ID'])
{
die ("Cheaters don't get anywhere.");
}
if($db->num_rows($od))
{
$r=$db->fetch_row($od);
$gq=$db->query("SELECT * FROM gangs WHERE gangID={$r['gang']}");
$ga=$db->fetch_row($gq);
if($r['hp'] == 1)
{
print "What a cheater u are.";
}
else
{
print "You beat {$r['username']} ";
$qe=$r['level']*$r['level']*$r['level'];
$expgain=rand($qe/2,$qe);
$expperc=(int) ($expgain/$ir['exp_needed']*100);
print "and gained $expperc% EXP!

You hide your weapons and drop {$r['username']} off outside the hospital entrance. Feeling satisfied, you walk home.";
$hosptime=rand(10,20);
$db->query("UPDATE users SET exp=exp+$expgain WHERE userid=$userid");
$db->query("UPDATE users SET hp=1,hospital=$hosptime,hospreason='Left by <a href=\'viewuser.php?u={$userid}\'>{$ir['username']}</a>' WHERE userid={$r['userid']}");
event_add($r['userid'],"[url='viewuser.php?u=$userid']{$ir['username']}[/url] attacked you and left you lying outside the hospital.",$c,'combat');
$atklog=mysql_escape_string($_SESSION['attacklog']);
$db->query("INSERT INTO attacklogs VALUES('',$userid,{$_GET['ID']},'won',unix_timestamp(),-2,'$atklog');");
$_SESSION['attackwon']=0;
$warq=$db->query("SELECT * FROM gangwars WHERE (warDECLARER={$ir['gang']} AND warDECLARED={$r['gang']}) OR (warDECLARED={$ir['gang']} AND warDECLARER={$r['gang']})");
if ($db->num_rows($warq) > 0)
{
$war=$db->fetch_row($warq);
$db->query("UPDATE gangs SET gangRESPECT=gangRESPECT-1 WHERE gangID={$r['gang']}");
$ga['gangRESPECT']-=1;
$db->query("UPDATE gangs SET gangRESPECT=gangRESPECT+1 WHERE gangID={$ir['gang']}");
print "
You earnt 1 respect for your gang!";

}
//Gang Kill
if ($ga['gangRESPECT']<=0 && $r['gang'])
{
$db->query("UPDATE users SET gang=0 WHERE gang={$r['gang']}");

$db->query("DELETE FROM gangs WHERE gangRESPECT<='0'");
$db->query("DELETE FROM gangwars WHERE warDECLARER={$ga['gangID']} or warDECLARED={$ga['gangID']}");
}
$npcs=array(
);


if($r['user_level']==0)
{
$q=$db->query("SELECT * FROM challengebots WHERE cb_npcid={$r['userid']}");
if ($db->num_rows($q)) {
$cb=$db->fetch_row($q);
$qk=$db->query("SELECT * FROM challengesbeaten WHERE userid=$userid AND npcid={$r['userid']}");
if(!$db->num_rows($qk))
{
$m=$cb['cb_money'];
$db->query("UPDATE users SET money=money+$m WHERE userid=$userid");
print "
You gained \$$m for beating the challenge bot {$r['username']}";
$db->query("INSERT INTO challengesbeaten VALUES($userid, {$r['userid']})");
}
}
}


}
}
else
{
print "You beat Mr. non-existant!";
}

$h->endpage();
?>
Posted

Re: Limit Exp For Levels

Try this out.

 

<?php
$atkpage=1;
include "globals.php";

$_GET['ID']=abs(@intval($_GET['ID']));
$_SESSION['attacking']=0;
$ir['attacking']=0;
$db->query("UPDATE users SET attacking=0 WHERE userid=$userid");
$od=$db->query("SELECT * FROM users WHERE userid={$_GET['ID']}");
if($_SESSION['attackwon'] != $_GET['ID'])
{
die ("Cheaters don't get anywhere.");
}
if($db->num_rows($od))
{
$r=$db->fetch_row($od);
$gq=$db->query("SELECT * FROM gangs WHERE gangID={$r['gang']}");
$ga=$db->fetch_row($gq);
if($r['hp'] == 1)
{
print "What a cheater u are.";
}
else
{
print "You beat {$r['username']} ";
$qe=$r['level']*$r['level']*$r['level'];
$expgain=rand($qe/2,$qe);
if($ir['level'] <= 20)
{
$expgain = $expgain > $ir['exp_needed'] / 100 * 25 ? $ir['exp_needed']/100*25 : $expgain;
}
else if($ir['level'] > 20 && $ir['level'] <= 100)
{
$expgain = $expgain > $ir['exp_needed'] / 100 * 15 ? $ir['exp_needed']/100*15 : $expgain;
}
else if($ir['level'] > 100 && $ir['level'] <= 200)
{
$expgain = $expgain > $ir['exp_needed'] / 100 * 10 ? $ir['exp_needed']/100*10 : $expgain;
}
else
{
$expgain = $expgain > $ir['exp_needed'] / 100 * 7 ? $ir['exp_needed']/100*7 : $expgain;
}
$expperc=(int) ($expgain/$ir['exp_needed']*100);
print "and gained $expperc% EXP!

You hide your weapons and drop {$r['username']} off outside the hospital entrance. Feeling satisfied, you walk home.";
$hosptime=rand(10,20);
$db->query("UPDATE users SET exp=exp+$expgain WHERE userid=$userid");
$db->query("UPDATE users SET hp=1,hospital=$hosptime,hospreason='Left by <a href=\'viewuser.php?u={$userid}\'>{$ir['username']}</a>' WHERE userid={$r['userid']}");
event_add($r['userid'],"[url='viewuser.php?u=$userid']{$ir['username']}[/url] attacked you and left you lying outside the hospital.",$c,'combat');
$atklog=mysql_escape_string($_SESSION['attacklog']);
$db->query("INSERT INTO attacklogs VALUES('',$userid,{$_GET['ID']},'won',unix_timestamp(),-2,'$atklog');");
$_SESSION['attackwon']=0;
$warq=$db->query("SELECT * FROM gangwars WHERE (warDECLARER={$ir['gang']} AND warDECLARED={$r['gang']}) OR (warDECLARED={$ir['gang']} AND warDECLARER={$r['gang']})");
if ($db->num_rows($warq) > 0)
{
$war=$db->fetch_row($warq);
$db->query("UPDATE gangs SET gangRESPECT=gangRESPECT-1 WHERE gangID={$r['gang']}");
$ga['gangRESPECT']-=1;
$db->query("UPDATE gangs SET gangRESPECT=gangRESPECT+1 WHERE gangID={$ir['gang']}");
print "
You earnt 1 respect for your gang!";

}
//Gang Kill
if ($ga['gangRESPECT']<=0 && $r['gang'])
{
$db->query("UPDATE users SET gang=0 WHERE gang={$r['gang']}");

$db->query("DELETE FROM gangs WHERE gangRESPECT<='0'");
$db->query("DELETE FROM gangwars WHERE warDECLARER={$ga['gangID']} or warDECLARED={$ga['gangID']}");
}
$npcs=array(
);


if($r['user_level']==0)
{
$q=$db->query("SELECT * FROM challengebots WHERE cb_npcid={$r['userid']}");
if ($db->num_rows($q)) {
$cb=$db->fetch_row($q);
$qk=$db->query("SELECT * FROM challengesbeaten WHERE userid=$userid AND npcid={$r['userid']}");
if(!$db->num_rows($qk))
{
$m=$cb['cb_money'];
$db->query("UPDATE users SET money=money+$m WHERE userid=$userid");
print "
You gained \$$m for beating the challenge bot {$r['username']}";
$db->query("INSERT INTO challengesbeaten VALUES($userid, {$r['userid']})");
}
}
}


}
}
else
{
print "You beat Mr. non-existant!";
}

$h->endpage();
?>
Posted

Re: Limit Exp For Levels

This kind of works.

But it's not a random amount of exp it's the highest amount of exp that they get.

so level 1 always gets 25 % exp

Posted

Re: Limit Exp For Levels

hum... try this one then

 

<?php
$atkpage=1;
include "globals.php";

$_GET['ID']=abs(@intval($_GET['ID']));
$_SESSION['attacking']=0;
$ir['attacking']=0;
$db->query("UPDATE users SET attacking=0 WHERE userid=$userid");
$od=$db->query("SELECT * FROM users WHERE userid={$_GET['ID']}");
if($_SESSION['attackwon'] != $_GET['ID'])
{
die ("Cheaters don't get anywhere.");
}
if($db->num_rows($od))
{
$r=$db->fetch_row($od);
$gq=$db->query("SELECT * FROM gangs WHERE gangID={$r['gang']}");
$ga=$db->fetch_row($gq);
if($r['hp'] == 1)
{
print "What a cheater u are.";
}
else
{
print "You beat {$r['username']} ";
$qe=$r['level']*$r['level']*$r['level'];
if($ir['level'] <= 20)
{
$expgain = rand($qe/2,$qe) > $ir['exp_needed'] / 100 * 25 ? $ir['exp_needed']/100*25 : rand($qe/2,$qe);
}
else if($ir['level'] > 20 && $ir['level'] <= 100)
{
$expgain = rand($qe/2,$qe) > $ir['exp_needed'] / 100 * 15 ? $ir['exp_needed']/100*15 : rand($qe/2,$qe);
}
else if($ir['level'] > 100 && $ir['level'] <= 200)
{
$expgain = rand($qe/2,$qe) > $ir['exp_needed'] / 100 * 10 ? $ir['exp_needed']/100*10 : rand($qe/2,$qe);
}
else
{
$expgain = rand($qe/2,$qe) > $ir['exp_needed'] / 100 * 7 ? $ir['exp_needed']/100*7 : rand($qe/2,$qe);
}
$expperc=(int) ($expgain/$ir['exp_needed']*100);
print "and gained $expperc% EXP!

You hide your weapons and drop {$r['username']} off outside the hospital entrance. Feeling satisfied, you walk home.";
$hosptime=rand(10,20);
$db->query("UPDATE users SET exp=exp+$expgain WHERE userid=$userid");
$db->query("UPDATE users SET hp=1,hospital=$hosptime,hospreason='Left by <a href=\'viewuser.php?u={$userid}\'>{$ir['username']}</a>' WHERE userid={$r['userid']}");
event_add($r['userid'],"[url='viewuser.php?u=$userid']{$ir['username']}[/url] attacked you and left you lying outside the hospital.",$c,'combat');
$atklog=mysql_escape_string($_SESSION['attacklog']);
$db->query("INSERT INTO attacklogs VALUES('',$userid,{$_GET['ID']},'won',unix_timestamp(),-2,'$atklog');");
$_SESSION['attackwon']=0;
$warq=$db->query("SELECT * FROM gangwars WHERE (warDECLARER={$ir['gang']} AND warDECLARED={$r['gang']}) OR (warDECLARED={$ir['gang']} AND warDECLARER={$r['gang']})");
if ($db->num_rows($warq) > 0)
{
$war=$db->fetch_row($warq);
$db->query("UPDATE gangs SET gangRESPECT=gangRESPECT-1 WHERE gangID={$r['gang']}");
$ga['gangRESPECT']-=1;
$db->query("UPDATE gangs SET gangRESPECT=gangRESPECT+1 WHERE gangID={$ir['gang']}");
print "
You earnt 1 respect for your gang!";

}
//Gang Kill
if ($ga['gangRESPECT']<=0 && $r['gang'])
{
$db->query("UPDATE users SET gang=0 WHERE gang={$r['gang']}");

$db->query("DELETE FROM gangs WHERE gangRESPECT<='0'");
$db->query("DELETE FROM gangwars WHERE warDECLARER={$ga['gangID']} or warDECLARED={$ga['gangID']}");
}
$npcs=array(
);


if($r['user_level']==0)
{
$q=$db->query("SELECT * FROM challengebots WHERE cb_npcid={$r['userid']}");
if ($db->num_rows($q)) {
$cb=$db->fetch_row($q);
$qk=$db->query("SELECT * FROM challengesbeaten WHERE userid=$userid AND npcid={$r['userid']}");
if(!$db->num_rows($qk))
{
$m=$cb['cb_money'];
$db->query("UPDATE users SET money=money+$m WHERE userid=$userid");
print "
You gained \$$m for beating the challenge bot {$r['username']}";
$db->query("INSERT INTO challengesbeaten VALUES($userid, {$r['userid']})");
}
}
}


}
}
else
{
print "You beat Mr. non-existant!";
}

$h->endpage();
?>

 

Also is that level one verse level 1? or higher?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...