Accueil Connexion Inscription Membres Rechercher Accéder au jeu


   Index / Les mises à jours et Mods / RE : RE : Les Quetes : Version

   


 Page n° 1 / 13 > >>

WhiteAnge
Membre

Messages : 42
Remonter

Les Quetes : Version Finale (0 vote)

Posté par WhiteAnge, le 13/02/2006 à 11:33:41

Cette modification permet de supprimer la possibilité de refaire la quête et ajoute la possibilité de créer des suites de quêtes. Ce que vous trouverez ci dessous est le code complet, pas juste la MAJ par rapport à la Version 1.


Code :

=================[OUVRIR]========================



ETAPE 1 : SQL 



Créez la table suivante :





CREATE TABLE rpg_quete (

  id int(11) NOT NULL auto_increment,

  name varchar(50) NOT NULL default '',

  description longtext NOT NULL,

  level int(3) NOT NULL default '0',

  type tinyint(1) NOT NULL default '0',

  monster varchar(30) default NULL,

  number int(5) default NULL,

  longi int(5) NOT NULL default '0',

  lati int(5) NOT NULL default '0',

  town varchar(30) NOT NULL default '',

  experience int(11) NOT NULL default '0',

  gils int(11) NOT NULL default '0',

  prolongation smallint(6) NOT NULL default '0',

  PRIMARY KEY  (id)

) TYPE=MyISAM;



Rajouter les champs suivants à la table rpg_users :



ALTER TABLE `rpg_users` ADD `quete` INT(5) DEFAULT '0' NOT NULL;

ALTER TABLE `rpg_users` ADD `monstrequete` INT DEFAULT '0' NOT NULL;

