Register for your free account! | Forgot your password?

You last visited: Today at 02:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Python] Quest Bot

Discussion on [Python] Quest Bot within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
elite*gold: 278
Join Date: Aug 2010
Posts: 145
Received Thanks: 19
Post [Python] Quest Bot

Hallo,

ich versuche gerade einen Bot zu realisieren, der eine Quest ausführt.
Das ganze teste ich gerade mit dem Seelenstein.

Das ganze sind dann 4 Buttons (Weiter, Fähigkeit auswählen, wieder weiter und dann ok).

Ich hab das ganze so versucht:
PHP Code:
class Botdialog(ui.ThinBoard):
###########################################################################################################################################
    
def __init__(self):
        
ui.ThinBoard.__init__(self)
        
self.LoadBoard()
        
self.OldRecv game.GameWindow.OpenQuestWindow
        self
.InstallQuestWindowHook()
        
###########################################################################################################################################
    
def InstallQuestWindowHook(self):
        
game.GameWindow.OpenQuestWindow self.HookedQuestWindow
        chat
.AppendChat(1"Quest Window wurde erfolgreich gehooked.")        
        
    
def UnHookQuestWindow(self):
        
game.GameWindow.OpenQuestWindow self.OldRecv
        chat
.AppendChat(1"Quest Window Hook wurde entfernt.")
        
    
def HookedQuestWindow(selfskinidx):
        
pass    
    
#####################################################################################
    
def __del__(self):
        
ui.ThinBoard.__del__(self)
                
self.UnHookQuestWindow()

    
def Destroy(self):
        
self.Hide()
        return 
TRUE    #####################################################################################
    
def LoadBoard(self):
        
self.SetCenterPosition()
        
self.SetSize(300200)
        
self.Show()
        
self.AddFlag("movable")
#######################################################
        
self.LoadText()
        
self.LoadButton()
######################################################
    
def LoadText(self):
        
self.Titel ui.TextLine()
        
self.Titel.SetParent(self)
        
self.Titel.SetDefaultFontName()
        
self.Titel.SetPosition(-804)
        
self.Titel.SetFeather()
        
self.Titel.SetWindowHorizontalAlignCenter()
        
self.Titel.SetText("Tool")
        
self.Titel.SetFontColor(1.12.87)
        
self.Titel.SetOutline()
        
self.Titel.Show()    #####################################################################################
    
def LoadButton(self):
        
self.CloseButton ui.Button()
        
self.CloseButton.SetParent(self)
        
self.CloseButton.SetPosition(2804)
        
self.CloseButton.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
        
self.CloseButton.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
        
self.CloseButton.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
        
self.CloseButton.SetToolTipText(locale.UI_CLOSE0, - 23)
        
self.CloseButton.SetEvent(ui.__mem_func__(self.Destroy))
        
self.CloseButton.Show()
    
######################################################
        
self.Seelensteinstart ui.Button()
        
self.Seelensteinstart.SetParent(self)
        
self.Seelensteinstart.SetPosition(2020)
        
self.Seelensteinstart.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
        
self.Seelensteinstart.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
        
self.Seelensteinstart.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
        
self.Seelensteinstart.SetEvent(ui.__mem_func__(self.Seelensteinquest))
        
self.Seelensteinstart.Show()        #####################################################################################
    
def Seelensteinquest(self):
        for 
i in xrange(player.INVENTORY_PAGE_SIZE*2):
            
ItemValue player.GetItemIndex(i)
            if 
ItemValue == 50513:
                
net.SendItemUsePacket(i)
                
event.SelectAnswer(10)
                
event.SelectAnswer(10)
                
event.SelectAnswer(10)
                
event.SelectAnswer(10)
                break
################################################################ 
Das ganze funktioniert leider nicht so ganz :/
Was mach ich falsch?

Mfg
evoh12 is offline  
Old 01/29/2015, 22:10   #2
 
