Aderik Posted November 6, 2010 Share Posted November 6, 2010 Mkays, this time I'm super stumped and I triple checked these forums and others and now I'm simply confused. I want this so that the user will have to have certain points in order to attain a new rank. function get_gameranks($level, $sapphire, $jade, $diamond, $garnet, $amber) { $tp=$level; $sapphire=$r['smspph']; $diamond=$r['smdiam']; $jade=$r['smjade']; $amber=$r['smambr']; $garnet=$r['smgrnt']; if ( $tp = 500 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " Emperor"; } else if ( $tp < 401 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " King"; } else if ( $tp > 401 & $sapphire <= 149 || $amber <= 149 || $diamond <= 149 || $garnet <= 149 || $jade <= 149) { return " King"; } else if ( $tp < 301 & $sapphire >= 100 & $amber >= 100 & $diamond >= 100 & $garnet >= 100 & $jade >= 100 ) { return " Prince"; } else if ( $tp > 301 & $sapphire <= 99 || $amber <= 99 || $diamond <= 99 || $garnet <= 99 || $jade <= 100 ) { return " Prince"; } else if ( $tp < 226 & $sapphire >= 100 & $amber >= 100 & $diamond >= 100 & $garnet >= 100 & $jade >= 100 ) { return " Duke"; } else if ( $tp > 226 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Duke"; } else if ( $tp < 151 & $sapphire >= 75 & $amber >= 75 & $diamond >= 75 & $garnet >= 75 & $jade >= 75 ) { return " Chancellor"; } else if ( $tp > 151 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Chancellor"; } else if ( $tp < 101 & $sapphire >= 75 & $amber >= 75 & $diamond >= 75 & $garnet >= 75 & $jade >= 75 ) { return " Grand General"; } else if ( $tp > 101 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Grand General"; } else if ( $tp < 76 & $sapphire >= 75 & $amber >= 75 & $diamond >= 75 & $garnet >= 75 & $jade >= 75 ) { return " Regent"; } else if ( $tp > 76 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Regent"; } else if ( $tp < 51 & $sapphire >= 50 & $amber >= 50 & $diamond >= 50 & $garnet >= 50 & $jade >= 50 ) { return " General"; } else if ( $tp > 51 & $sapphire <= 49 || $amber <= 49 || $diamond <= 49 || $garnet <= 49 || $jade <= 49 ) { return " General"; } else if ( $tp < 31 & $sapphire >= 30 & $amber >= 30 & $diamond >= 30 & $garnet >= 30 & $jade >= 30 ) { return " Governor"; } else if ( $tp > 31 & $sapphire <= 29 || $amber <= 29 || $diamond <= 29 || $garnet <= 29 || $jade <= 29 ) { return " Governor"; } else if ( $tp < 21 & $sapphire >= 20 & $amber >= 20 & $diamond >= 20 & $garnet >= 20 & $jade >= 20 ) { return " Captain"; } else if ( $tp > 21 & $sapphire <= 19 || $amber <= 19 || $diamond <= 19 || $garnet <= 19 || $jade <= 19 ) { return " Captain"; } else if ( $tp < 11 & $sapphire >= 10 & $amber >= 10 & $diamond >= 10 & $garnet >= 10 & $jade >= 10 ) { return " Lt. Governor"; } else if ( $tp > 11 & $sapphire <= 9 || $amber <= 9 || $diamond <= 9 || $garnet <= 9 || $jade <= 9 ) { return " Lt. Governor"; } else if ( $tp < 6 & $sapphire >= 5 & $amber >= 5 & $diamond >= 5 & $garnet >= 5 & $jade >= 5 ) { return " Officer"; } else if ( $tp > 6 & $sapphire <= 4 || $amber <= 4 || $diamond <= 4 || $garnet <= 4 || $jade <= 4 ) { return " Officer"; } else {return " Recruit"; } } The problem that is coming up is that the rank it gives all around is else if ( $tp < 401 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " King"; } I think I have the problem zeroed down to the fact that I'm not properly defining the $sapphire/$amber/$diamond/$garnet/$jade properly and it's ignoring it... unfortunately I haven't a clue how to fix it. Any help? Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 I found one problem, I believe its suppose to be if( 1 == 1 ){ Not if ( 1 = 1 ){ btw those were examples, you use just 1 = in your code. I might find more, but let me check the whole thing. Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Just to make it easy on you this code: if ( $tp = 500 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " Emperor"; } Should be this: if ( $tp == 500 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " Emperor"; } And I think you are using the return function wrong...could be wrong about that one though. Quote Link to comment Share on other sites More sharing options...
Aderik Posted November 6, 2010 Author Share Posted November 6, 2010 Editted as per suggestion but same effect, every member account currently says the rank is 'King' Edit: To expand, I have 14 NPC accounts of varying levels. Each of the NPCs should be within the range of one of these, but they all say king. Even my lvl 500 says king and not emperor. Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Then I am sorry I am probebly not good enough to figure this out I will try though. Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Edit: nvm Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Editv: nvm Quote Link to comment Share on other sites More sharing options...
Danny696 Posted November 6, 2010 Share Posted November 6, 2010 $tp=$level; $sapphire=$r['smspph']; $diamond=$r['smdiam']; $jade=$r['smjade']; $amber=$r['smambr']; $garnet=$r['smgrnt']; Replace with; $tp = $level; Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 $tp=$level; $sapphire=$r['smspph']; $diamond=$r['smdiam']; $jade=$r['smjade']; $amber=$r['smambr']; $garnet=$r['smgrnt']; Replace with; $tp = $level; Dang, I did not know that that mattered? Quote Link to comment Share on other sites More sharing options...
Danny696 Posted November 6, 2010 Share Posted November 6, 2010 you havent globaled $r, and they are all in the function params Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 I am guessing he has gobals.php on the page, he just did not include it when he showed us the code. Quote Link to comment Share on other sites More sharing options...
Danny696 Posted November 6, 2010 Share Posted November 6, 2010 Whats that got to do with anything :S Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Man I feel stupid today..... Quote Link to comment Share on other sites More sharing options...
Danny696 Posted November 6, 2010 Share Posted November 6, 2010 Chin up, you'll get it soon :) Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Maybe... Quote Link to comment Share on other sites More sharing options...
Aderik Posted November 6, 2010 Author Share Posted November 6, 2010 $tp=$level; $sapphire=$r['smspph']; $diamond=$r['smdiam']; $jade=$r['smjade']; $amber=$r['smambr']; $garnet=$r['smgrnt']; Replace with; $tp = $level; Tried and no change. Also if I remove those what would I use to get the $sapphire, $garnet, etc etc to be defined for each player in the statements? Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 6, 2010 Share Posted November 6, 2010 Try to echo each variable where the return king is to see each value and see if it works just try it. Quote Link to comment Share on other sites More sharing options...
Kieran-R Posted November 7, 2010 Share Posted November 7, 2010 Try this: function get_gameranks($level, $sapphire, $jade, $diamond, $garnet, $amber) { global $ir,$c,$userid,$level; $tp=$level; $sapphire=$r['smspph']; $diamond=$r['smdiam']; $jade=$r['smjade']; $amber=$r['smambr']; $garnet=$r['smgrnt']; if ( $tp = 500 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " Emperor"; } else if ( $tp < 401 & $sapphire >= 150 & $amber >= 150 & $diamond >= 150 & $garnet >= 150 & $jade >= 150 ) { return " King"; } else if ( $tp > 401 & $sapphire <= 149 || $amber <= 149 || $diamond <= 149 || $garnet <= 149 || $jade <= 149) { return " King"; } else if ( $tp < 301 & $sapphire >= 100 & $amber >= 100 & $diamond >= 100 & $garnet >= 100 & $jade >= 100 ) { return " Prince"; } else if ( $tp > 301 & $sapphire <= 99 || $amber <= 99 || $diamond <= 99 || $garnet <= 99 || $jade <= 100 ) { return " Prince"; } else if ( $tp < 226 & $sapphire >= 100 & $amber >= 100 & $diamond >= 100 & $garnet >= 100 & $jade >= 100 ) { return " Duke"; } else if ( $tp > 226 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Duke"; } else if ( $tp < 151 & $sapphire >= 75 & $amber >= 75 & $diamond >= 75 & $garnet >= 75 & $jade >= 75 ) { return " Chancellor"; } else if ( $tp > 151 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Chancellor"; } else if ( $tp < 101 & $sapphire >= 75 & $amber >= 75 & $diamond >= 75 & $garnet >= 75 & $jade >= 75 ) { return " Grand General"; } else if ( $tp > 101 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Grand General"; } else if ( $tp < 76 & $sapphire >= 75 & $amber >= 75 & $diamond >= 75 & $garnet >= 75 & $jade >= 75 ) { return " Regent"; } else if ( $tp > 76 & $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Regent"; } else if ( $tp < 51 & $sapphire >= 50 & $amber >= 50 & $diamond >= 50 & $garnet >= 50 & $jade >= 50 ) { return " General"; } else if ( $tp > 51 & $sapphire <= 49 || $amber <= 49 || $diamond <= 49 || $garnet <= 49 || $jade <= 49 ) { return " General"; } else if ( $tp < 31 & $sapphire >= 30 & $amber >= 30 & $diamond >= 30 & $garnet >= 30 & $jade >= 30 ) { return " Governor"; } else if ( $tp > 31 & $sapphire <= 29 || $amber <= 29 || $diamond <= 29 || $garnet <= 29 || $jade <= 29 ) { return " Governor"; } else if ( $tp < 21 & $sapphire >= 20 & $amber >= 20 & $diamond >= 20 & $garnet >= 20 & $jade >= 20 ) { return " Captain"; } else if ( $tp > 21 & $sapphire <= 19 || $amber <= 19 || $diamond <= 19 || $garnet <= 19 || $jade <= 19 ) { return " Captain"; } else if ( $tp < 11 & $sapphire >= 10 & $amber >= 10 & $diamond >= 10 & $garnet >= 10 & $jade >= 10 ) { return " Lt. Governor"; } else if ( $tp > 11 & $sapphire <= 9 || $amber <= 9 || $diamond <= 9 || $garnet <= 9 || $jade <= 9 ) { return " Lt. Governor"; } else if ( $tp < 6 & $sapphire >= 5 & $amber >= 5 & $diamond >= 5 & $garnet >= 5 & $jade >= 5 ) { return " Officer"; } else if ( $tp > 6 & $sapphire <= 4 || $amber <= 4 || $diamond <= 4 || $garnet <= 4 || $jade <= 4 ) { return " Officer"; } else {return " Recruit"; } } Quote Link to comment Share on other sites More sharing options...
Aderik Posted November 7, 2010 Author Share Posted November 7, 2010 No change :( Try to echo each variable where the return king is to see each value and see if it works just try it. Hehehe... please don't kill me when I say I don't know how to echo each value... Quote Link to comment Share on other sites More sharing options...
Djkanna Posted November 7, 2010 Share Posted November 7, 2010 Remove; $sapphire=$r['smspph']; $diamond=$r['smdiam']; $jade=$r['smjade']; $amber=$r['smambr']; $garnet=$r['smgrnt']; And make sure your sending everything through to the function. Quote Link to comment Share on other sites More sharing options...
Aderik Posted November 7, 2010 Author Share Posted November 7, 2010 function get_gameranks($level, $sapphire, $jade, $diamond, $garnet, $amber) { $tp=$level; if ( $tp == 500 && $sapphire >= 150 && $amber >= 150 && $diamond >= 150 && $garnet >= 150 && $jade >= 150 ) { return " Emperor"; } else if ( $tp <= 401 && $sapphire >= 150 && $amber >= 150 && $diamond >= 150 && $garnet >= 150 && $jade >= 150 ) { return " King"; } else if ( $tp >= 401 && $sapphire <= 149 || $amber <= 149 || $diamond <= 149 || $garnet <= 149 || $jade <= 149) { return " King"; } else if ( $tp <= 301 && $sapphire >= 100 && $amber >= 100 && $diamond >= 100 && $garnet >= 100 && $jade >= 100 ) { return " Prince"; } else if ( $tp >= 301 && $sapphire <= 99 || $amber <= 99 || $diamond <= 99 || $garnet <= 99 || $jade <= 100 ) { return " Prince"; } else if ( $tp <= 226 && $sapphire >= 100 && $amber >= 100 && $diamond >= 100 && $garnet >= 100 && $jade >= 100 ) { return " Duke"; } else if ( $tp >= 226 && $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Duke"; } else if ( $tp <= 151 && $sapphire >= 75 && $amber >= 75 && $diamond >= 75 && $garnet >= 75 && $jade >= 75 ) { return " Chancellor"; } else if ( $tp >= 151 && $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Chancellor"; } else if ( $tp <= 101 && $sapphire >= 75 && $amber >= 75 && $diamond >= 75 && $garnet >= 75 && $jade >= 75 ) { return " Grand General"; } else if ( $tp >= 101 && $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Grand General"; } else if ( $tp <= 76 && $sapphire >= 75 && $amber >= 75 && $diamond >= 75 && $garnet >= 75 && $jade >= 75 ) { return " Regent"; } else if ( $tp >= 76 && $sapphire <= 74 || $amber <= 74 || $diamond <= 74 || $garnet <= 74 || $jade <= 74 ) { return " Regent"; } else if ( $tp <= 51 && $sapphire >= 50 && $amber >= 50 && $diamond >= 50 && $garnet >= 50 && $jade >= 50 ) { return " General"; } else if ( $tp >= 51 && $sapphire <= 49 || $amber <= 49 || $diamond <= 49 || $garnet <= 49 || $jade <= 49 ) { return " General"; } else if ( $tp <= 31 && $sapphire >= 30 && $amber >= 30 && $diamond >= 30 && $garnet >= 30 && $jade >= 30 ) { return " Governor"; } else if ( $tp >= 31 && $sapphire <= 29 || $amber <= 29 || $diamond <= 29 || $garnet <= 29 || $jade <= 29 ) { return " Governor"; } else if ( $tp <= 21 && $sapphire >= 20 && $amber >= 20 && $diamond >= 20 && $garnet >= 20 && $jade >= 20 ) { return " Captain"; } else if ( $tp >= 21 && $sapphire <= 19 || $amber <= 19 || $diamond <= 19 || $garnet <= 19 || $jade <= 19 ) { return " Captain"; } else if ( $tp <= 11 && $sapphire >= 10 && $amber >= 10 && $diamond >= 10 && $garnet >= 10 && $jade >= 10 ) { return " Lt. Governor"; } else if ( $tp >= 11 && $sapphire <= 9 || $amber <= 9 || $diamond <= 9 || $garnet <= 9 || $jade <= 9 ) { return " Lt. Governor"; } else if ( $tp <= 6 && $sapphire >= 5 && $amber >= 5 && $diamond >= 5 && $garnet >= 5 && $jade >= 5 ) { return " Officer"; } else if ( $tp >= 6 && $sapphire <= 4 || $amber <= 4 || $diamond <= 4 || $garnet <= 4 || $jade <= 4 ) { return " Officer"; } else if ( $tp <= 2 ) {return " Recruit"; } } What I currently have. My level 500 has 300 of each of the points I want to give him the rank Emperor, currently ranked King. Quote Link to comment Share on other sites More sharing options...
Djkanna Posted November 7, 2010 Share Posted November 7, 2010 And your sending values to all these; $level, $sapphire, $jade, $diamond, $garnet, $amber ? Something like: get_gameranks($r['level'], $r['sapphire'], $r['jade'], $r['diamond'], $r['garnet'], $r['amber']); Quote Link to comment Share on other sites More sharing options...
Blade Maker Posted November 7, 2010 Share Posted November 7, 2010 Read your private message I think I found out a solution. Quote Link to comment Share on other sites More sharing options...
Aderik Posted November 7, 2010 Author Share Posted November 7, 2010 And your sending values to all these; $level, $sapphire, $jade, $diamond, $garnet, $amber ? Something like: get_gameranks($r['level'], $r['sapphire'], $r['jade'], $r['diamond'], $r['garnet'], $r['amber']); That's actually the reason I posted, I wasn't sure if what I was using actually gave them a value. So would I replace get_gameranks($level, $sapphire, $jade, $diamond, $garnet, $amber) with get_gameranks($r['level'], $r['sapphire'], $r['jade'], $r['diamond'], $r['garnet'], $r['amber']); ? And then adjust the If statements to match? or if there another area I would define their values? These global functions are trickier than other pages... Quote Link to comment Share on other sites More sharing options...
Djkanna Posted November 7, 2010 Share Posted November 7, 2010 No when you call get_gameranks IE $rank = get_gameranks($r['level'], $r['sapphire'], $r['jade'], $r['diamond'], $r['garnet'], $r['amber']); echo $rank; The function is okay as is. Quote Link to comment Share on other sites More sharing options...
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.