Skip to content
View in the app

A better way to browse. Learn more.

Tip.It Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Does anyone know how to make stat signatures?

Featured Replies

Does anyone know how to code them? I would like to make my own so it's more original.

~ Proud Father ~ Proud (Currently Deployed) Army National Guardsmen ~ Proud Lakota ~ Retired Tip.It Crew ~
 

Head over to one of the sites that hosts them, look for who made them, ect.. try asking them..

35b9enp.jpg

I believe there was a guide somewhere. I'll attempt to find it for you.

^^

 

Neither of the links work, at least for me.

 

 

 

And I couldn't find the guide, sorry.

  • Author

That's ok, thanks for trying.

~ Proud Father ~ Proud (Currently Deployed) Army National Guardsmen ~ Proud Lakota ~ Retired Tip.It Crew ~
 

runeweb seems to havent updated for a few months...

proud owner of bunny ears and scythe (rsc fo lyf)

muska007.png

runeweb seems to havent updated for a few months...

 

you have to manually update them on their site

 

~Ddaanniiellh

overall-1.png: 1437 combat.png: 173
Lowest Combat to 1,000 Total in F2P (23 Combat)
2r8i4.png
Check me out on YouTube!

Most sites use php to scrape the highscores off runescape.com, store them in a database and then use php again to create the image with the stats. It isn't too hard to do if you know a bit of php and the concepts behind it.

 

 

 

