Jump to content
×
×
  • Create New...
  • 0

Commande de téléportation?


sancho0o

Question

Salutation,

J'ai un core (3.3.5 non compilé) sous mangos

Voila je cherche un tuto ou une petite explication pour créer une commande de téléportation...

Par exemple les joueurs tape .og > téléportation à Orgrimmar :o

Peut ton m'aider svp?^^

 

cdt

 

ps: j'ai quelques bases en c++ mais bon...

Link to comment
  • Answers 20
  • Created
  • Last Reply

Top Posters For This Question

20 answers to this question

Recommended Posts

  • 0
  • Retraité

Salut,

 

Alors d'après ce que je vois dans les sources de MaNGOS, il faut que tu crée une commande (d'après un de mes tutoriels ;)) avec ceci dedans :

 

Player *pPlayer = m_session->GetPlayer();
pPlayer->TeleportTo(mapid, x, y, z, orientation);

 

Il faut que ta commande sois dans "Level0.cpp" pour que les joueurs y aient accès, et il faut que tu change "mapid, x, y, z, orientation" par les coordonnées du point où tu aimerais que les joueurs arrivent.

 

Voilà, si tu as d'autres questions, n'hésite pas ;)

 

Cordialement,

SgT-Fatality

Link to comment
  • 0

Merchiii

Player *pPlayer = m_session->GetPlayer();
pPlayer->TeleportTo(mapid, x, y, z, orientation);

 

Donc dans Level0...

 

bool ChatHandler::HandleOrgrimmarCommand(const char* /*args*/)
{
   Player *pPlayer = m_session->GetPlayer();
   pPlayer->TeleportTo(1, 855.63, 15.50, -552.35, 1.65);
   return true;
}

Comme ça ou avec des guillemets?^^

Euh la les chiffres sont au hasard mais tkt j'ai les cordonnées exacte

 

Ah et si tu pouvait me donner un coup de pousse au niveau sql aussi ça serait super

Link to comment
  • 0
  • Retraité

Oui c'est bien ! Il y aura encore quelques lignes de code à ajouter (vérification si le joueur est en combat, s'il est en bg, etc...). Je te les donnes vers 13h ;)

 

EDIT : Quoique je ne sais pas si c'est nécessaire, il faudrait que tu fasses quelques test :

 

- Test de la commande en combat

- Test de la commande en instance / BG

Link to comment
  • 0

La commande (.Orgrimmar) fonctionne mais voix-ci les problème:

 

- Les joueur de la faction adverse peuvent l'utiliser

- En plein combat elle marche

- En bg aussi

 

Voila c'est tout....merci de me posté les "if"

Un grand merci à toi mec

 

ps: en instance j'aimerais que la commande marche à part en combat biensure^^

Link to comment
  • 0
  • Retraité

Salut,

 

Désolé pour le retard, voilà les "if", je ne sais pas si c'est OK pour les BG (à tester), je ne sais pas non-plus s'il y a une fonction qui retourne directement la faction du joueur (exemple : 0 = alliance, 1 = horde) ce qui réduirait la taille de la "if" pour les races.

 

Voilà le code à tester :

bool ChatHandler::HandleOrgrimmarCommand(const char* /*args*/)
{
   Player *pPlayer = m_session->GetPlayer();

if(pPlayer->IsInCombat) {
	// Afficher une message comme quoi le joueur est en combat
	return false;
}

/* Liste des races :
   RACE_HUMAN          = 1,
   RACE_ORC            = 2,
   RACE_DWARF          = 3,
   RACE_NIGHTELF       = 4,
   RACE_UNDEAD_PLAYER  = 5,
   RACE_TAUREN         = 6,
   RACE_GNOME          = 7,
   RACE_TROLL          = 8,
   RACE_BLOODELF       = 10,
   RACE_DRAENEI        = 11, */

if(pPlayer->getRace() == RACE_ORC || pPlayer->getRace() == RACE_UNDEAD_PLAYER || pPlayer->getRace() == RACE_TAUREN || pPlayer->getRace() == RACE_TROLL || pPlayer->getRace() == RACE_BLOODELF) {
	pPlayer->TeleportTo(1, 855.63, 15.50, -552.35, 1.65);
	return true;
} else {
	// Afficher un message comme quoi un joueur alliance ne peut utiliser cette commande
	return false;
}
}

Link to comment
  • 0

Re,

bon voila le code

bool ChatHandler::HandleOrgrimmarCommand(const char* /*args*/)
{ 
Player *pPlayer = m_session->GetPlayer();

if (GetTeam() == HORDE)
{   
return false;
}
if(pPlayer->IsInCombat) 
{
// Afficher une message comme quoi le joueur est en combat
return false;
}
else
{
pPlayer->TeleportTo(1, 1558.732666, -4422.057129, 8.383391, 0.430372);
return true;
}
}

Alors a la compilation :

2>..\..\src\game\Level0.cpp(336) : error C3861: 'GetTeam' : identificateur introuvable
2>..\..\src\game\Level0.cpp(340) : error C2039: 'IsInCombat' : n'est pas membre de 'Player'
2>        f:\project\dsa_lite(revh2-o)\src\game\Player.h(1022) : voir la déclaration de 'Player'

Alors je sais pas j'ai surment fait des érreures

merci de me rep :D

bonne après-midi

 

ps: il manque le 'if' lorsque les joueurs sont en bg :S

Link to comment
  • 0
  • Retraité

Ah oui désolé j'ai fait une petite faute, version améliorée :

bool ChatHandler::HandleOrgrimmarCommand(const char* /*args*/)
{ 
Player *pPlayer = m_session->GetPlayer();

if(!pPlayer->isInCombat() && pPlayer->GetTeam() == HORDE) 
{
	pPlayer->TeleportTo(1, 1558.732666, -4422.057129, 8.383391, 0.430372);
	return true;
}

// Le joueur est en combat ou alors il est hordeux
return false;
}

 

Par contre, si t'as commande est pour les allianceux, remplace HORDE par ALLIANCE

Link to comment


  • Flux d'Activité

    1. 25

      File Bvural41 (PAYANT) lvl 1-120 - Multi-Language

    2. 25

      File Bvural41 (PAYANT) lvl 1-120 - Multi-Language

    3. 9

      Canal général

    4. 9

      Canal général

    5. 9

      Canal général

    6. 9

      Canal général

    7. 9

      Canal général

    8. 9

      Canal général

    9. 9

      Canal général

  • Recently Browsing

    No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.