|
You last visited: Today at 04:37
Advertisement
[HowTo]Learn Python with Metin2/Starting up your first bot
Discussion on [HowTo]Learn Python with Metin2/Starting up your first bot within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
10/23/2012, 23:13
|
#16
|
elite*gold: 24
Join Date: May 2009
Posts: 1,165
Received Thanks: 1,222
|
Danke BaumKuchen.
Sehr hilfreich und etwas was ich zu meinen bisherigen Kenntnissen hinzufügen kann.
Gute und ausführliches Tutorial. Kann man gut Lesen. Sehr gut verständlich.
MfG
|
|
|
10/24/2012, 09:52
|
#17
|
elite*gold: 0
Join Date: Apr 2012
Posts: 665
Received Thanks: 214
|
Gut erklärt.
Verständlich.
Informationsreich.
Hoffe auf neue Tutorials von dir.
|
|
|
10/24/2012, 10:07
|
#18
|
elite*gold: 0
Join Date: Aug 2012
Posts: 749
Received Thanks: 188
|
Das ist einer der besten Tutorials, die ich hier in der Metin2 Sektion, je gesehen/gelesen haben durfte. Von der Thematik, den logischen Schlussfolgerungen bis zum Sprachgebrauch. Würde nur annähernd jedes Tutorial ähnlich aufgebaut sein, könnte man dieses Forum in eine Art 'Metin2' Informationsquelle umgestalten.
Desweiteren gefällt mir das Nebenwissen, dass du hier einschulst, wie zB: "Die Funktionen werden zwar schneller ablaufen, allerdings wird die menschliche Wahrnehmung das nicht merken, da diese bei 16 Bildern pro Sekunde liegt, wovon nichtmal alle verarbeitet werden.".
Weiter so!
PS: RS-Fehler hier:
Quote:
Originally Posted by .BaumKuchen
Hierzu stelle ich direkt die Funktion bereit, da dies nicht sonderlich viel mit der Sprache oder der Logik zu tun hat, sondern einfach eine mathematische Gegenebheit ist, die jeder im Laufe seiner Schulzeit mind. 2-3x lernt.
|
|
|
|
10/24/2012, 10:32
|
#19
|
elite*gold: 34
Join Date: Nov 2011
Posts: 1,431
Received Thanks: 850
|
Finde ich wirklich sehr gut habe begonnen Python mir mal anzuschauen finde das von dir wirklich sehr gut weil du die Thematik eklärst bzw was dahinter steht hinter den Befehlen die Theorie!
|
|
|
10/24/2012, 14:04
|
#20
|
elite*gold: 0
Join Date: May 2011
Posts: 1,781
Received Thanks: 618
|
wieder ne blöde frage :P:
ist das nicht thread unsicher ?
Quote:
import chr, player
from chat import AppendChat
from thread import start_new_thread
vid_array = {
chr.INSTANCE_TYPE_BUILDING: [],
chr.INSTANCE_TYPE_ENEMY: [],
chr.INSTANCE_TYPE_NPC: [],
chr.INSTANCE_TYPE_OBJECT: [],
chr.INSTANCE_TYPE_PLAYER: [],
6 : [],
}
final_range = 36
def check_vid(check_range):
for vid in range(check_range * 75000):
#get the instance type from the selected vid
instance_type = chr.GetInstanceType(vid)
#check if vid is already in the array, else append it to the array
if not vid in vid_array[instance_type]:
vid_array[instance_type].append(vid)
if check_range == final_range:
##here you can continue with your script^^
print("Scan finished...")
for check_range in range(final_range):
start_new_thread(check_vid, (check_range, ))
|
theoretisch könnte ein thread genau zur gleichen Zeit auf die vid_array zugreifen ? oder ?
edit:
du hast ALLE Functionen aus der exe ausgelesen ? 
gibt doch eine liste public ( ja ich weiß, dass du gerne allein arbeitest :P, deshalb poste ich keinen link )
|
|
|
10/24/2012, 17:19
|
#21
|
elite*gold: 0
Join Date: Oct 2012
Posts: 47
Received Thanks: 292
|
Quote:
Originally Posted by !Beni!
wieder ne blöde frage :P:
ist das nicht thread unsicher ?
theoretisch könnte ein thread genau zur gleichen Zeit auf die vid_array zugreifen ? oder ?
edit:
du hast ALLE Functionen aus der exe ausgelesen ? 
gibt doch eine liste public ( ja ich weiß, dass du gerne allein arbeitest :P, deshalb poste ich keinen link )
|
Deswegen ersetze ich keine Werte sondern appende sie lediglich in das Array.
Falls ich jetzt eine variable ersetzen würde könnte es eventuell zu Problemen kommen, da das ganze aber nur appended wird wird und sollte es zu keinerlei Problemen führen.
Desweiteren ist es recht unwahrscheinlich dass der Python Interpreter nicht hinterherkommt, trotzdem ist das Array die aktuell beste und einfachste Lösung.
|
|
|
10/24/2012, 19:10
|
#22
|
elite*gold: 726
Join Date: Jul 2010
Posts: 14,233
Received Thanks: 7,915
|
Nettes Tutorial  DaRealFreak²
Quote:
Originally Posted by .BaumKuchen
Durch den Auto-Answer Bot hat der Bot auch eine Frage eines GameMasters überstanden, welcher zwischendurch eine PN geschrieben hat.
|
Also das kann ich nicht glauben, da GM´s variable Fragen stellen, auf die kein Antwortbot eine präzise Antwort geben kann^^
|
|
|
10/24/2012, 19:45
|
#23
|
elite*gold: 0
Join Date: May 2011
Posts: 1,781
Received Thanks: 618
|
Quote:
Originally Posted by 123klo
Nettes Tutorial  DaRealFreak²
Also das kann ich nicht glauben, da GM´s variable Fragen stellen, auf die kein Antwortbot eine präzise Antwort geben kann^^
|
du sagst es, dass wäre mal ein Dreamteam xD
frage:
wie kann ich die OnRender/OnUpdate funktion verwenden ?
btw:
@klo geh mal in skype on, ich hab denn movespeed fix ohne zurücksetzen gemacht, bis 1000. :P
Quote:
Originally Posted by .BaumKuchen
Deswegen ersetze ich keine Werte sondern appende sie lediglich in das Array.
|
das heißt, die wenn man die länge abfragt, wird die immer neugeneriert und nicht von einer bereits vorhandenen Variable ausgelesen ?
|
|
|
10/24/2012, 19:49
|
#24
|
elite*gold: 99
Join Date: Aug 2009
Posts: 4,295
Received Thanks: 5,091
|
Quote:
Originally Posted by !Beni!
du sagst es, dass wäre mal ein Dreamteam xD
frage:
wie kann ich die OnRender/OnUpdate funktion verwenden ?
btw:
@klo geh mal in skype on, ich hab denn movespeed fix ohne zurücksetzen gemacht, bis 1000. :P
|
Quote:
def OnRender,
def OnUpdate
|
... hinschreiben und dann die gewünschte Funktion losdefinieren.
Es wird automatisch von der Binary "gecallt".
Wie viel mal weiß ich nicht so genau, sollten 20 mal pro Sekunde sein.
|
|
|
10/24/2012, 19:51
|
#25
|
elite*gold: 0
Join Date: May 2011
Posts: 1,781
Received Thanks: 618
|
ok, thx, hab geglaubt man muss es metin erst sagen, dass man die function gesetzt hat ^^.
|
|
|
10/24/2012, 20:08
|
#26
|
elite*gold: 99
Join Date: Aug 2009
Posts: 4,295
Received Thanks: 5,091
|
Quote:
Originally Posted by !Beni!
ok, thx, hab geglaubt man muss es metin erst sagen, dass man die function gesetzt hat ^^.
|
Bei anderen Definitionen stimmt das auch, aber bei speziellen,
habe gerade die Liste nicht da, tut es die Binary automatisch durch einen "call".
|
|
|
10/25/2012, 17:38
|
#27
|
elite*gold: 0
Join Date: May 2011
Posts: 1,781
Received Thanks: 618
|
problem:
Code:
def FrezzePosition((x,y),list):
for b in list:
pass
da meldet syserr das:
Code:
1025 17:51:03295 :: for b in list:
1025 17:51:03295 :: SystemError
1025 17:51:03295 :: :
1025 17:51:03295 :: D:\Documents and Settings\Administrator\Desktop\´Ù¿î·Îµå\python-2.2\Python-2.2\Objects\longobject.c:188: bad argument to internal function
1025 17:51:03295 ::
edit: gefunden:
ich kann keine variable von einer anderen klasse verwenden .
Weiters Problem, wenn ich 2-3 Thread aufmache hängt sich der ganze metin2 client auf, nach einigen sekunden reagiert er wieder, aber nur ein Thread bleibt, die anderen wurden gekillt.
|
|
|
04/04/2013, 01:17
|
#28
|
elite*gold: 0
Join Date: Sep 2010
Posts: 51
Received Thanks: 3
|
Quote:
Originally Posted by !Beni!
Weiters Problem, wenn ich 2-3 Thread aufmache hängt sich der ganze metin2 client auf, nach einigen sekunden reagiert er wieder, aber nur ein Thread bleibt, die anderen wurden gekillt.
|
Selbes Problem habe ich auch bzw schon bei dem gepostetem Code auf des Erstellers. Suche schon seit langem eine Lösung
|
|
|
04/04/2013, 11:16
|
#29
|
elite*gold: 726
Join Date: Jul 2010
Posts: 14,233
Received Thanks: 7,915
|
Quote:
Originally Posted by .Puma
Selbes Problem habe ich auch bzw schon bei dem gepostetem Code auf des Erstellers. Suche schon seit langem eine Lösung
|
Soweit ich das von Beni mitbekommen habe, gibt es dafür leider keine Lösung mit Python.
|
|
|
06/10/2013, 22:14
|
#30
|
elite*gold: 310
Join Date: May 2011
Posts: 1,592
Received Thanks: 105
|
Sorry für den Push :/
Wie kann ich per Python das Level des Char's herausfinden? Habe derzeit leider keine Möglichkeit gefunden...
Hoffe mir kann jemand Helfen :/
- Anonyme™
|
|
|
All times are GMT +1. The time now is 04:38.
|
|