elite*gold: 278
Join Date: Aug 2010
Posts: 145
Received Thanks: 19
keiner eine Idee? :/
Mach ich beim Hooken was falsch? Sind ja eig. die Func von DaRealFreak.
evoh12 is offline  
Old 01/29/2015, 22:27   #3
 
Poccix's Avatar
 
elite*gold: 44
Join Date: Dec 2009
Posts: 1,696
Received Thanks: 3,833
Andere Frage, wieso?
Poccix is offline  
Old 01/29/2015, 22:56   #4
 
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
Eine bessere Fehlerbeschreibung , die syserr und das komplette Script wären von Vorteil, wenn du ernsthafte, nützliche Antworten möchtest
xGr33n is offline  
Old 01/29/2015, 23:07   #5
 
elite*gold: 278
Join Date: Aug 2010
Posts: 145
Received Thanks: 19
Nadann hier der ganze Code:
PHP Code:
###########################################################################################################################################
import app
import chat
import chr
import locale
import net
import player
import time
import ui
import player
import chrmgr
import background
import nonplayer
import os 
import event
import game
###########################################################################################################################################

class Botdialog(ui.ThinBoard):
###########################################################################################################################################
    
def __init__(self):
        
ui.ThinBoard.__init__(self)
        
self.LoadBoard()
        
self.OldRecv game.GameWindow.OpenQuestWindow
        self
.InstallQuestWindowHook()
        
###########################################################################################################################################
    
def InstallQuestWindowHook(self):
        
game.GameWindow.OpenQuestWindow self.HookedQuestWindow
        chat
.AppendChat(1"Quest Window wurde erfolgreich gehooked.")        
        
    
def UnHookQuestWindow(self):
        
game.GameWindow.OpenQuestWindow self.OldRecv
        chat
.AppendChat(1"Quest Window Hook wurde entfernt.")
        
    
def HookedQuestWindow(selfskinidx):
        
pass    
    
########################################################################################################################################    
    
def __del__(self):
        
ui.ThinBoard.__del__(self)

    
def Destroy(self):
        
self.Hide()
        return 
TRUE
    
###########################################################################################################################################
    
def LoadBoard(self):
        
self.SetCenterPosition()
        
self.SetSize(300200)
        
self.Show()
        
self.AddFlag("movable")
        
###########################################################################################################################################
        
self.LoadText()
        
self.LoadButton()
        
###########################################################################################################################################
    
def LoadText(self):
        
self.Titel ui.TextLine()
        
self.Titel.SetParent(self)
        
self.Titel.SetDefaultFontName()
        
self.Titel.SetPosition(-804)
        
self.Titel.SetFeather()
        
self.Titel.SetWindowHorizontalAlignCenter()
        
self.Titel.SetText("Tool")
        
self.Titel.SetFontColor(1.12.87)
        
self.Titel.SetOutline()
        
self.Titel.Show()
        
###########################################################################################################################################
    
def LoadButton(self):
        
self.CloseButton ui.Button()
        
self.CloseButton.SetParent(self)
        
self.CloseButton.SetPosition(2804)
        
self.CloseButton.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
        
self.CloseButton.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
        
self.CloseButton.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
        
self.CloseButton.SetToolTipText(locale.UI_CLOSE0, - 23)
        
self.CloseButton.SetEvent(ui.__mem_func__(self.Destroy))
        
self.CloseButton.Show()
        
###########################################################################################################################################
        
self.Seelensteinstart ui.Button()
        
self.Seelensteinstart.SetParent(self)
        
self.Seelensteinstart.SetPosition(2020)
        
self.Seelensteinstart.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")
        
self.Seelensteinstart.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")
        
self.Seelensteinstart.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")
        
self.Seelensteinstart.SetEvent(ui.__mem_func__(self.Seelensteinquest))
        
self.Seelensteinstart.Show()
        
        
        
        
###########################################################################################################################################
    
def Seelensteinquest(self):
        for 
i in xrange(player.INVENTORY_PAGE_SIZE*2):
            
ItemValue player.GetItemIndex(i)
            if 
ItemValue == 50513:
                
net.SendItemUsePacket(i)
                
