0
votes

Terrains de bataille récompenses pour gagner

Si une alliance est gagnée par une alliance, tous les joueurs de l'Alliance (sur BG) recevront un article 305047 . Si une horde gagne un champ de bataille, tous les joueurs de la hordes (sur BG) reçoivent un article 305048 .

Ce sont les articles des coffres de récompense. Pouvez-vous me dire comment faire cela?

Peut-être peut-être peut-être être fait à Lua en utilisant Eluna ? xxx

upd2: ce code fonctionne mais pas correctement. Cela donne des prix partout. À Arena et BG. J'ai besoin que le prix soit donné uniquement sur BG.


11 commentaires

sa ma première question pour ce problème: /


D'accord. Je change ..


Agréable. 2 N'aime pas pour ma question. Merci


D'ACCORD. Je change maintenant ma question. Quelqu'un voudrait-il m'aider s'il vous plaît


Donc, vous faites votre propre construction Azerothcore ou quoi? Imaginez que peut-être 1 de 10000 utilisateurs ici sait ici ce que l'Azerothcore est en premier lieu. Donc, si vous voulez de l'aide, vous voudrez peut-être ajouter plus d'informations sur ce que vous faites réellement


J'ai pris un bon noyau Azerothcore et je veux apporter mes modifications pour un serveur personnalisé là-bas


Vous ne pouvez pas utiliser le joueur-> inbattleground () pour vérifier si le joueur est dans la zone de bataille? C'est quelque chose que j'ai trouvé dans la source dans une minute. Juste une supposition


Si (Player-> Inbattleground () || Player-> GetTeamid (Team_horde)) ?


@ DOKA2TRADE Bien que cela puisse être évident pour certains que vous utilisez le moteur Eluna Lua (c'est-à-dire un ajout à Azerothcore, ce qui serait autrement C ++), ce n'est peut-être pas pour d'autres. Donc j'ai mis à jour votre question, y compris une référence à ce que tout le monde puisse vérifier son API et vous aider


Question non résolue


a) C'est Lua, sans crier. b) Ceci est Stackoverflow, non spécifique-WOW-Addon-ADDON-Bibliothèque-Discussion, alors vous donnez peut-être des antécédents sur ce que vous voulez réellement au lieu de jeter un tas de termes en ingérence et de 3 lignes de code non professionnel dans nos visages.


3 Réponses :


2
votes
local H2Item = ;
local A2Item = ;

local function onBattlegroundEnd(event, bg, bgId, instanceId, winner)
    for k, player in ipair(GetPlayersInWorld()) do
        if player:GetInstanceId() == instanceId then
            if winner == 1 and player:IsHorde() == 1 then
                player:AddItem(H2Item)
            elseif winner == 0 and player:IsHorde() == 0 then
                player:AddItem(A2Item)
            end
        end
    end
end
RegisterBGEvent(2, onBattlegroundEnd)
It's ok for this ?

0 commentaires

0
votes

Vous pouvez le faire avec C ++, modifiant la bataille de fichiers existante.cpp et à la ligne 985 Utilisez ceci:

if (bgTeamId == winnerTeamId)
    {
        if (TEAM_ALLIANCE == winnerTeamId)
            player->AddItem(XXXXX, 1); // Here add Item for Alliance players to get on BG End
        else
            if (TEAM_HORDE == winnerTeamId)
            {
                player->AddItem(XXXXX, 1); // Here add Item For Horde players to get on BG end
            }


1 commentaires

im vérifiez cela. Récompense Articles pour la victoire sur BG - OK, mais la récompense Ajoutez également pour les arènes gagnez :( son mauvais, je n'ai besoin que de BG.



3
votes
if (!isArena()) {
  if (bgTeamId == winnerTeamId) {
    if (TEAM_ALLIANCE == winnerTeamId) {
      player->AddItem(XXXXX, 1); // Here add Item for Alliance players to get on BG End
    } else {
      if (TEAM_HORDE == winnerTeamId) {
        player->AddItem(XXXXX, 1); // Here add Item For Horde players to get on BG end
      }
    }
  }
Then just use that

0 commentaires