JeuxOnLineForumsPlusConnectés : 863 (sites) | 1486 (forums)Créer un compte
Dark Age of Camelot
Technique et Automatisation
Les forums JOL > Dark Age of Camelot > DAoC - Technique et Automatisation > TOUT sur les XML, C'est par ici ! RSS
   
Répondre
Partager Outils Rechercher
digoclya
Prince / Princesse
 
Bonjours à tous.
Une question, j'ai lu les 23 pages ... peut etre sauté un ou 2 post.
La question de comment faire et tres bien traité ... mais celle du
Ou trouve t'on le numero de guilde ... lol

Donc ma question est la suivante, ou trouve t'on le numero de sa guilde?

merci d'avance
a+
Lien direct vers le message - Vieux
Avatar de Cam
Cam
Dauphin
 
Avatar de Cam
 
Citation:
Envoyé par digoclya Voir le message
Bonjours à tous.
Une question, j'ai lu les 23 pages ... peut etre sauté un ou 2 post.
La question de comment faire et tres bien traité ... mais celle du
Ou trouve t'on le numero de guilde ... lol

Donc ma question est la suivante, ou trouve t'on le numero de sa guilde?

merci d'avance
a+
ici : http://camelot-europe.goa.com/herald...guilds_mid.xml

remplace le serveur par le tiens et mid par hib ou alb et ca t'affichera la liste


Quand a moi j'ai un petit problème avec le script de Glenfidich censé afficher les 10 plus gros rang de ma guilde. Mais il n'est pas au point il m'affiche juste 10 membres au hazard aparament et sans aucune valeur pour les points de royaume Quelqu'un serais me dire mon erreur ?

Code:
<?php

    /*
    *    top10rpxml.php
    *    a Dark Age of Camelot Guild XML data parser that returns a guild roster
    *     sortable with some parameters like name, Realm Points, Level, etc...
    *    for use on Dark Age of Camelot community websites.
    *
    *    Dark Age of Camelot (or DAoC) is a MMORPG
    *    (massively multiplayer online rolepaying game)
    *    developed by Mythic Entertainment (http://www.mythicentertainment.com)
    *
    *    Author: Julien COQUET
    *    a.k.a Glenfiddich Singlemalt on DAoC Merlin/Albion
    *    e-mail glenfiddich@purpledragons.net
    *    http://www.purpledragons.net/xml/
    *
    *    Adapted from generic PHP code from http://www.php.net
    *
    *    Developed in February of 2004 under the GNU GPL License.
    *    For more information, visit http://www.gnu.org/licenses/gpl.html
    *
    *    Enjoy and please link to our site
    *    http://www.purpledragons.net
    * 
    *     Changelog: 
    *     September 9, 2003 : added support for realm title selection according to realm in XML
    *     March 28, 2003 : added UTF8 support for GOA XML - Euro servers only
    *     Feb. 25, 2003 : finally added $param as $_GET['param']
    */


class guildXML {

    /*
    *    This class takes a Dark Age of Camelot Herald XML guild data file and parses it
    */

        var $xml_parser;
        var $xml_file;
        var $html;
        var $open_tag ;
        var $close_tag ;
        var $in_char;
        var $in_alliance;
        var $chars_array;
        var $alliance_array;
        var $current_tag ='';

    /*
    *    Class Constructor
    */

    function guildXML() {
        $this->xml_parser = "";
        $this->xml_file = "";
        $this->html = "";
    }

//Class Destructor (has to be invoked manually as PHP does not support destructors)
    function destroy() {
        xml_parser_free($this->xml_parser);
    }

//Class Members
    function concat($str) {
        $this->html .= $str;
    }

