Olisiko jotain koodia joka tulostaisi runescapesta (http://www.runescape.com) tietyn hahmon taidot, tai vaikka vain yhden taidon?
Eipä tuollaista oikein taida saada, ellet sitten jotenkin pääse niiden tietokantoihin käsiksi, tai rupea väsäämään lähdekoodin hakua nettisivuilta. En suosittele yrittämään...
Voisin tuollaisen ajankuluksi värkätä.. saako pelaajan statsit näkyviin ilman, että täytyy kirjautua tuolle sivulle? Esim. Warcraftin statsit näkyy tällä tavalla kätevästi:
http://www.battle.net/war3/ladder/w3xp-player-logged-games.aspx?Gateway=Northrend&PlayerName=WreckeD
Jos se vaatii kirjautumisen, niin tuosta tulee vähän hankalampaa.
Juu, saa. Tässä olisi osoite miten sen saa:
http://hiscore.runescape.com/lang/en/aff/
Ja kiitti jos teet.
"Kayttajan Ni does not feature in the hiscores. You have to be in the top 1 million (for any skill) and have a minimum skill level of 30."
Että miten tuosta nyt sitten saisi jotain fiksua irti? :P
Korvaamalla URLista "kayttajan-nick-tahan" jollakin oikealla käyttäjänimellä. plx. Ja teen ton sulle viidelläkympillä.
Vähä enemmän googlea.
Tuohon tarkoitukseen löytyy suoraan valmis scripti. No itselätäni se löytyy kätköistä tässä muodossa:
$handle = fopen("http://hiscore.runescape.com/lang/en/aff/runescape/hiscorepersonal.ws?user1=" . $_GET['name'],"r"); if($handle){ while (!feof($handle)) { $contents .= fread($handle, 8192);} fclose($handle);} function parse($skill){ return substr(strstr($GLOBALS['contents'], '>'.$skill.'<'), strrpos(substr(strstr($GLOBALS['contents'], '>'.$skill.'<'), 1, 90), "</td><td align=") - 7, 2);} $skill = Array( 1 => parse(Attack), 4 => parse(Strength), 7 => parse(Defence), 10 => parse(Hitpoints), 13 => parse(Ranged), 16 => parse(Prayer), 19 => parse(Magic), 2 => parse(Cooking), 5 => parse(Woodcutting), 8 => parse(Fletching), 11 => parse(Fishing), 14 => parse(Firemaking), 17 => parse(Crafting), 20 => parse(Smithing), 3 => parse(Mining), 6 => parse(Herblore), 9 => parse(Agility), 12 => parse(Thieving), 15 => parse(Slayer), 18 => parse(Runecraft), 21 => parse(Farming) );
Tuosta puuttuu viimeisimmät taidot, mutta senkuks lisäät ne taulukkoon, ja kehittelet tuosta mitä ihmeellisimpiä scriptejä, kuten minä aikoinaan. ;)
Sinne meni viiskymppiä. Onpahan sen verran hirveän näköistä koodia, että sen täytyy toimia.
tsuriga kirjoitti:
Sinne meni viiskymppiä. Onpahan sen verran hirveän näköistä koodia, että sen täytyy toimia.
Ja pöh, luuletko et olisin vielä maksanukki sulle?
Ja... ööh... tiiän et oon surku php:ssä mut jos tohon loppuun laittaa
echo "" niin mitä noiden lainausmerkkien sisään tulee?
Kuten tsuriga asian mainitsi, sen verran hirveen näköstä koodia että sen täytyy toimia :) Ite en ainakaan muutaman minuutin silmäilyllä nähnyt tuossa päätä enkä häntää... Eli hyvin vaikea sanoa mitä tuosta pitäisi tulostaa.
Edit: eikun echo parse($skills);
? Toimii jos toimii.
echo $skill[1] ... $skill[21]?
<?php function parseRunescapeSkill($skill) { return substr(strstr($GLOBALS['hiscore_page'], '>' . $skill . '<'), strrpos(substr(strstr($GLOBALS['hiscore_page'], '>' . $skill . '<'), 1, 90), '</td><td align=') - 7, 2); } $hiscore_page = file_get_contents( "http://hiscore.runescape.com/lang/en/aff/runescape/hiscorepersonal.ws?user1=" . urlencode($_GET['name'])); $skills = array('Attack', 'Strength', 'Defence', 'Hitpoints', 'Ranged', 'Prayer', 'Magic', 'Cooking', 'Woodcutting', 'Fletching', 'Crafting', 'Smithing', 'Firemaking', 'Mining', 'Herblore', 'Agility', 'Thieving', 'Slayer', 'Runecraft', 'Farming', 'Hunter', 'Construction'); $levels = array(); foreach ($skills as $skill) { $levels[$skill] = parseRunescapeSkill($skill); } echo 'Mining: ' . $levels['Mining']; ?>
Tältä koodi siis voisi näyttää, jos se toimisi. Parserointimoduuli kaipaisi fixausta. Mee, lue oppaita ja lähde ite rakentamaan jostakin pienemmästä. Varmaan opit kohta itekin tämän korjaamaan.
http://msdos464.no-ip.com/php/rune.php?player=temptress69
:)
<html> <?php if (isset($_GET['player'])) { $name = $_GET['player']; $source = preg_replace("/(\n|\r)/", "", file_get_contents( 'http://hiscore.runescape.com/lang/en/aff/runescape/hiscorepersonal.ws?user1=' . urlencode($_GET['player']))); preg_match_all("/<tr><td align\=\"right\"><img(.*?)><\/td>(.*?)<\/a><\/td>(.*?)<\/tr>/", $source, $taul); echo "<table border=1>\n<tr><td>Skill</td><td align=right>Rank</td><td align=right>Level</td><td align=right>Xp</td></tr>\n"; for ($a = 0; $a < sizeof($taul[0]); $a++) echo "<tr><td>".substr($taul[2][$a], strrpos($taul[2][$a], "\">")+2)."</td>".$taul[3][$a]."</tr>\n"; echo "</table><p>\n"; } else $name = ""; echo "<form action=rune.php method=get><input name=player value=\"$name\"><input type=submit></form>"; ?> </html>
(Mod. edit: välejä pitkille riveille, kiltit. :< Menee leiska rikki ja tulee vaakasuuntainen scrollbar esiin.)
msdos464 kirjoitti:
...
Jaa, kiitos. Taidan käyttää tätä koodia. :). Ja vielä kiitos, juuri sellainen mitä pitikin!
Aihe on jo aika vanha, joten et voi enää vastata siihen.