[METIN2]Python

05/12/2011 17:59 CranK™#1
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™
05/12/2011 18:03 .Plazmaa#2
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.
05/12/2011 18:06 anil the alpacino#3
Wollte Python extra wegen Metin lernen..

Danke :).. Wie immer nice von dir^^
05/12/2011 18:06 Яonix#4
Nettes Tut. Habs mir auch selbst durchgelesen. Leicht verständlich!

#Thanks
05/12/2011 18:15 RealFreak#5
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
05/12/2011 18:16 0x4D617276#6
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)
05/12/2011 18:29 Bataleon#7
sehr nice danke :)

werden sich zwar nicht auskennen aber sonst relativ gut gemacht
05/12/2011 18:48 ℰ✗!ℳ#8
xD Thx olli ;)
05/12/2011 19:24 Daroolein#9
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.
05/12/2011 21:08 .Resistance#10
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
05/12/2011 21:11 Daroolein#11
Das ist kein C++ :O
05/12/2011 21:17 .Resistance#12
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
05/12/2011 21:19 CranK™#13
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.
05/12/2011 21:21 .Resistance#14
Also liest Python mit name[0] automatisch den ersten Buchstaben eines Strings?
Oder muss das wie überall der/das(?) Array vorher definiert werden?
05/12/2011 21:32 0x4D617276#15
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? :D