    function startElement($parser, $name, $attrs) {
        global $totalchars, $num_activechars,$num_inactivechars, $insideElement, $in_char, $current_tag, $i;

        if (($in_char==1)||($in_alliance==1)){
            $current_tag = $name;
        }
        if ($name=='GUILD'){
            $current_tag= $name;
            if (sizeof($attrs)) {
                while (list($k, $v) = each($attrs)) {
                    if ($k=='GUILDRP'){$this->guildrp=$v;};
                    if ($k=='TIMESTAMP'){$this->timestamp=$v;};
                    if ($k=='REALM'){$this->realm=$v;};
                 }
            }
        }

        if ($name=='CHARACTER'){
            $in_alliance = 1;
        }
        if ($name=='CHARACTER'){
            $in_char=1;
            $totalchars++;
            if (sizeof($attrs)) {
                while (list($k, $v) = each($attrs)) {
                    if ($k=='NAME'){
                        $this->chars_array[$i]['name']=trim($v);
                        $this->chars_array[$i]['firstname']= trim (substr($this->chars_array[$i]['name'],0, strpos($this->chars_array[$i]['name'],' ')));
                        $this->chars_array[$i]['lastname']= trim (substr($this->chars_array[$i]['name'], strpos($this->chars_array[$i]['name'],' ')));
                        // Italian servers with Base64 encoding for last name, comment the above line and uncomment the following line
                        //$this->chars_array[$i]['lastname']= base64_decode(trim (substr($this->chars_array[$i]['name'], strpos($this->chars_array[$i]['name'],' '))));

                        if (!$this->chars_array[$i]['firstname'] && $this->chars_array[$i]['lastname']){
                             $this->chars_array[$i]['firstname'] = $this->chars_array[$i]['lastname'];
                             $this->chars_array[$i]['lastname']='';
                        }           
                    }

                    if ($k=='LASTON') {
                        $this->chars_array[$i]['laston']=$v;
                        if ($v!='Inactive') {
                            $num_activechars++;
                        } elseif($v=='Inactive'){
                            $num_inactivechars++;
                        }
                    }
                 }
             }
        }

    }

    function endElement($parser, $name) {
               global $close_tag, $current_tag, $in_char, $i;

                if ($name=='CHARACTER'){$i++; $in_char=0;}
                if ($name=='ALLIANCE'){$i++; $in_alliance=0;}
    }

    function characterData($parser, $data) {
        global $guildrp, $inactiverp, $current_tag, $in_char, $i;
                //$content_output .= '<br>'.$current_tag.' = '.$data.'<br>';
                if (($in_char==1) && ($current_tag=='RACE')){
                    $this->chars_array[$i]['race'].=$data;
                }
                if (($in_char==1) && ($current_tag=='CLASS')){
                    $this->chars_array[$i]['class'].=$data;
                }
                if (($in_char==1) && ($current_tag=='LEVEL')){
                    $this->chars_array[$i]['level'].=$data;
                }
                if (($in_char==1) && ($current_tag=='TOTALRP')){
                    $this->chars_array[$i]['rp'].=$data;
                    if ($this->chars_array[$i]['laston']=='Inactive'){
                        $inactiverp += $data;
                    } else {
                        $guildrp += $data;
                    }

                }
                if (($in_char==1) && ($current_tag=='GUILDRANK')){
                    $this->chars_array[$i]['guildrank'].=$data;
                }
                //$this->html .= $data;
         }

    function parse() {

        $this->xml_parser = xml_parser_create();
        xml_set_object($this->xml_parser, &$this);
        // use case-folding so we are sure to find the tag in $map_array
        xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, true);

        xml_set_element_handler($this->xml_parser, "startElement", "endElement");
        xml_set_character_data_handler($this->xml_parser, "characterData");
        //xml_set_processing_instruction_handler($this->xml_parser, "PIHandler");

        if (!($fp = fopen($this->xml_file, "r"))) {
            die("could not open XML input");
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($this->xml_parser, $data, feof($fp))) {
                die(sprintf("XML error: %s at line %d",
                xml_error_string(xml_get_error_code($this->xml_parser)),
                xml_get_current_line_number($this->xml_parser)));
            }
        }
    }
}
// End of class

