Jump to content
MakeWebGames

Recommended Posts

Posted

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?

Posted

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.

Posted

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.

Posted
$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?

Posted

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"; }

}
Posted

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...

Posted

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.

Posted
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.

Posted

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']);

Posted

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...

Posted

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.

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...