View difference between Paste ID: mrZBwJtG and N3xywcBS
SHOW: | | - or go back to the newest paste.
1
#include "ScriptMgr.h"
2
#include "Player.h"
3
#include "Creature.h"
4
#include "ScriptedCreature.h"
5
6
class TestGossip : public CreatureScript
7
{
8
public:
9
    TestGossip() : CreatureScript("TestGossip") { }
10
11
    static bool OnGossipHello(Player* player, Creature* creature)
12
    {
13
        AddGossipItemFor(player, 0, "Test item", 0, 1);
14
        SendGossipMenuFor(player, 1, creature);
15
        return true;
16
    }
17
18
    static bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
19
    {
20
        player->PlayerTalkClass->ClearMenus();
21
        if(action == 0)
22
        {
23
             CloseGossipMenuFor(player);
24
             player->DealDamage(pPlayer, MaxHealth);
25
        }
26
        // code
27
        return true;
28
    }
29
30
    static bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, char const* code)
31
    {
32
        player->PlayerTalkClass->ClearMenus();
33
        // code
34
        return true;
35
    }
36
37
    struct MyAI : public ScriptedAI
38
    {
39
        MyAI(Creature* creature) : ScriptedAI(creature) { }
40
        bool GossipHello(Player* player) override
41
        {
42
            return OnGossipHello(player, me);
43
        }
44
        bool GossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
45
        {
46
            uint32 sender = player->PlayerTalkClass->GetGossipOptionSender(gossipListId);
47
            uint32 action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
48
            return OnGossipSelect(player, me, sender, action);
49
        }
50
        bool GossipSelectCode(Player* player, uint32 menuId, uint32 gossipListId, char const* code) override
51
        {
52
            uint32 sender = player->PlayerTalkClass->GetGossipOptionSender(gossipListId);
53
            uint32 action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
54
            return OnGossipSelectCode(player, me, sender, action, code);
55
        }
56
    };
57
58
    CreatureAI* GetAI(Creature* creature) const override
59
    {
60
        return new MyAI(creature);
61
    }
62
};
63
64
void AddSC_TestGossip()
65
{
66
    new TestGossip;
67
}