Strats Posted September 4, 2009 Posted September 4, 2009 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 Quote
gurpreet Posted September 4, 2009 Posted September 4, 2009 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. Quote
Strats Posted September 4, 2009 Author Posted September 4, 2009 Re: Limit Exp For Levels It's good if it can be done. :-) Quote
gurpreet Posted September 4, 2009 Posted September 4, 2009 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 Quote
Strats Posted September 4, 2009 Author Posted September 4, 2009 Re: Limit Exp For Levels Thanks I will look in to this Quote
Haunted Dawg Posted September 4, 2009 Posted September 4, 2009 Re: Limit Exp For Levels Post your attack win script here i will happily modify it for you. Quote
Strats Posted September 4, 2009 Author Posted September 4, 2009 Re: Limit Exp For Levels Will it only be attack that needs to be changed? Or attack leave ect I cannot post my attack up as It's a paid mod I will Pm you Quote
AlabamaHit Posted September 4, 2009 Posted September 4, 2009 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... Quote
Strats Posted September 5, 2009 Author Posted September 5, 2009 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(); ?> Quote
AlabamaHit Posted September 5, 2009 Posted September 5, 2009 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(); ?> Quote
Strats Posted September 6, 2009 Author Posted September 6, 2009 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 Quote
AlabamaHit Posted September 6, 2009 Posted September 6, 2009 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? Quote
Strats Posted September 6, 2009 Author Posted September 6, 2009 Re: Limit Exp For Levels It's the same. For a level 1 to hit a level 28 Allways gets 25% exp Quote
AlabamaHit Posted September 6, 2009 Posted September 6, 2009 Re: Limit Exp For Levels .....of course they will get 25% if they are level 1 and beatign level 25.. Try level 1 vs level 1 Quote
Strats Posted September 14, 2009 Author Posted September 14, 2009 Thats fine, I just didn't want them always to get 25% just up to it. Made random so sometimes they get 2% and other 25% Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.