EOSERV Forum > Programming > Packets For Quest History
Topic is locked.
Page: << 1 >>
Packets For Quest History
Author Message
Post #195631 Packets For Quest History

I'm creating a bot from various sources, trying to create my own private quest bot. Basically I have got as far to have quests packet all sorted, Still have to work out how to get the player to find the quest owner before running quest accept, but it doesnt walk after I finish quest and it doesnt attack anymore. If I turn the quest off then it will automage as usual but when its on it doesn't do anything else after I've opened quest history, I'm guessing its because it hasn't close quest history because when it sees that the quest is finished and the quest npc is in range it sends the quest accept dialog, so i think that closes quest history. But then after than when it reopens quest history and doesnt have a need to send the quest dialog or quest accept packets it freezes. I'm guessing this is because the quest history page has not been terminated. Does anybody know the packet builder i need for this so the bot closes the quest history page? Ive tried googling and looking at sources and eoserv rev, but nothing. Help is greatly appreciated as this bot will not be released/or sold its purely for personal use to get use to "eocoding".

10 years, 21 weeks ago
Post #195633 Re: Packets For Quest History

Post your code because it is the best way to explain the situation , I have converted one of the popular bots into a mage bot that does the snake quest without moving .So i might help you. 

---
Remember when is not an organization nor a fucking group , it's simply an idea that we believe in
and live for.
The priority of Remember when should come before oxygen , as oxygen is cosmetic even life itself is
cosmetic,that's why offer our worthless lives to The "Remember when"
10 years, 20 weeks ago
Post #195643 Re: Packets For Quest History

Well Basicly when it logs on if Quest is toggled on the config it opens quest history (when it logs on) and checks the quest progress. in its quest handler it decides wether it needs to start quest/finish quest or complete the quest, (all in quest_list_handler), bassicly if the quest isnt started it notices it, send the quest start packet, checks quest history again and then stops. after its checked the quest history (i presume its because the quest history is still up and wont let it do anything else), if the quest is done and all kills are complete it goes to quest finish packet -> quest history -> quest start -> quest history (to clarify the kills) -> stuck (doesnt move/attack npc's). if the quest isnt finished yet it does nothing and tries to carry on and gets stucks.


my quest handler


           reader.GetChar(); //book type progress

            int questsize = reader.GetShort(); // quests size

            Console::Out("Quest History Opened");


            for (int i = 0; i < questsize; ++i)

            {

            std::string questname = reader.GetBreakString(); //questname

            std::string description = reader.GetBreakString(); //description


            int type = reader.GetShort(); //type

            int killed = reader.GetShort(); //amount killed 0 = talk

            int amounttokill = reader.GetShort(); //amount to kill 0 = talk

            reader.GetByte();

            Console::Out("Questname found = " + questname + "Killed ammount: " + util::to_string(killed) + "/" + util::to_string(amounttokill));

            //send_reply();

            amounttokill2 = amounttokill;

             if (questname == "Bird Control (rep)")

            {

            quest_inprogress = true;

            Console::Out("Quest INPROGRESS");

            crows = true;

            Console::Out("Quest History");


            if (crowskilled == 0 && killed > 0 && killed <= 10)

            {

                crowskilled = killed;

                Console::Out("Crows kills found! set to: " + util::to_string(killed));

            }


            if (crowskilled >= 10 || amounttokill == 0)

            {

                crows_complete = true;

                Console::Out("Crows Complete = True");

                quest_inprogress = false;



            }

            else

            {

                quest_inprogress = true;

                crows_complete = false;

                Console::Out("Crows Complete = False");

                botfunc::refresh();

                //quest(40, newnpc->index);

            }

            }

             else if (i == questsize && crows != true)

            {

                crows = false;

            }

            }


}



10 years, 20 weeks ago
Post #195644 Re: Packets For Quest History

You don't need to worry about closing the box since the bot doesn't load one, It's handled by the client.

It looks like the bot isn't checking if it's finished the quest, Have you tried restarting the bot and seeing if it attacks after?

If the bot attacks once restarted, You'll need to make the bot check it's quest history and determine the quest completed.

While testing you can always make the bot declare the quest finished in the warning_message bool and see if it attacks again. (This isn't the best way for a permanent fix.)

10 years, 20 weeks ago
Post #195646 Re: Packets For Quest History

Packet Quest[50]_Accept[2] is the packet.

If your hosting your own server you can compile it in debug mode and record the packets that are sent from the actual client and compare those with the packets your bots sending! Im thinking your bots breaking in the

    if (crowskilled >= 10 || amounttokill == 0)

            {

                crows_complete = true;

                Console::Out("Crows Complete = True");

                quest_inprogress = false;


               CLOSE THE  QUEST DIALOG PACKET ??

            }

   


10 years, 20 weeks ago
Post #195647 Re: Packets For Quest History

Thanks guys, I really appreciate the help, Ill try it out when EO comes back on.

10 years, 20 weeks ago
Page: << 1 >>
Topic is locked.
EOSERV Forum > Programming > Packets For Quest History