(No I don't have code to give you)

Most sites use php to scrape the highscores off runescape.com, store them in a database and then use php again to create the image with the stats. It isn't too hard to do if you know a bit of php and the concepts behind it.

 

 

 

(No I don't have code to give you)

 

 

 

1st he must retrieve and parse HTML from runescape website to get just required info like exp, skill levels & etc...

 

 

 

2nd he need learn GLib - is graphical library for php to code all sig creation...

 

 

 

But i suspect then that Websites use some template systems for sigs, because like i saw then diferent people done it and i dont beleawe then serious programmers start to do things like sigs, then i think they just developed some Sig engine for it and engine use some templates or something like that...

Suggestion: You can use Anchor on Waterfiends - is cheap if to compare to GS & effective with crush attack & it hit like Whip.

Maitvanagis.gif

Visit my exp track

Most sites use php to scrape the highscores off runescape.com, store them in a database and then use php again to create the image with the stats. It isn't too hard to do if you know a bit of php and the concepts behind it.

 

 

 

(No I don't have code to give you)

 

 

 

1st he must retrieve and parse HTML from runescape website to get just required info like exp, skill levels & etc...

 

 

 

2nd he need learn GLib - is graphical library for php to code all sig creation...

 

Which is exactly what I said. You use PHP (or whatever language you want) to scrape the highscores (download, parse, format into usable information, store for later use), and use to create the images (GD, ImageMagick, ect). Why repeat what I already said?

 

 

 

But i suspect then that Websites use some template systems for sigs, because like i saw then diferent people done it and i dont beleawe then serious programmers start to do things like sigs, then i think they just developed some Sig engine for it and engine use some templates or something like that...

 

You don't really need a template system. Most sites use the exact same text layout for each signature type and just change the background that's inserted behind it (different character, color, RS location, ect). That means you can just set the text locations to a static number and make the background variable depending on the setting. Lots easier than building some huge templating system. Believing 'serious programers' don't do things like dynamic signatures is just plain wrong too. Coding something simple doesn't automatically make you some kind of lame programer.

 

 

 

I specifically didn't list exactly what was needed because the question was extremely broad. He didn't specify if he knows any specific language (if at all) or how indepth he wanted to go with the explanations. Asking someone "How do I use scissors?" generally doesn't involve explaining the physics behind moving them and how the blades interact with what's being cut unless they specifically ask for it. :P

A while back I looked at how to code the dynamic sigs.

 

The basic is to parse the lite highscore values into a table. Then from this data write over a image with the data.

 

You then need to update the values every hour or so to ensure the sig is dynamic.

 

 

 

[hide=My code]Code for setting up a sig

 

<?php

//Variables

$UserName=strtolower($_GET['UserName']);



$skills[0]="Overall";

$skills[1]="Attack";

$skills[2]="Defence";

$skills[3]="Strength";

$skills[4]="Hitpoints";

$skills[5]="Range";

$skills[6]="Prayer";

$skills[7]="Magic";

$skills[8]="Cooking";

$skills[9]="Woodcutting";

$skills[10]="Fletching";

$skills[11]="Fishing";

$skills[12]="Firemaking";

$skills[13]="Crafting";

$skills[14]="Smithing";

$skills[15]="Mining";

$skills[16]="Herblore";

$skills[17]="Agility";

$skills[18]="Thieving";

$skills[19]="Slayer";

$skills[20]="Farming";

$skills[21]="Runecrafting";

$skills[22]="Hunter";

$skills[23]="Construction";



$count=0;



$con = mysql_connect("localhost","root","");

if (!$con)

 {

 die('Could not connect: ' . mysql_error());

 }



mysql_select_db("RuneScape", $con);

$Found=0;

$result=mysql_query("SELECT * FROM usernames");

while($row=mysql_fetch_array($result))

{

if ($UserName==$row['UserName'])

$Found=1;

}

if ($Found==1)

{

echo "Your username already has a sig";

}

else

{

//Add user to usernames table (to avoid duplicates)

mysql_query("INSERT INTO usernames (`UserName`) 

VALUES ('".$UserName."')");



//Get stats

$file=fopen("stats.txt","w");

fwrite($file,rtrim(file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=".$UserName."")));

fclose($file);



$file=fopen("stats.txt","r");



//while not eof of file get each line and break them up using the  "," as seperator, then add them to the database

while(!feof($file))

{

$str=fgets($file);



$temp=explode("," ,$str);



mysql_query("INSERT INTO stats (`UserName`,`ID`, `Skill`, `Rank`,`Level`,`Exp`) 

VALUES ('".$UserName."','".$count."', '".$skills[$count]."', '".$temp[0]."','".$temp[1]."','".$temp[2]."')");



$count++;

}

fclose($file);

$count=0;

}

mysql_close($con);

?>

 

 

 

Code for viewing the sig

 

<?php

//Variables

$UserName=strtolower($_GET['UserName']);



$coords[0]="37,10";//Attack

$coords[1]="37,72";//Defence

$coords[2]="37,42";//Strength

$coords[3]="37,97";//Hitpoints

$coords[4]="37,123";//Range

$coords[5]="98,42";//Prayer

$coords[6]="98,10";//Magic

$coords[7]="333,72";//Cooking

$coords[8]="333,97";//Woodcutting

$coords[9]="273,118";//Fletching

$coords[10]="273,42";//Fishing

$coords[11]="153,42";//Firemaking

$coords[12]="333,42";//Crafting

$coords[13]="153,10";//Smithing

$coords[14]="273,79";//Mining

$coords[15]="96,123";//Herblore

$coords[16]="213,42";//Agility

$coords[17]="96,97";//Thieving

$coords[18]="213,10";//Slayer

$coords[19]="333,123";//Farming

$coords[20]="96,72";//Runecrafting

$coords[21]="273,10";//Hunter

$coords[22]="333,10";//Construction



$count=0;



$con = mysql_connect("localhost","root","");

if (!$con)

 {

 die('Could not connect: ' . mysql_error());

 }



mysql_select_db("RuneScape", $con);

$count=0;

$result=mysql_query("SELECT * FROM stats WHERE UserName='".$UserName."' ORDER BY `ID`");

//Creating the image

$im=imagecreatefrompng("sigbase.png");

$textcolor = imagecolorallocate($im, 255, 255, 255);

$greycolor= imagecolorallocate($im, 125, 125, 125);

while($row = mysql_fetch_array($result))

{

if ($count>0&&$count<=23)

{

$temp2=explode(",",$coords[$count-1]);

imagestring($im,5,$temp2[0],$temp2[1],$row["Level"],$textcolor);

}

$count++;

}

mysql_close($con);

//Image displaying

header("Content-type: image/png");

$font=imageloadfont("testfont.gdf");

$topsideup=imagerotate($im,90,0);

imagestring($topsideup,$font,10,10,$UserName,$greycolor);

imagestring($topsideup,$font,11,11,$UserName,$textcolor);



$im=imagerotate($topsideup,270,0);

imagepng($im);

imagedestroy($im);

?> 

 

 

 

Code for updating the sigs from the lite highscores

 

<?php

//Variables

$UserName=strtolower($_GET['UserName']);



$skills[0]="Overall";

$skills[1]="Attack";

$skills[2]="Defence";

$skills[3]="Strength";

$skills[4]="Hitpoints";

$skills[5]="Range";

$skills[6]="Prayer";

$skills[7]="Magic";

$skills[8]="Cooking";

$skills[9]="Woodcutting";

$skills[10]="Fletching";

$skills[11]="Fishing";

$skills[12]="Firemaking";

$skills[13]="Crafting";

$skills[14]="Smithing";

$skills[15]="Mining";

$skills[16]="Herblore";

$skills[17]="Agility";

$skills[18]="Thieving";

$skills[19]="Slayer";

$skills[20]="Farming";

$skills[21]="Runecrafting";

$skills[22]="Hunter";

$skills[23]="Construction";



$count=0;



$con = mysql_connect("localhost","root","");

if (!$con)

 {

 die('Could not connect: ' . mysql_error());

 }

mysql_select_db("RuneScape", $con);

$result=mysql_query("SELECT * FROM usernames");

while($row=mysql_fetch_array($result))

{

$User[$count]=$row["UserName"];

$count++;

}

$Users=$count;



for ($ForCount=0;$ForCount<$Users;$ForCount++)

{

$result=mysql_query("SELECT * FROM stats WHERE UserName='".$User[$ForCount]."' AND ID='0'");

while($row=mysql_fetch_array($result))

{

$TTlvl[$ForCount]=$row['Level'];

}

//Get stats

$file=fopen("stats.txt","w");

fwrite($file,rtrim(file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=".$User[$ForCount])));

fclose($file);

$file=fopen("stats.txt","r");

$count=0;

$eject=0;

//while not eof of file get each line and break them up using the  "," as seperator, then add them to the database

while(!feof($file)&&$eject==0)

{

$str=fgets($file);

$temp=explode("," ,$str);

if ($count==0&&$temp[1]==$TTlvl[$ForCount])

{

$eject=1;

}

else

{

mysql_query("UPDATE stats SET `Rank`='".$temp[0]."', `Level`='".$temp[1]."', `Exp`='".$temp[2]."'

WHERE `ID`='".$count."' AND UserName='".$User[$ForCount]."'");

$count++;

}

}

fclose($file);

}





?>

 

The Code to view the sig is simply

 

[/hide]

 

Note The code was made just after the highscores lite was introduced and has been changes for a good while so there are more then likey a few additions/edits which could be made.

 

But its the basic outline.

 

Also I'm thinking about writing the database (to make it less messy) therefore a lot of the code would be changed.

[hide=Drops]

  • Dragon Axe x11
    Berserker Ring x9
    Warrior Ring x8
    Seercull
    Dragon Med
    Dragon Boots x4 - all less then 30 kc
    Godsword Shard (bandos)
    Granite Maul x 3

Solo only - doesn't include barrows[/hide][hide=Stats]

joe_da_studd.png[/hide]

wow, file_get_contents :P

 

 

 

Seriously, use cURL :)

 

 

 

Also , for the skills array , why make it 24 lines when it could just be one ?

 

 

 

 

 

And I don't know if that code is actually in use , but using the root mysql account for scripts/application is probably the worst choice :)

I like to fart silently but deadly in movie theaters
Ard Choille says (11:41 PM):

I wouldn't dare tell you what to do m'dear

wow, file_get_contents :P

 

 

 

Seriously, use cURL :)

 

 

 

Also , for the skills array , why make it 24 lines when it could just be one ?

 

 

 

 

 

And I don't know if that code is actually in use , but using the root mysql account for scripts/application is probably the worst choice :)

 

I wrote the code in a matter of minutes a while back.

 

I only created it as a mini project (it failed due to my lack of web host).

 

The code does work, but your right it does need rewriting. When I finally get my web host I'll rewrite all the code and the mysql db.

 

Thanks for the heads up on the cURL, I'll have a look into it.

[hide=Drops]

  • Dragon Axe x11
    Berserker Ring x9
    Warrior Ring x8
    Seercull
    Dragon Med
    Dragon Boots x4 - all less then 30 kc
    Godsword Shard (bandos)
    Granite Maul x 3

Solo only - doesn't include barrows[/hide][hide=Stats]

joe_da_studd.png[/hide]

  • Author
wow, file_get_contents :P

 

 

 

Seriously, use cURL :)

 

 

 

Also , for the skills array , why make it 24 lines when it could just be one ?

 

 

 

 

 

And I don't know if that code is actually in use , but using the root mysql account for scripts/application is probably the worst choice :)

 

 

 

So do you know how to make them?

~ Proud Father ~ Proud (Currently Deployed) Army National Guardsmen ~ Proud Lakota ~ Retired Tip.It Crew ~
 

I wrote a perl module for this some time ago(right after construction was introduced). It looks like it still works too. I never got around to putting in some POD doc though. This just gets the data. It doesn't create the image. You would need to use ImageMagick or something similar to do the graphic.

 


#Example

#use RuneStats;

#$stats = RuneStats->new('olgath');

#if($stats->{Success}) {

       #while(($key, $value) = each(%$stats)) {

               #print "$key = $value\n";

       #}

#}

#else {

       #print $stats->{Error};

#}





use LWP::Simple;

use strict;



sub new {

       my ($self, $user) = @_;

       my %STATS = ();

       my @runestats =    (

                               'Attack',

                               'Defence',

                               'Strength',

                               'Hitpoints',

                               'Ranged',

                               'Prayer',

                               'Magic',

                               'Cooking',

                               'Woodcutting',

                               'Fletching',

                               'Fishing',

                               'Firemaking',

                               'Crafting',

                               'Smithing',

                               'Mining',

                               'Herblore',

                               'Agility',

                               'Thieving',

                               'Slayer',

                               'Farming',

                               'Runecraft',

                               'Construction',

                               'Hunter',

                       );

	my $content = get("http://hiscore.runescape.com/lang/en/aff/runescape/hiscorepersonal.ws?user1=$user");

       	if($content) {



       	        if($content =~ /does not feature/) {

               	        $STATS{'Success'} = 0;

                       	$STATS{'Error'} = "$user is not in the high score list!";

               	}

               	else {



                        $STATS{'Success'} = 1;



       	                foreach(@runestats) {

               	                $content =~ /$_.*?\>(\d{2}|Not Ranked)\;

                       	        $STATS{$_} = $1;

                       	}

               	}



       		return \%STATS;

       	}





       else {

               $STATS{'Success'} = 0;

               $STATS{'Error'} = "Could not contact high score list!";

               return \%STATS;

       }

}



1;

Create an account or sign in to comment

Important Information

By using this site, you agree to our Terms of Use.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.