event.SelectAnswer(10)
                
event.SelectAnswer(10)
                
event.SelectAnswer(10)
                
event.SelectAnswer(10)
                break
################################################################
class WaitingDialog(ui.ScriptWindow):

    
def __init__(self):
        
ui.ScriptWindow.__init__(self)
        
self.eventTimeOver lambda *argNone
        self
.eventExit lambda *argNone

    def __del__
(self):
        
ui.ScriptWindow.__del__(self)

    
def Open(selfwaitTime):
        
curTime time.clock()
        
self.endTime curTime waitTime

        self
.Show()        

    
def Close(self):
        
self.Hide()

    
def Destroy(self):
        
self.Hide()

    
def SAFE_SetTimeOverEvent(selfevent):
        
self.eventTimeOver ui.__mem_func__(event)

    
def SAFE_SetExitEvent(selfevent):
        
self.eventExit ui.__mem_func__(event)
        
    
def OnUpdate(self):
        
lastTime max(0self.endTime time.clock())
        if 
== lastTime:
            
self.Close()
            
self.eventTimeOver()
        else:
            return
        
    
def OnPressExitKey(self):
        
self.Close()
        return 
TRUE    
    
###########################################################################################################################################
StartDialog Botdialog()
StartDialog.Show() 
Syserr ist natürlich nichts drin schließlich bekomme ich keine Fehlermeldung.
Naja also ich will damit die Seelensteinquest vorerst automatisieren (Bot) nur leider öffnet er durch die Hookfunktion den Seelenstein anscheind nicht -> es passiert nichts.

Quote:
Originally Posted by Isaac™ View Post
Andere Frage, wieso?
Was wieso?

Danke
evoh12 is offline  
Reply

Tags
python, quest, seelenstein


Similar Threads Similar Threads
Quest rufen in python
09/06/2014 - Metin2 Private Server - 10 Replies
Hallo, Ich möchte es fragen, ob es möglich ist, dass ein Quest im Spiel per python bot rufen? Es gib ein NPC und 2 quest bei ihm. Ich möchte das erste quest nutzen mit dem Bot. Gibt es einen Befehl, womit ich das Quest rufen kann? Ich werde neben dem NPC stehen. (Vielleicht net.SendOnClickPacket() :confused: ?) Vielen Dank im Voraus!
Python / Quest
03/09/2014 - Metin2 Private Server - 6 Replies
Hallo, ich wollte mal fragen wie ich es am besten umsetze wie das Gildenlager möchte gern soetwas in der art machen. Wäre nett wen mir das irgendwer beibringen könnte oder erklären könnte wie das geht. MfG
Python GUI, Quest, Befehle?
02/05/2014 - Metin2 Private Server - 1 Replies
Hey COM, ich hab mir vorgenommen, mich mal etwas mit Python und dem dazugehörigem Kram auseinander zu setzen. Mich interessiert folgendes: Wie läuft das ab, ich hab gelesen das man ein GUI in meinem Fall sind es "Label" mit einer Quest füllen kann. Wie stell ich das aber an, was muss ich in die Quest packen um dann im GUI die Zahl 1 stehen zu haben? (Wenns n schönes HowTo gibt, wärs nett wenn es gepostet wird. Desweiteren hab ich mich zu dem Python Thema noch gefragt, wo die...
Python / input quest
04/22/2013 - Metin2 Private Server - 0 Replies
Hallo,ich würde gerne eine funktion teils python schreiben und es via chatpacket ausgeben zb wie hier net.SendChatPacket("/war " + guildName) nur das bei guildname das eingegebene stehen soll, wie kann ich es in einer Funktion schreiben?
Which Quest Gives The Key For Python?
09/10/2008 - Dekaron Private Server - 2 Replies
Which quest guy i have to see to get the key to enter the python inside the 90 dungeon in x360 private server? I cant find the quest because is full of weird contexts and idk how to get the key to get inside the door of python. A help would and a detailed description would be really appreciate it and thanks would be given



All times are GMT +1. The time now is 02:32.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.