ALTER TABLE `rpg_users` ADD listquest` VARCHAR(255) DEFAULT '0' NOT NULL;



=================================================

=================[OUVRIR]========================



templates/admin.php



=================[TROUVER]=======================

<a href="admin.php?do=spells">Editer sorts</a><br />



=================[AJOUTER EN DESSOUS]============



<a href="admin.php?do=quete">Création de Quête</a><br />



=================================================

=================[OUVRIR]========================

templates/towns.php



=================[AJOUTER]============



&nbsp;<img src="././images/pic2.gif" /><a href="index.php?do=affaire"> Bureau des Affaires</a>



=================================================

=================[OUVRIR]========================



templatesleftnav.php



=================[TROUVER]=======================



<tr><td class="title"></td></tr></table>

<table width="180px" height="1px" background="././images/bgg.gif"><tr><td>

{{currenttown}}

Se téléporter à:<br />

{{townslist}}

</td>

</tr>



=================[AJOUTER EN DESSOUS]============



<tr><td>

<a href="index.php?do=journal">Journal des Quetes</a>

</td>

</tr>



=================================================

=================[OUVRIR]========================

admin.php



=================[TROUVER]=======================

    elseif ($do[0] == "newsaccueil") { newsaccueil(); }



=================[AJOUTER EN DESSOUS]============

    elseif ($do[0] == "quete") { quete(); }

    elseif ($do[0] == "createquete") { createquete(); }





=================[TROUVER]=======================



?>



=================[AVANT AJOUTER]=================

function createquete ()

{

        extract($_POST);

        if($radio1=='1')

        {

            if($radio2=='1') { $prolongation=$oldquest; } else { $prolongation=0; }

            mysql_query("INSERT INTO rpg_quete (name,description,level,type,monster,number,longi,lati,

town,experience,gils,prolongation) VALUES ('$nomquete','$textequete','$niveau','1','

$typemonster',

'$nbrmonster','','','$ville','$gain','$gils','$prolongation')") or die ("Erreur");

            admindisplay("La Quete a été Ajoutée.","Quete Effective");

        }

        elseif($radio1=='2')

        {

            if($radio2=='1') { $prolongation=$oldquest; } else { $prolongation=0; }

            mysql_query("INSERT INTO rpg_quete (name,description,level,type,monster,number,longi,lati,

town,experience,gils,prolongation) VALUES ('$nomquete','$textequete','$niveau','2','','',

'$longi','$lati',

'$ville','$gain','$gils','$prolongation')") or die ("Erreur");

            admindisplay("La Quete a été Ajoutée.","Quete Effective");

        }

        else

        {

        admindisplay("Une erreur inattendue a empecher la création de la quete !","Erreur sur la Quete");

        }

}



function quete () {



global $radio1;

    $page = '

<form id="form1" name="form1" method="post" action="admin.php?do=createquete">

  <label>Nom de la Quête

  <input name="nomquete" type="text" id="nomquete" size="30" maxlength="50" />

  </label>

  <p>Entrez le texte du personnage <br />

    <label>

      <textarea name="textequete" cols="50" rows="10" id="textequete"></textarea>

    </label>

  </p>

  <p>Entrez le niveau de la quete 

    <label>

    <input name="niveau" type="text" size="3" maxlength="3" />

    </label>

  </p>

    <p>Entrez le gain en experience 

    <label>

    <input name="gain" type="text" size="3" maxlength="3" />

    </label>

  </p>

    <p>Entrez le nombre de gils gagnés 

    <label>

    <input name="gils" type="text" size="3" maxlength="3" />

    </label>

  </p>

  <p>Que doit faire la personne pour r&eacute;soudre la quete ?<br />

    <label>

    <input type="radio" name="radio1" value="1" />

    Tuer des Monstres</label>

    (Type de Monstres : 

    <label>

    <select name="typemonster" id="type monster">';

    $query = mysql_query("SELECT * FROM rpg_monsters");

    while( $req = mysql_fetch_array($query) )

    {

    $page .= '<option value="' . $req[1] . '">' . $req[1] . '</option>';

    }

    $page .='

    </select>

    </label>

    et le nombre 

    <label>

    <input name="nbrmonster" type="text" id="nbrmonster" size="5" maxlength="5" />

    </label>

    )

    <br />

    <label>

    <input type="radio" name="radio1" value="2" />

    Trouver un Endroit Particulier </label>

    (Longitude :

    <label>

    <input name="longi" type="text" id="longi" size="5" maxlength="5" />

    </label> 

    Lattitude :

    <label>

    <input name="lati" type="text" id="lati" size="5" maxlength="5" />

    </label> 

    ) <br />

<!--    <label>

    <input type="radio" name="radio1" value="3" />

    Parler à quelqu'un de spécifique</label>

    -->

  <br />

  Choisissez la ville de d&eacute;part : 

  <label>

  <select name="ville" id="ville">';

  $query = mysql_query("SELECT * FROM rpg_towns");

  while( $req = mysql_fetch_array($query) )

  {

    $page .= '<option value="' . $req[1] . '">' . $req[1] . '</option>';

  }





  $page .= '

  </select>

  </label>

  <br />Cette Quête est elle la prolongation d une autre quete ?  <label>Oui<input type="radio" name="radio2" value="1" /></label><label>Non<input type="radio" name="radio2" value="2" /></label><br />

  Si oui de quelle quête s agit t il ?

  <label>

  <select name="oldquest" id="oldquest">';

  

  $query = mysql_query("SELECT * FROM rpg_quete");

  while( $req = mysql_fetch_array($query) )

  {

    $page .= '<option value="' . $req[0] . '">' . $req[1] . '</option>';

  }

  

  $page .= '</select><br /><input type="submit" value="Envoyer" />  </p>

</form>';



    admindisplay($page, "Créer les Quetes");

}  



=================================================

=================[OUVRIR]========================

index.php



=================[TROUVER]=======================



    elseif ($do[0] == "suppr") { include('clan.php'); suppr(); }



=================[AJOUTER EN DESSOUS]============



    elseif ($do[0] == "affaire") { include('quete.php'); liste(); }

    elseif ($do[0] == "journal") { include('quete.php'); journal(); }

    elseif ($do[0] == "accept") { include('quete.php'); accept(); }



=================[CREATION]======================



Créer un fichier quête.php



=================[ECRIVEZ DEDANS]================

<?

/*

Developpe pour RPG Illusion v1.2.b

Auteur : WhiteAnge

E-Mail : androsia-planetx@wanadoo.fr

Site : http://www.androsia.net



*/



function liste () { //Listage des Quetes disponibles

    
global $userrow ;

    if(
$userrow["quete"] > '0')

    {

        
$page .= "Vous avez déjà une quête en cours. Finissez là avant d'en choisir une autre !Regardez dans votre journal de quête.";

        
display($page"Quête en cours");    

    }

    else

    {

        
$page .= 'Bonjour !';

        
$page .= 'Vous venez pour nous aider je supppose ? Alors consultez le tableau ci dessous, celui ci vous donnera tous les renseignements necessaires pour les quêtes de votre niveau.';

        
$page .= '<table border="1"><tr><td>Quete</td><td>Description</td><td>Experience Gagn&eacute;e </td><td>Gils Gagn&eacute;s </td><td>Accepter</td></tr>';

        
//recuperation nom ville

        
$query=mysql_query("SELECT name from rpg_towns WHERE latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."'");

        while(
$row=mysql_fetch_array($query)) { $ville=$row[0] ; }

        
//recuperation quete

        
$query=mysql_query("SELECT * from rpg_quete WHERE level>='".$userrow["level"]."' AND town='$ville'");

        while (
$row=mysql_fetch_array($query))

        { 

            
$fait=0;

            if(
ereg($row[0],$userrow["listquest"])) {$page .= ''$fait=1;} //Déjà faite on l'affiche pas

            
elseif($row[12]<>'0' AND ereg($row[12],$userrow["listquest"]))        //Quete prolongee et quete avant deja faite

            
{            

            
$page .= '<tr><form action="index.php?do=accept" method="POST"><td>'.$row[1].'</td><td>'.$row[2].'</td><td>'.$row[10].'</td><td>'.$row[11].'</td><td><input type="hidden" name="quest" value="'.$row[0].'"><input type="submit" value="Oui"></form></td></tr>';

            }

            
//if($row[12]=='0' AND $fait=='0' ) //pas de quete prolongee et pas faite <img src='images/smileys/sourire2.gif' alt=''>

            
elseif($row[12]=='0')

            {

            
$page .= '<tr><form action="index.php?do=accept" method="POST"><td>'.$row[1].'</td><td>'.$row[2].'</td><td>'.$row[10].'</td><td>'.$row[11].'</td><td><input type="hidden" name="quest" value="'.$row[0].'"><input type="submit" value="Oui"></form></td></tr>';            

            }

        }

        
$page .= '</table>';

        
display($page"Quêtes Réalisable");        

    }

}



function 
journal() { //Affichage du journal de la Quete en Cours

    
global $userrow ;

    
$requete=mysql_query("SELECT quete FROM rpg_users WHERE id='" .$userrow["id"] ."'");

    while(
$row=mysql_fetch_array($requete)) { $queteid=$row[0];}

    
$requete=mysql_query("SELECT * FROM rpg_quete WHERE id='"$queteid ."'");

    
$page .=  '<div align="center"><strong>Journal de Quete</strong></div>';

    
$page .= '<table border="1"><tr><td>Quete</td><td>Description</td><td>Experience Gagn&eacute;e </td><td>Gils Gagn&eacute;s </td></tr>';

    while (
$row=mysql_fetch_array($requete))

    {

        
$page .="<tr><td>$row[1]</td><td>$row[2]</td><td>$row[10]</td><td>$row[11]</td></tr>";

    }

    
$page .= '</table>';

    
display($page"Quête En Cours");        

}



function 
accept() { //Acceptation de Quete

    
global $userrow;

    
extract($_POST);    

    
mysql_query("UPDATE rpg_users SET quete='$quest' WHERE id='"$userrow["id"]  ."'");

    
$page 'Merci de nous aider !  Je vous souhaite bonne chance !(consulter le journal des quêtes)';

    
display($page"Quête Acceptée");        



}



?>



=================================================

======================[OUVRIR]=============



explore.php



======================[TROUVER]============



    $chancetofight = rand(1,5);

    if ($chancetofight == 1) { 



======================[AVANT AJOUTER]======



//AJOUT QUETE TYPE RECHERCHE (2) : Trouver un endroit

$requete=mysql_query("select quete from rpg_users where id='".$userrow["id"]."'");

while($row=mysql_fetch_array($requete)) {$quete_en_cours=$row[0];}

if($quete_en_cours>0)

{

    $requete=mysql_query("select * from rpg_quete WHERE id='$quete_en_cours'");

    while($row=mysql_fetch_array($requete)) 

    {

        if($row[4] == '2') //C bien une quete de recherche

        {

            //On verifie si on est au bon endroit

            if($latitude==$row[8] AND $longitude==$row[7])

            {

                $page = "Vous avez résolu la quête nommée $row[1] ! Félicitation. Vous gagnez :";

                $page .= "$row[10] points d'Expérience et $row[11] Gils !";

                $requete1=mysql_query("SELECT listquest FROM rpg_users WHERE id='".$userrow["id"]."'");

                while($reque=mysql_fetch_array($requete1)) {$prev=$reque[0]; }

                mysql_query("UPDATE rpg_users SET experience=experience+$row[10], gold=gold+$row[11], quete='0',listquest='" . $prev ."," .$quete_en_cours ."' WHERE id='".$userrow["id"]."'");

                display($page, "Quête Résolue");

                die();

            }

        }

    }

}

//FIN AJOUT



===========================================

======================[OUVRIR]=============



fight.php



======================[TROUVER]============





    $updatequery = doquery("UPDATE {{table}} SET currentaction='En exploration',level='$newlevel',maxhp='$newhp',

maxmp='$newmp',maxtp='$newtp',strength='$newstrength',

dexterity='$newdexterity',attackpower='$newattack',defensepower='$newdefense', $newspell



======================[AJOUTER AVANT]============



//Ajout de la fonction Quete type='1' : Tuer des Monstres

$requete=mysql_query("select quete from rpg_users where id='".$userrow["id"]."'");

while($row=mysql_fetch_array($requete)) {$quete_en_cours=$row[0];}

if($quete_en_cours>0)

{

    $requete=mysql_query("select * from rpg_quete WHERE id='$quete_en_cours'");

    while($row=mysql_fetch_array($requete)) 

    {

        if($row[4] == '1') //C bien une quete de monstre

        {

            //On verifie si le monstre tué correspond à la quete et on incremente le compteur de monstre tué

            if($monsterrow["name"]==$row[5])

            {

                mysql_query("UPDATE rpg_users SET monstrequete=monstrequete+1 WHERE id='".$userrow["id"]."'");

                $monstre=$userrow["monstrequete"]+1;

                $requete1=mysql_query("SELECT listquest FROM rpg_users WHERE id='".$userrow["id"]."'");

                while($reque=mysql_fetch_array($requete1)) {$prev=$reque[0]; }

                if($monstre==$row[6])

                {

                    $page = "Vous avez résolu la quête nommée $row[1] ! Félicitation. Vous gagnez :";

                    $page .= "$row[10] points d'Expérience et $row[11] Gils !";

                    mysql_query("UPDATE rpg_users SET experience=experience+$row[10], gold=gold+$row[11], quete='0', monstrequete='0',listquest='listquest," .$quete_en_cours ."' WHERE id='".$userrow["id"]."'");

                    display($page, "Quête Résolue");

                    die();

                }

            }

        }

    }

}

//Fin Ajout



=======================[FIN]=====================

================================================= 




édité par sff le 25/05/2006 à 13:34:07


WhiteAnge
Membre

Messages : 42
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par WhiteAnge, le 13/02/2006 à 11:34:34

Le support se fait à la suite de ce post .




Danux
Membre

Messages : 56
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par Danux, le 13/02/2006 à 11:58:53

attention :

ALTER TABLE `rpg_users` ADD `listquest` VARCHAR(255) DEFAULT '0' NOT NULL;




Danux
Membre

Messages : 56
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par Danux, le 13/02/2006 à 12:00:38

J'ai une erreur quand je crée une quete.

édité par Danux le 13/02/2006 à 12:11:46


WhiteAnge
Membre

Messages : 42
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par WhiteAnge, le 13/02/2006 à 12:11:03

Oui j'ai oublié un petit truc mais c pas très compliqué, mettez le champ 'listquest' la valeur 0, celà fonctionnera mieux. Et intégré cà qd un nouvel utilisateur s'enregistre en modifiant la requete correspondante.




Danux
Membre

Messages : 56
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par Danux, le 13/02/2006 à 12:15:07

White Angel, tu as msn?




WhiteAnge
Membre

Messages : 42
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par WhiteAnge, le 13/02/2006 à 12:20:39

Pour éviter cette erreur (Ligne 31), Modifiez users .php, fonction register() :

Remplacez :

Code :



$query 
doquery("INSERT INTO {{table}} SET id='',regdate=NOW(),verify='$verifycode',username='$username',password='$password',

email='$email1',charname='$charname',miniavatar='$avatar',

avatar='$avatar',charclass='$charclass',difficulty='$difficulty'"
,"users") or die(mysql_error()); 




par :



Code :

$query doquery("INSERT INTO {{table}} SET id='',regdate=NOW(),verify='$verifycode',username='$username',

password='$password',

email='$email1',charname='$charname',

miniavatar='$avatar',avatar='$avatar',

charclass='$charclass',difficulty='$difficulty',listquest='0'"
"users") or die(mysql_error());




============================

Pour les utilisateurs déjà enregistrés ajoutez '0' dans le champ listquest.

édité par sff le 25/05/2006 à 13:33:19


Danux
Membre

Messages : 56
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par Danux, le 13/02/2006 à 12:28:41

j'ai réussi a passer l'erreur je ne sais même pas comment.

Par contre, quand je vais dans l'admin, je crée une quete et j'ai le mot Erreur qui apparait.


pour l'user.php faut faire attention au " qui se met juste après '0' :


Code :

 $query doquery("INSERT INTO {{table}} SET id='',regdate=NOW(),verify='$verifycode',username='$username',

password='$password',email='$email1',

charname='$charname',miniavatar='$avatar',avatar='$avatar',

charclass='$charclass',

difficulty='$difficulty'"
,listquest='0'"users") or die(mysql_error());




édité par sff le 25/05/2006 à 13:31:45


WhiteAnge
Membre

Messages : 42
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par WhiteAnge, le 13/02/2006 à 12:37:17

Tu n'as pas du remplir tous les champs, y compris le dernier en mettant non ou oui.




Danux
Membre

Messages : 56
Remonter

RE:Les Quetes : Version Fin... (0 vote)

Posté par Danux, le 13/02/2006 à 12:50:27

J'ai tout rempli et pourtant...



Erreur





 Page n° 1 / 13 > >>


   



Messages Anciens messages Nouveaux messages Nouveaux messages


® RPGillusion.net - Tous droits réservés - 2005-2008. Reproduction interdite par les droits d\'auteurs.