Register for your free account! | Forgot your password?

You last visited: Today at 05:35

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

Advertisement



[METIN2]Python

Discussion on [METIN2]Python within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
elite*gold: 35
Join Date: Jun 2009
Posts: 2,187
Received Thanks: 6,906
[METIN2]Python

Hey Leute,
ich dachte mir, ich mache einfach mal ein python tutorial.

Nun gut wer nicht weiß was Python ist, liest sich vorerst bitte das hier durch:

http://de.wikipedia.org/wiki/Python_(Programmiersprache)

Python wird von vielen Spielen verwendet, da es einfach aber wirkungsvoll ist.

Naja ich fange jetzt einfach mal damit an und hoffe das ihr mit kommt

String's:

Wie definiere ich einen String?

Du schreibst als erstes z.B.

PHP Code:
epvp "http://elitepvpers.com" 
Nun haben wir einen string namens epvp.
Diesen können wir durch einen anderen string zusammenfügen:

PHP Code:
ep "http://elitep"
vp ep "vpers.de" 
Anstatt "ep +" kann man auch "str(ep) +" schreiben.
ACHTUNG!: In einem String dürfen keine Sonderzeichen stehen.
Sprich "ep&vp" als String name würde nicht gehen sondern nur Fehler verursachen.

Wie änder ich einen String?

Zuerst definiert ihr einen String/ Variable.

Ich nenne ihn z.B. jetzt einfach mal
Code:
crank
Okay gut diesen String schreiben wir z.B. in die constInfo.py
Danach machen wir unsere eigene "def" :

PHP Code:
def __OnClickLogin(self):
    
import constInfo
    import dbg
    id 
self.idEditLine.GetText()
    
pwd self.pwdEditLine.GetText()
    
    if 
len(id) == 0:
        
self.PopupNotifyMessage("Der text dass keine ID eingetragen ist")
        return

    if 
len(pwd) == 0:
        
self.PopupNotifyMessage("Der text das kein PWD eingetragen ist")
        return

    
constInfo.crank id "|" pwd
    crank 
constInfo.crank.split("|")

    
dbg.LogBox("Deine id ist: " crank[0] + "\nDein Passwort ist :" crank[0]) 
Ja ich weiß das war nun sehr sehr viel auf einmal.
Jedoch erkläre ich euch alles ganz genau später.

Wie ihr seht hab ich den String in
Code:
id|pwd
geändert.
wie ihr seht habe ich einen neuen String definiert und ihn crank genannt. Jedoch seht ihr am schluss .split("|")
Das heißt so viel das wie, das er diesen Buchstaben nicht mit lesen soll.
Das ist sehr nützlich, da man so 1 String in mehrere kleinere Strings aufteilen kann.
PHP Code:
crank[0]    Bedeutet so vieldas der erste Text der vor dem steht eingesetzt wird.
und
crank
[0]       Bedeutet so vieldas der erste Text der nach dem steht eingesetzt wird.

dbg.LogBox("Deine id ist: " crank[0] + "\nDein Passwort ist :" crank[0])  

Dies bedeutet das eine Windows Message Box mit dem geteilten String als Nachricht ausgeführt wird
Syntax:

Damit ihr keine Fehler wegen der Syntax bekommt, wenn ihr die .py files bearbeitet, müsst ihr oft den Tabulator verwenden.
Das ist die taste links oben neben dem "Q"

Vor einer "def" darf kein TAB stehen.
Da darf nichts stehen außer das TAB.
Bei einer if- clause wird einmal der Tabulator gedrückt. Bsp:

PHP Code:
    import player
    name 
player.GetName()
    if 
name[0] == "[":
        if 
name[1] == "S":
            if 
name[2] == "A":
                if 
name[3] == "]":
    else:
        
app.Exit() 


Die vielen if's sind nur zu Veranschaulichung da.
Ihr solltet nun sehen, das der text nach dem ":" einer if- Clause == TAB(s) vor dem if + 1


If- Clause:

Mit If- Clauses, kann man sachen abfragen zum Beispiel:

Code:
	Wenn der name [CranK] gefunden wird mach das:
		Message Box anzeigen mit Text Hallo CranK™
	Wenn der name [Crank] nicht gefunden wird dann mach das:
		Spiel beenden.
In Python sieht das dann etwa so aus:

PHP Code:
    name player.GetName()
    if 
name.find("[CranK]")!=-1:
        
self.PopupNotifyMessage("Hallo CranK™")
    else:
        
app.Exit() 
Operatoren:

Operatoren sind "Buchstaben" mit denen man 2 Strings z.B. vergleichen kann.

