Runescape Exp tracker
Ik ben bezig met een clan website voor het spel runescape.
En ben al redelijk vergekomen zonder hulp.
Nu heb ik toch een vraag ik zoek een EXP tracker.
Zoals op runetracker
Daar word er bijgehouden hoeveel Xp ze in 24 uur hebben gekregen
Heeft iemand een script voor me wat ik kan gebruiken of weet iemand waar ik de
xp tracker ken downloaden.
Andy
googelen?
En ik hoop dus dat iemand mij op weg kan helpen hoe ik de xp trackers van die site of andere runescape xp trackers op mijn site kan laten showen
Gewijzigd op 15/05/2015 09:44:43 door andytjuh Bruggeman
Niet iedereen zit op Runescape en dergelijke clan-websites? Kan je wat meer uitleg en een voorbeeld geven over de XP?
http://www.07tracker.com/track/infinitesoul
Die website en meerdere houden bij hoeveel experience ik per dag heb gehaald.
Nu wil ik dus ook zoiets op mijn site hebben voor de clan.
Alles wat in het groen staat dat heb ik zeg maar vandaag aan xp gekregen.
En dat wil ik dus eigenlijk hebben op mijn site dat ik ken zien hoeveel mijn clan leden zijn geleveld in paar dagen tijd.
Gewijzigd op 15/05/2015 09:57:26 door andytjuh Bruggeman
Dan zou je elke dag een cronjob steeds de verschillen moeten laten uitrekenen, en die per user opslaan in de database.
Maar je kan misschien beter gewoon een site (http://runetracker.org/groups.php) scrapen met cURL naar een database zoals - Aar - aangeeft en de inhoud op je eigen site publiceren.
Een andere (nog betere) optie zou kunnen zijn dat je bij Runescape gaat kijken of er een web API beschikbaar is om die informatie zelf op te halen. Ze publiceren wel highscores via een API, misschien is dat wat je zoekt?
-> http://services.runescape.com/m=rswiki/en/Hiscores_APIs
Ik heb er niet heel uitvoerig naar gekeken, maar ik denk dat je je informatie daar moet kunnen vinden. Runetracker.org heeft het toch ook ergens vandaan.. en anders kan je altijd proberen om ze te mailen en te vragen. Een beetje extra PR voor Runescape vinden ze vast niet erg.
Alle records worden nu in de database opgeslagen.
---------------------
Update_id - Rank_XP
1 122.122
Update_id - Rank_XP
2 155.155
---------------------
Alleen nu zit ik een beetje vast.
Hoe kan ik de script nu laten kiezen voor de laatste Update_id en de vorige Update_id
Zodat ik daarna de Rank_xp van Update_id 1 van Update_id 2 kan aftrekken.
En elke x zodra er een nieuwe nieuwe Rank_xp en Update_id is dat de script dan ook die dan blijft zien dus dat die dan daarna 3 en 4 ziet en niet meer 1 en 2.
Gewijzigd op 15/05/2015 15:27:33 door andytjuh Bruggeman
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
*
FROM
`LEVELS` AS `L1`
WHERE
`L1`.`update_id` = (
SELECT MAX(`L2`.`update_id`)
FROM `LEVELS` AS `L2`
WHERE `L1`.`id` = `L2`.`id`
GROUP BY `L2`.`id`
LIMIT 1
)
;
*
FROM
`LEVELS` AS `L1`
WHERE
`L1`.`update_id` = (
SELECT MAX(`L2`.`update_id`)
FROM `LEVELS` AS `L2`
WHERE `L1`.`id` = `L2`.`id`
GROUP BY `L2`.`id`
LIMIT 1
)
;
En dan iets vergelijkbaars doen in de volgende UNION SELECT met het voorlaatste `update_id` uit LEVELS.
Of een tweede query in PHP.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT l.member_id as id,
m.name as name,
(max(l.xp) - min(l.xp)) as xp
from (
select u.id
from updates as u
order by u.id desc
limit 0,2
) u
join levels l
on l.update_id = u.id
join members m
on m.id = l.member_id
where l.skill_id = 1
group by l.member_id
order by xp desc
limit 0,3
m.name as name,
(max(l.xp) - min(l.xp)) as xp
from (
select u.id
from updates as u
order by u.id desc
limit 0,2
) u
join levels l
on l.update_id = u.id
join members m
on m.id = l.member_id
where l.skill_id = 1
group by l.member_id
order by xp desc
limit 0,3
Toevoeging op 16/05/2015 16:11:57:
Oke weer even een update alleen hij laat niks zien wat doe ik verkeerd ik ben net nieuw in deze query's met join en where etc.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$host_name = "localhost";
$database = ""; // Change your database name
$username = ""; // Your database user id
$password = ""; // Your password
//////// Do not Edit below /////////
try {
$dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$sql = 'SELECT l.member_id as id,
m.name as name,
(max(l.xp) - min(l.xp)) as xp
from (
select u.id
from updates as u
order by u.id desc
limit 0,2
) u
join levels l
on l.update_id = u.id
join members m
on m.id = l.member_id
where l.skill_id = 1
group by l.member_id
order by xp desc
limit 0,3';
foreach ($dbo->query($sql) as $row) {
echo "<tr ><td>$row[name]</td><td>$row[xp]</td></tr>";
}
?>
$host_name = "localhost";
$database = ""; // Change your database name
$username = ""; // Your database user id
$password = ""; // Your password
//////// Do not Edit below /////////
try {
$dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$sql = 'SELECT l.member_id as id,
m.name as name,
(max(l.xp) - min(l.xp)) as xp
from (
select u.id
from updates as u
order by u.id desc
limit 0,2
) u
join levels l
on l.update_id = u.id
join members m
on m.id = l.member_id
where l.skill_id = 1
group by l.member_id
order by xp desc
limit 0,3';
foreach ($dbo->query($sql) as $row) {
echo "<tr ><td>$row[name]</td><td>$row[xp]</td></tr>";
}
?>
Gewijzigd op 15/05/2015 22:20:44 door andytjuh Bruggeman