InvaZion

Le projet de Hordes-like collaboratif

Simplifiez vos développements avec la librairie ZombLib

Une librairie PHP, la « ZombLib », est disponible pour vous faciliter l'utilisation des API d'InvaZion. Elle est fiable car elle est utilisée en conditions réelles par la démo du jeu.

Même si vous développez dans un langage autre que PHP, la ZombLib peut vous simplifier la tâche : vous pouvez vous inspirer de son code.

Comment installer la librairie ?

1) Téléchargez la librairie : ZombLib.zip. Ouvrez le zip et placez le fichier PHP qu'il contient sur votre serveur.

2) Incluez le fichier de la librairie dans votre script PHP :

// Inclusion du fichier de la librairie.
// Adaptez le chemin si vous ne l'avez pas mis à la racine de votre site
require 'ZombLib.php';
    
// Initialisation de la classe qui exécutera les actions sur l'API
$api = new ZombLib();
    
// Exemple d'utilisation : afficher la liste des citoyens de la ville n°1
$citizens = $api->get_citizens(1);
print_r($citizens);

Comment connecter l'utilisateur à son compte ?

// Initialise la librairie d'appel aux APIs
require 'ZombLib.php';
$api = new ZombLib;

// Si quelqu'un a validé le formulaire HTML pour se connecter
if (!empty($_POST)) {
    
    // Sécurise le mail et le mot de passe envoyés par l'utilisateur
    $password   = filter_input(INPUT_POST, 'password',  FILTER_SANITIZE_STRING);
    $email      = filter_input(INPUT_POST, 'email',     FILTER_VALIDATE_EMAIL);
    
    // Transmet les identifiants à l'API de connexion
    $json = $api->connect_user($email, $password);
    
    // (Pour la démo : affiche le JSON retourné par l'API)
    print_r($result);
}

<html>
<body>
    <form method="post" action="">
        Email :         <input type="text" name="email" /><br>
        Mot de passe :  <input type="text" name="email" />
        <br>
        <input type="submit" />
    </form>
</body>
</html>
// Exemple : pour un utilisateur déjà connecté, créer un citoyen 
// ayant pour pseudo "Marcel"
$result = $api->create_citizen('Marcel');

Comment récupérer la carte (objets, zombies...) ?

Dans les exemples donnés, on présume que la classe a été initialisée dans la variable $api (v. ci-dessus, Installer la librairie).

// Exemple : récupérer les citoyens de la ville n° 1
$result = $api->get_citizens(1);
print_r($result['datas']);
// Exemple : récupérer les données de la carte n° 1
$result = $api->get_map(1);
print_r($result['datas']);

Comment construire votre interface de ville ?

// Exemple : récupérer les caractéristiques complètes de la ville n° 27
$result = $api->get_city(27);
print_r($result['datas']);

Comment exécuter les actions du citoyen (se déplacer...) ?

Dans les exemples donnés, on présume que la classe a été initialisée dans la variable $api (v. ci-dessus, Installer la librairie).

// Exemple : déplacer vers le bas le citoyen connecté
$result = $api->move('south');

// Contrôlez que le déplacement a bien été réalisé grâce aux valeurs de retour
print_r($result);
// Exemple : faire fouiller le citoyen connecté
$result = $api->dig();

// L'API renvoie des informations concernant l'objet trouvé
print_r($result);
// Exemple : faire déposer l'objet n° 4 par le citoyen connecté
$result = $api->drop(4);
// Exemple : faire ramasser l'objet n° 4 par le citoyen connecté
$result = $api->pickup(4);
// Exemple : agresser le citoyen n° 120
$result = $api->attack_citizen(120);
// Exemple : soigner le citoyen n° 120
$result = $api->heal_citizen(120);
// Exemple
// Note : le jeton (token) d'identification du citoyen est récupéré  
// automatiquement par la librairie
$result = $api->fight();
// Exemple : pour spécialiser le citoyen en explorateur :
$result = $api->specialize('explorer');

Actions liées aux villes

// Exemple : créer une ville de 8 citoyens dans la zone
$result = $api->build_city(8);
// Exemple : détruire une tente se trouvant dans la même zone que le citoyen
$result = $api->attack_city();
// Fera entrer le citoyen dans la ville s'il y a une ville sur sa case.
// S'il est déjà dans la ville, l'en fera sortir.
$result = $api->go_inout_city();
// Pour fabriquer une plaque de bois (objet n°201)
$result = $api->craft_item(201);

Actions liées aux cryptes

$result = $api->invoke('vault');
// Exemple : ajouter des zombies sur la carte n° 1
$result = $api->add_zombies(1);

Espace de discussion

// Exemple
$result = $api->get_discuss_threads();

Obtenir les paramètres du jeu

// Exemple
$result = $api->get_config();