// Support functions

    /*
    *    The function sortItems() is used for sorting, called upon by uksort()
    *    It uses querystring parameter $param as the sorting parameter
    *    querystring parameter $dir indicates ascending or descending order
    */

    function sortItems($a, $b) {
     global $gu, $dir;
        $param='rp';
        $val_a = ($gu[$a][$param]);
        $val_b = ($gu[$b][$param]);

        if (!$dir){$dir='down';}
        switch ($param){
            case 'rp':
            $val_a = $val_a - 0;
            $val_b = $val_b - 0;
            break;
        }

        if ($dir=='up'){
            if ( $val_a > $val_b ){return 1;}
            if ( $val_a < $val_b ){return -1;}
            if ( $val_a = $val_b ){return 0;}
        } else {
            if ( $val_a < $val_b ){return 1;}
            if ( $val_a > $val_b ){return -1;}
            if ( $val_a = $val_b ){return 0;}
        }
    }

    /*
    *    returns Realm Rank/Level
    */

    function realmlevel ($rp){
        $rap =1;
        for ($i=1; $i<11; $i++){
            if ($i!=1){
                for ($j=0;$j<10;$j++){
                    $rp_needed = ((25/3)*(pow($rap,3))) - ((25/2)*(pow($rap,2))) + ((25/6)*$rap);

                    if ($rp_needed <10) {
                        $rp_needed =0;
                    }
                    if ($rp>=$rp_needed) {
                        $level = 'R'.$i.'L'.$j;
                    }
                    $rap++;
                }
            } else {
                for ($j=1;$j<10;$j++){
                    $rp_needed = ((25/3)*(pow($rap,3))) - ((25/2)*(pow($rap,2))) + ((25/6)*$rap);

                    if ($rp_needed <10) {
                        $rp_needed =0;
                    }
                    if ($rp>=$rp_needed) {
                        $level = 'R'.$i.'L'.$j;
                    }
                    $rap++;
                }

            }
        }
        return $level;
    }

    /*
    *    returns Realm Title
    */


    function realmtitle($rp){
        /*
        *    You start at Rank 1. To rise to Rank 2, you need 7125 realm points.
        *    Rank 3 = 61750, Rank 4 = 213875, Rank 5 = 513500, Rank 6 = 1010625, Rank 7 = 1755250, Rank 8 = 2797375, Rank 9 = 4187000
        *    and finally Rank 10 = 5974125
        *
        *    These ranks are for the Albion Realm. You need to add correct values for Hibernia or Midgard.
        *    The list of ranks per realm can be found at http://www.purpledragons.net/camelot/rp_chart.php
        */
        global $realm_id;

        if ($rp >=0)
            $rank= array ('Guardian','Savant','Skilvakten');

        if ($rp > 7125)
            $rank = array ('Warder','Cosantoir','Isen Vakten');

        if ($rp > 61750)
            $rank = array ('Myrmidon','Brehon','Flamen Vakten');

        if ($rp > 213875)
            $rank = array ('Gryphon Knight','Grove Protector','Elding Vakten');

        if ($rp > 513500)
            $rank = array ('Eagle Knight','Raven Ardent','Stormur Vakten');

        if ($rp > 1010625)
            $rank = array ('Phoenix Knight','Silver Hand','Isen Herra');

        if ($rp > 1755250)
            $rank = array ('Alerion Knight','Thunderer','Flammen Herra');

        if ($rp > 2797375)
            $rank = array ('Unicorn Knight','Gilded Spear','Elding Herra');

        if ($rp > 4187000)
            $rank = array ('Lion Knight','Tiarna','Stormur Herra');

        if ($rp > 5974125)
            $rank = array ('Dragon Knight','Emerald Rider','Einherjar');

        if ($rp > 8208750)
            $rank = array ('Lord/Lady','Barun/Banbharun','Herra/Fru');

        if ($rp > 23308097)
            $rank = array ('Baronet/Baronetess','Ard Tiarna/Ard Bantiarna','Hersir/Baronsfru');


        return $rank[$realm_id];
    }

// Main content

    $guild = new guildXML(); //instantiate class
    $guild->xml_file = "http://camelot-europe.goa.com/herald/servers/Broceliande/guilds/1034.xml";
    // the xml_file property referes to you guild XML data file.
    // Example given is the Merlin/Albion guild Dragon's Blood

    $guild->parse();


    // Copy some variables
    $gu = $guild->chars_array;
    $guildrp = $guild->guildrp;
    $guildtimestamp = $guild->timestamp;
    $realm = $guild->realm;

    switch($realm){
        case 'Albion': $realm_id=0; break;
        case 'Hibernia': $realm_id=1; break;
        case 'Midgard': $realm_id=2; break;
        default: $realm_id=0;
    } // switch
    
    $xml_file = $guild->xml_file;

    $guild->destroy(); // destroy the object
        
    uksort($gu, "sortItems");  // call upon sortItems() to sort the guild information array
    reset($gu);

    /*
    *    Creates the output table
    */

    $content_output .= 'Top 10 RP holders:<br><span style="font-size:9pt;">Data last updated: <b>'.$guildtimestamp.'</b></span><hr noshade="true">