BuchstabenAufgabe
==Prüfen ob 2 Strings den gleichen Wert haben
!=Prüfen ob 2 String nicht den gleichen Wert haben
>=Prüfen ob der Wert von String1 größer oder gleich wie der von String2 ist
<=Prüfen ob der Wert von String1 kleiner oder gleich wie der von String2 ist
>Prüfen ob der Wert von String1 größer ist als der von String2
<Prüfen ob der Wert von String1 kleiner ist als der von String2
<>Prüfen ob 2 Werte ungleich sind
isPrüfen ob 2 Werte identisch sind
is notPrüfen ob 2 Werte nicht identisch sind

Diese Operatoren werden in If- Clauses verwendet.

Mir fällt ehrlich gesagt nicht ein was ich noch schreiben sollte :O

Wenn ihr irgend etwas findet was ich vergessen oder falsche gemacht habe, dann sagt es bitte hier im Thread bescheid.

MfG CranK™
CranK™ is offline  
Thanks
49 Users
Old 05/12/2011, 18:03   #2
 
.Plazmaa's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 2,023
Received Thanks: 947
Nice ,
wie immer.

Jetz werden es denk ich mal mehr verstehen.
Und viele "strings" oder whatever kann man dann ja auch evtl.
durch google erfahren.
.Plazmaa is offline  
Old 05/12/2011, 18:06   #3
 
elite*gold: 120
Join Date: Jul 2008
Posts: 2,403
Received Thanks: 1,594
Wollte Python extra wegen Metin lernen..

Danke .. Wie immer nice von dir^^
anil the alpacino is offline  
Thanks
1 User
Old 05/12/2011, 18:06   #4
 
elite*gold: 0
Join Date: Jan 2011
Posts: 387
Received Thanks: 139
Nettes Tut. Habs mir auch selbst durchgelesen. Leicht verständlich!

#Thanks
Яonix is offline  
Old 05/12/2011, 18:15   #5
 
elite*gold: 6
Join Date: May 2010
Posts: 1,227
Received Thanks: 1,629
hoffentlich kommen jetzt mehr gute Addons fürn Clienten, mir fällt im Mom nix ein was ich machen könnte, eventuell haben andere bessere Ideen xD
Btw n1ce topic^^

MfG RealFreak
RealFreak is offline  
Old 05/12/2011, 18:16   #6
 
elite*gold: 0
Join Date: Jan 2011
Posts: 818
Received Thanks: 974
Gut erklärt, aber fraglich ob es alle verstehen!

Naja jedenfalls wollte ich noch sagen, das du noch dazuschreiben musst das man z.b. die If´s beendet, wenn man die Tabulator weglässt ^^
Achja die Tab-aste ist die mit den Zwei Pfeilen(für die die nicht wissen wo Q ist xD)
0x4D617276 is offline  
Old 05/12/2011, 18:29   #7
 
elite*gold: 600
Join Date: Dec 2010
Posts: 1,625
Received Thanks: 1,866
sehr nice danke

werden sich zwar nicht auskennen aber sonst relativ gut gemacht
Bataleon is offline  
Old 05/12/2011, 18:48   #8
 
elite*gold: 0
Join Date: Oct 2010
Posts: 1,604
Received Thanks: 653
xD Thx olli
ℰ✗!ℳ is offline  
Old 05/12/2011, 19:24   #9
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,484
Received Thanks: 3,151
Die Leute sollten weniger Scriptsprachen und mehr Maschinennahe
Sprachen lernen. Oder wenigesten eine richtige Sprache, mit Referenzen und
wo ein String nicht einfach mit
PHP Code:
string "1222" 
sondern mit
PHP Code:
int mInteger 1222;
string mSomethng "somestring"
o.Ä. definiert wird.
Daroolein is offline  
Thanks
2 Users
Old 05/12/2011, 21:08   #10
 
.Resistance's Avatar
 
elite*gold: 17
Join Date: Jul 2009
Posts: 1,562
Received Thanks: 478
Super das du dich dazu entschieden hast das Tut zu machen.
Ist gut geschreiben.
Eine Frage noch: name[0], name[1]... sind in anderen Sprachen ja Arrays.
Bedeutet das in Py, dass der 1/2/... Buchstabe eines Strings gelesen wird, oder war das nur ein Bsp?


Quote:
Originally Posted by Senator Daroo View Post
Die Leute sollten weniger Scriptsprachen und mehr Maschinennahe
Sprachen lernen. Oder wenigesten eine richtige Sprache, mit Referenzen und
wo ein String nicht einfach mit
PHP Code:
string "1222" 
sondern mit
PHP Code:
int mInteger 1222;
string mSomethng "somestring"
o.Ä. definiert wird.
Stimmt schon. Aber was willst du z.B. mit C++ im Clienten anfangen?
Nur wegen dem Clienten interessiert mich Python. Sonst hätte ich es mir nie angeschaut.
Außerdem sind Scriptsprachen finde ich ein guter Einstieg ins Programmieren. Ich hab mit AutoIt angefangen, jz bin ich dabei C++ zu lernen.
Mit den Scriptsprachen lernt man auf einfache Weiße den Aufbau eines Programmes. Dann muss man es nur noch in eine beliebige Sprache übersetzen. Ich finde nicht, dass es schlecht war, AutoIt zu lernen, weil ich jz keine Verständnisprobleme habe
.Resistance is offline  
Old 05/12/2011, 21:11   #11
 
elite*gold: 0
Join Date: Jan 2011
Posts: 1,484
Received Thanks: 3,151
Das ist kein C++ :O
Daroolein is offline  
Old 05/12/2011, 21:17   #12
 
.Resistance's Avatar
 
elite*gold: 17
Join Date: Jul 2009
Posts: 1,562
Received Thanks: 478
Ich weiß.
Das war zu deinem Beitrag zu den Maschienennahen Sprachen gemeint.
Python braucht man zum Client modden.
Mit C++/C... kannst du im Clienten nichts anfangen.
Desshalb lernt man Python
.Resistance is offline  
Old 05/12/2011, 21:19   #13
 
elite*gold: 35
Join Date: Jun 2009
Posts: 2,187
Received Thanks: 6,906
Quote:
Originally Posted by poll7979 View Post
Super das du dich dazu entschieden hast das Tut zu machen.
Ist gut geschreiben.
Eine Frage noch: name[0], name[1]... sind in anderen Sprachen ja Arrays.
Bedeutet das in Py, dass der 1/2/... Buchstabe eines Strings gelesen wird, oder war das nur ein Bsp?




Stimmt schon. Aber was willst du z.B. mit C++ im Clienten anfangen?
Nur wegen dem Clienten interessiert mich Python. Sonst hätte ich es mir nie angeschaut.
Außerdem sind Scriptsprachen finde ich ein guter Einstieg ins Programmieren. Ich hab mit AutoIt angefangen, jz bin ich dabei C++ zu lernen.
Mit den Scriptsprachen lernt man auf einfache Weiße den Aufbau eines Programmes. Dann muss man es nur noch in eine beliebige Sprache übersetzen. Ich finde nicht, dass es schlecht war, AutoIt zu lernen, weil ich jz keine Verständnisprobleme habe
Ja also wenn der 2. Buchstabe ein "S" ist usw.
Naja Java lernen.
Ist eig das wichtigste und wenn man des gut beherrscht beherrscht man auch die meisten Syntaxes.
CranK™ is offline  
Thanks
1 User
Old 05/12/2011, 21:21   #14
 
.Resistance's Avatar
 
elite*gold: 17
Join Date: Jul 2009
Posts: 1,562
Received Thanks: 478
Also liest Python mit name[0] automatisch den ersten Buchstaben eines Strings?
Oder muss das wie überall der/das(?) Array vorher definiert werden?
.Resistance is offline  
Old 05/12/2011, 21:32   #15
 
elite*gold: 0
Join Date: Jan 2011
Posts: 818
Received Thanks: 974
Quote:
Originally Posted by CranK™ View Post
Naja Java lernen.
Ist eig das wichtigste und wenn man des gut beherrscht beherrscht man auch die meisten Syntaxes.
lulz Assembler lernen ^^

Naja bei Java ist halt der Nachteil, das man immer wieder updaten muss und wenn du Java kannst kennst du nicht gleich die Syntax von z.B. Visual Basic oder Python ^^

@Thread: Also ich wollte auch noch sagen, das das lange nicht alles ist was man mit Python machen kann, das weißt du doch auch, oder?
0x4D617276 is offline  
Reply

Tags
client, crank, metin2, python, tutorial


Similar Threads Similar Threads
[Python-Modul]EXP-Donator (kompatibel mit Python Loader)
11/23/2013 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 27 Replies
Moin, da man mich danach gefragt hat und ich sowieso mal ein Beispiel für die Benutzung meines Python Loaders veröffentlichen wollte, habe ich die Gelegenheit genutzt und euch eben einen EXP-Spendebot geschrieben. Man kann ihn einfach mit dem oben verlinkten Python Module Loader laden und ihn mit F5 aktivieren/deaktivieren. Sobald ihr mehr als 99 Erfahrungspunkte habt (man kann nur in 100er Schritten spenden), werden alle Erfahrungspunkte an eure Gilde gespendet. Wer Lust hat und...
Help to make a python file works with python loader
03/03/2013 - Metin2 - 2 Replies
Hey epvp! I want make a very. Little hack works on pythonn loader can anybody help me please?
Metin2 - Python - Wie Python Hacks verschlüsseln und Server überprüfen (GF/PServe)
09/23/2012 - Metin2 - 2 Replies
Ich wollte fragen, wie man Python Hacks am besten Verschlüsselt ? und wie man feststellen kann ob man auf einem GF / Pserver spielt. ?



All times are GMT +2. The time now is 05:35.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.