|
You last visited: Today at 02:03
Advertisement
[GoodToKnow]Useful things in Python and LUA
Discussion on [GoodToKnow]Useful things in Python and LUA within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
04/10/2014, 13:03
|
#1
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
|
[GoodToKnow]Useful things in Python and LUA
Hallo Leute,
ich möchte euch heute ein paar nützliche Code shortener zeigen. Da ich momentan beim Praktikum sitze muss ich mich beeilen. Sobald ich Zuhause bin gibt es mehr als die eine Sache. Daher bitte ich auch die Mods, diesen Thread nicht zu schließen. Ich Release es hier in der Metin2 Sektion, da die beiden Sprachen für den Client bzw. die Quests essentiell sind.
Wie in fast jeder Programmiersprache gibt es auch in Python und LUA einen "If-Shortener". In C auch als ?: bekannt, gibt es folgende Möglichkeiten.
Anwendungsbeispiele werde ich hinzufügen sobald ich Zuhause bin und ein bisschen Zeit finde.
Normale If-Syntax
PHP Code:
if a > b: c = d else: e = f
Verkürzte Version
PHP Code:
result = c=d if a > b else e=f
PHP Code:
if a > b then c = d else e = f end
Kurzform:
PHP Code:
result = a > b and c = d or e = f
Jeder, der wie ich mal in C programmiert hat, weiß, wie sinnvoll und wichtig die switch-case Routine ist.
Diese sieht in C folgendermaßen aus.
PHP Code:
switch(x) { case 0: { printf("x = 0"); } break; case 1: { printf("x ist eine Quadratzahl"); } break; case 4: { printf("x ist eine Quadratzahl"); } break; case 9: { printf("x ist eine Quadratzahl"); } break; case 2: { printf("x ist eine gerade Zahl"); } break; case 3: { printf("x ist eine Primzahl"); } break; case 5: { printf("x ist eine Primzahl"); } break; case 7: { printf("x ist eine Primzahl"); } break; }
Leider gibt es diese weder in LUA und Python, man kann ihren Sinn jedoch einfach mit if und else if nachstellen:
PHP Code:
if x == 0: print "x = 0.\n" elif x== 1 or x == 9 or x == 4: print "x ist eine Quadratzahl\n" elif x == 2: print "x ist eine gerade Zahl\n" elif x== 3 or x == 5 or x == 7: print "x ist eine Primzahl\n"
PHP Code:
function sayit(numbers) for _,x in ipairs(numbers) do if x == 0 then print("x = 0") elseif x == 1 then print("x ist eine Quadratzahl") elseif x == 9 then print("x ist eine Quadratzahl") elseif x== 4 then print("x ist eine Quadratzahl") elseif x == 3 then print("x ist eine Primzahl") elseif x == 5 then print("x ist eine Primzahl") elseif x == 7 then print("x ist eine Primzahl") end end
Nützliche Zusätze, die zum Thema passen und von nicht spammenden Usern geantwortet wurden:
Zum If-Shortener in LUA (Danke an Noa):
Quote:
Originally Posted by Noa_
Lua:
PHP Code:
return a>b and d or f
€dit. es gibt auch funktionen die man in der quest aktiviert und man sie nicht in die quest_functiuons eintragen braucht.
zb.
schritt 1. : funktion erstellen
schritt 2. : funktion aktivieren
PHP Code:
(function() end)()
version 2. : funktion mit attribute
PHP Code:
variable = 9 (functioin(val) if val==9 then print("Die variable ist eine 9") else print("Die variable ist keine 9") end end)(val)
|
P.S: Der Inhalt des Releases hilft nur Leuten, die bereits Python und oder LUA können.
MfG
DasSchwarzeT
|
|
|
04/10/2014, 13:35
|
#2
|
elite*gold: 192
Join Date: Aug 2009
Posts: 5,797
Received Thanks: 3,141
|
Ich finde du hättest den thread dann auch erst machen sollen wenn du daheim bist
|
|
|
04/10/2014, 13:36
|
#3
|
elite*gold: 139
Join Date: Sep 2010
Posts: 583
Received Thanks: 545
|
finger weg von diesen unnötigen Verkürzungen kann man schlechter lesen
|
|
|
04/10/2014, 13:53
|
#4
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Nette Sache in c++ kannte ich das schon.. Python und kommende lua noch nicht
|
|
|
04/10/2014, 14:05
|
#5
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
Lua:
PHP Code:
return a>b and d or f
€dit. es gibt auch funktionen die man in der quest aktiviert und man sie nicht in die quest_functiuons eintragen braucht.
zb.
schritt 1. : funktion erstellen
schritt 2. : funktion aktivieren
PHP Code:
(function() end)()
version 2. : funktion mit attribute
PHP Code:
variable = 9 (functioin(val) if val==9 then print("Die variable ist eine 9") else print("Die variable ist keine 9") end end)(val)
|
|
|
04/10/2014, 14:14
|
#6
|
elite*gold: 25
Join Date: Jun 2011
Posts: 1,635
Received Thanks: 353
|
Mein Freund widerspruch in dein Release, leute die sich bereits mit Python und Lua auskennen kennen bzw müssten diese Codes wissen.
Daher finde ich es nicht passend hier sondern der richtige Platz fuer dein Release ist im Sammelthread (Releases)
|
|
|
04/10/2014, 14:24
|
#7
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
Stellt euch doch nicht immer so dumm an...
Er meinte vll. das die Tipps für leute die schon Lua oder Python können es hilfreich sein könnte, weil mache nicht alle Tricks kennen.
|
|
|
04/10/2014, 15:28
|
#8
|
elite*gold: 0
Join Date: Mar 2010
Posts: 1,086
Received Thanks: 557
|
Ich würde davon abraten codes zu sehr zu verschachteln ... das verursacht nachher Schwierigkeiten bei der Fehleranalyse.
mfg
|
|
|
04/10/2014, 16:03
|
#9
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
|
Quote:
Originally Posted by RedKing2
Ich würde davon abraten codes zu sehr zu verschachteln ... das verursacht nachher Schwierigkeiten bei der Fehleranalyse.
mfg
|
Eben, deswegen sind Verkürzungen gut, da man so schneller die Fehler findet (man bekommt bei Fehlermeldungen die Zeile, die kurzen If's haben nur 1 Zeile)
Quote:
Originally Posted by Noa_
Stellt euch doch nicht immer so dumm an...
Er meinte vll. das die Tipps für leute die schon Lua oder Python können es hilfreich sein könnte, weil mache nicht alle Tricks kennen.
|
Danke. Du hast den Thread verstanden.
Quote:
Originally Posted by OneStyles
Mein Freund widerspruch in dein Release, leute die sich bereits mit Python und Lua auskennen kennen bzw müssten diese Codes wissen.
Daher finde ich es nicht passend hier sondern der richtige Platz fuer dein Release ist im Sammelthread (Releases)
|
Deine Begründung = fett für'n Arsch.
Jemand wie du sollte nicht darüber Urteilen, wer was kann und wer nicht. Du hast selbst 0 Plan von jeglicher Form des Programmierens. So hart es kling, aber ich denke, deine Meinung gehört in den Sammelthread (Schwachsinnige, Aufmerksamkeitssuchende, Hängengebliebene und von Inkompetenz sowie Unwissen geprägte, grammatikalisch und rechtschreibtechnisch schwache Spammantwort, die kein Schwein interessiert.
Quote:
Originally Posted by Noa_
Lua:
PHP Code:
return a>b and d or f
€dit. es gibt auch funktionen die man in der quest aktiviert und man sie nicht in die quest_functiuons eintragen braucht.
zb.
schritt 1. : funktion erstellen
schritt 2. : funktion aktivieren
PHP Code:
(function() end)()
version 2. : funktion mit attribute
PHP Code:
variable = 9 (functioin(val) if val==9 then print("Die variable ist eine 9") else print("Die variable ist keine 9") end end)(val)
|
Werde ich zu meinem Startpost editieren, danke dir. Allerdings gibt es noch eine andere Möglichkeit, denke ich.
|
|
|
04/10/2014, 16:37
|
#10
|
elite*gold: 25
Join Date: Jun 2011
Posts: 1,635
Received Thanks: 353
|
Aufjedenfall so ein lappen wie du muss sich gegen meine saubere Arbeit äußern ??
Unterschied : ich mach es im hintergrund und du wannabe kackst jeden an der viele Posts hat damit der fuer dich in seiner Signatur Werbung macht mit deiner billigen Client Verschlüsselung
Ich habe genug Referenzen die zufrieden sind mit meiner Arbeit ich kann nämlich 20x so viel Serverside etc mehr als du
Ps: Heul weiter und Push mal dein sinnloses Client Verschlüsselungs Thread
Antispam:
Release gehört in den kleineren Sammelthread
|
|
|
04/10/2014, 16:51
|
#11
|
elite*gold: 0
Join Date: Mar 2013
Posts: 2,449
Received Thanks: 6,448
|
Quote:
Leider gibt es diese weder in LUA und Python, man kann ihren Sinn jedoch einfach mit if und else if nachstellen:
|
Ok.
Switchcase hat den gleichen Sinn wie if-Statements.
Sie sollen es nur einfacher gestalten.
Quote:
Originally Posted by .XXShuzZzle
finger weg von diesen unnötigen Verkürzungen kann man schlechter lesen
|
Ist Ansichtssache.
Beispiel:
Code:
if(asdf == 1) {
d = 1;
} else {
d = 0;
}
Da würde ich auch die Kurzform d = (asdf == 1 ? 1 : 0); nutzen, alleine schon, weil ich ziemlich faul bin.
Quote:
P.S: Der Inhalt des Releases hilft nur Leuten, die bereits Python und oder LUA können.
|
Wenn man so grundlegende Sachen nicht kann, sollte man nicht behaupten, dass man die Sprache beherrscht (meine Meinung).
MfG
|
|
|
04/10/2014, 17:28
|
#12
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
|
Quote:
Originally Posted by [iRemix]
Ok.
Switchcase hat den gleichen Sinn wie if-Statements.
Sie sollen es nur einfacher gestalten.
Ist Ansichtssache.
Beispiel:
Code:
if(asdf == 1) {
d = 1;
} else {
d = 0;
}
Da würde ich auch die Kurzform d = (asdf == 1 ? 1 : 0); nutzen, alleine schon, weil ich ziemlich faul bin.
Wenn man so grundlegende Sachen nicht kann, sollte man nicht behaupten, dass man die Sprache beherrscht (meine Meinung).
MfG
|
Zum letzten Punkt kann ich folgendes sagen;
Das mit den if-Statements (switch case) sollte sicherlich bekannt sein, wenn man denkt, dass man die Sprache kennt. Allerdings denke ich, dass die gekürtzten If-Statements nicht zwingend notwendig zu lernen und somit nicht jedem selbsternannten "Python- oder Luaprofi" bekannt sind. Man kann das auch einfach mit dem "normalen" Weg der If-Statements machen.
Ich denke nur, wie du in einem Beispiel gezeigt hast, dass es den ein oder anderen Code verschönert und vorallem verkürzt. Vorallem bei einfacheren Codes. Komplexere Codes werden mit den kurzen If-Statements leider schnell unübersichtlich..
Naja, danke für deinen Beitrag, wenigstens ein bisschen Kritik und auch was, das zum Thema passt..
Beitrag zu dem rot markierten:
Informatiker und Softwareentwickler sind immer Faul, sonst würde es diese kurzen Formen wohl garnicht geben
|
|
|
04/10/2014, 18:16
|
#13
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
das mit der if Abkürzung hatte mir unseren Lua PaPa Mijago beigebracht wenn ich ganz ehrlich sein soll, ob's andere Möglichkeiten in lua gibt?...
bestimmt! aber nicht kürzer als wie ich es gepostet habe.
|
|
|
|
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. ?
|
WTT THINGS ON DERI FOR THINGS ON GRACIA AND WTB GOLDTICKET/CRIT GAUDIUS !!!!!!!!!!!!!
07/08/2011 - Archlord Trading - 3 Replies
I HAVE SORCREALMS ON DERI
POISON ARMOR 4 SLOTS 3/4 WITH LVL 5 STONES
ZWAN BRACELTS DOUBLE CAST WITH 2 ashtals
LIGHTNING SORCC CAP
SPIRAL RING
SHUTA RING
2 SLOT BIGLOS WITH CLOAK ELE LVL 5 AND LVL 4 ANGEL WINGS
CLOAK LVL 6 IN NOOB NEC ^^
CAST RINGS ; LENS; TOAS ; CRIT RING WITH lvl 4 RING SPIRIT STONE AND MANY OTHER STUFF
|
WTT metin2 german things or account for your last chaos usa auzura things
05/20/2011 - Last Chaos Trading - 0 Replies
hello
i want to trade my metin2 account or things on metin2 german ( server sobo ) for your last chaos usa auzura-eu things .
who is intrested at this offer send me a personal message , there you can ask question abaout things , money or account ( can send screenshots too)
=)
|
All times are GMT +2. The time now is 02:03.
|
|