<table cellspacing="0" cellpadding="0" style="border: solid 1px #3F5471;">
<tr>
    <td>
        <table cellspacing="0" cellpadding="5">
            <tr style="font-weight: bold;" bgcolor="#CCCCCC">
                <td>Name</td>
                <td>RPs</td>
            </tr>
    ';

    $i=0;

    foreach ($gu as $key=>$value){
        if ($i==10){break;}
        if ($_GET['active']!='no'){
            if ($value['laston']!='Inactive') {
                if ($i%2==0){$color='#CCCCCC';}else{$color='#DDDDFF';}
                $content_output .= '
            <tr bgcolor="'.$color.'" style="font-size:9pt;">
                <td><b>'.$value['firstname'].' '.$value['lastname'].'</b></td>
                <td align="right">';
                if ($value['level']>=20){
                    $content_output .= number_format($value['rp']);
                } else {
                    $content_output .= '&nbsp;';
                }
                $content_output .= '
                </td>
            </tr>';
                $i++;
            }
        }

        }

    $content_output .= '
        </table>
    </td>
</tr>
</table>';

    /*
        For Euro guilds: uncomment the following instructions
    */
    
$content_output = utf8_decode($content_output); // handles UTF8 character encoding
    
    /*
    *    Outputs table; end of script
    */
    
    print $content_output;
?>
merci d'avance
Lien direct vers le message - Vieux
Avatar de Zup Arkhen
JOL Zup Arkhen
Alpha & Oméga
 
Avatar de Zup Arkhen
 
Même si ma réponse tarde un peut et que les chroniques sont HS depuis un moment ( ), apparemment tu prend les anciens fichiers XML, pas le nouveau ladder.
Lien direct vers le message - Vieux
Avatar de Arymia
Arymia [Cend]
Princesse
 
Avatar de Arymia
 
d'ailleurs elles vont être débugguées un jour ces chroniques ?
il me semble qu'ils avaient dit bientôt, cela doit faire 6mois, quelqu'un a des nouvelles depuis ?
Lien direct vers le message - Vieux
Avatar de Nydaunvan
Nydaunvan [BK]
Alpha & Oméga
 
Avatar de Nydaunvan
 
hop je complete ici :

Le nouveau lien pour les fichiers xml des registres Europe de Daoc est :

http://xmldaoc.goa.com/servers/

vous y trouverez l'ensemble !

Dommage que Goa n'ai pas mis la FAQ du site officiel a jour avec les nouveaux liens
Lien direct vers le message - Vieux
Avatar de Darkounet | Ravayak
Darkounet | Ravayak [[CM]]
Alpha & Oméga
 
Avatar de Darkounet | Ravayak
 
Citation:
Envoyé par Nydaunvan Voir le message
hop je complete ici :

Le nouveau lien pour les fichiers xml des registres Europe de Daoc est :

http://xmldaoc.goa.com/servers/

vous y trouverez l'ensemble !

Dommage que Goa n'ai pas mis la FAQ du site officiel a jour avec les nouveaux liens
comment trouver le numéro de sa guilde?
Lien direct vers le message - Vieux
Avatar de Nydaunvan
Nydaunvan [BK]
Alpha & Oméga
 
Avatar de Nydaunvan
 
coucou,

il faut regarder dans les fichiers suivant :

Albion

Hibernia

Midgard

pour trouver la correspondance entre le numéro id et le nom de la guilde

Lien direct vers le message - Vieux
Draeli [E.E]
Alpha & Oméga
 
Oui ou sinon tu vas ici :
http://draeli.com/daoc/ , tu vas dans la partie registre, tu donne le nom de ta guilde et tu regardes l'url le premier numéro c'est celui de la guilde, le second le serveur
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Dark Age of Camelot > DAoC - Technique et Automatisation > TOUT sur les XML, C'est par ici !
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Dark Age of Camelot RSS
Les critiques de Dark Age of Camelot RSS
Thème visuel : Fuseau horaire GMT +2. Il est actuellement 21h04.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite