[Release] Flag Calculator

12/12/2016 21:10 Đurek_v2#1
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]



Desktop application:

[Only registered and activated users can see links. Click Here To Register...]

Im Anhang findet ihr den Download zur Desktop application und dessen Source code.
Online Flag Calculator: [Only registered and activated users can see links. Click Here To Register...]

Flag auslesen füge ich bei Gelegenheit in beiden Versionen noch hinzu.
12/12/2016 21:49 Bostanin Edhe#2
richtig geil ! werden bestimmte einige gebrauchen danke dir !
12/12/2016 21:55 Remix v233#3
warum sollte man den und nicht die 5000 anderen nutzen?
12/12/2016 22:01 Đurek_v2#4
Quote:
Originally Posted by Remix v233 View Post
warum sollte man den und nicht die 5000 anderen nutzen?
Wenn ich mal eben Avenue Zitieren darf, bei dessen Flag Generator ich mich an den Namen bedient habe:
Quote:
Originally Posted by Mr. 'Avenue™ View Post
Hallo liebe Elitepvpers-Community,
da ich bisher ein paar Flag-Generator gesehen habe,
die anscheinend sogar gut funktionieren, jedoch outdated sind
oder kleine Mängel haben, habe ich mich dazu entschlossen,
auch einen zu schreiben (in VB2013) inspiriert dazu wurde ich
durch das Release von [Only registered and activated users can see links. Click Here To Register...].
Bei seinem fällt mir grade ein Fehler ein. Bei einer Auswahl gibt sein Programm 356 statt 256 zurück. Außerdem habe ich den Sourcecode dazu gepackt, sodass jeder innerhalb weniger Minuten das Prinzip versteht und ihn erweitern kann.
Dazu fokussiere ich mich eigentlich eher auf die Webversion, welche z.B. Kori gerne haben wollte.
12/12/2016 22:03 Remix v233#5
hast mich gerade dran erinnert dass ich opfer mal java genutzt habe
kann mich eigentlich umbringen

what ever
fehlen halt noch coole sachen
12/12/2016 22:08 Đurek_v2#6
Quote:
Originally Posted by Remix v233 View Post
hast mich gerade dran erinnert dass ich opfer mal java genutzt habe
kann mich eigentlich umbringen

what ever
fehlen halt noch coole sachen
Kritisier nicht, dass du Java genutzt hast, ich habe das ding in VB.Net geschrieben. Bashe zwar gerne Java aber VB ist nochmal ne Nummer "ungeiler".
Njoa, werde wenn ich die Website dann mal fertig habe da noch weitere Sachen zur Verfügung stellen, was dann den Nutzen der Seite auch deutlich erhöht, in das Programm werde ich wohl nichts anderes als das Auslesen mehr integrieren.
12/12/2016 22:08 YoooOOO000#7
sehr geil =)
12/12/2016 22:09 Remix v233#8
Quote:
Originally Posted by Đurek_v2 View Post
Kritisier nicht, dass du Java genutzt hast, ich habe das ding in VB.Net geschrieben. Bashe zwar gerne Java aber VB ist nochmal ne Nummer "ungeiler".
Njoa, werde wenn ich die Website dann mal fertig habe da noch weitere Sachen zur Verfügung stellen, was dann den Nutzen der Seite auch deutlich erhöht, in das Programm werde ich wohl nichts anderes als das Auslesen mehr integrieren.
hast wohl keine ehre
hättest wenigstens c# nutzen können
wenn du eine bestie bist machst du es in c++ mit qt/gtkmm oder direkt win32
12/12/2016 22:13 Đurek_v2#9
Quote:
Originally Posted by Remix v233 View Post
hast wohl keine ehre
hättest wenigstens c# nutzen können
wenn du eine bestie bist machst du es in c++ mit qt/gtkmm oder direkt win32
Habe bisher nicht den drang gehabt C++ zu lernen, auch wenn es auf meiner ToDo steht. Bin derzeit erstmal dabei meine Python Kenntnisse zu vertiefen, da ich das doch deutlich praktischer finde, weil ich die meisten Sachen für eigene Server oder einen meiner Pis schreibe und ich so einfach schnell ne Zeile/nen Absatz direkt anpassen kann ohne noch zu compilen.
12/12/2016 22:24 MaxChri#10
Quote:
Originally Posted by Remix v233 View Post
hast wohl keine ehre
hättest wenigstens c# nutzen können
wenn du eine bestie bist machst du es in c++ mit qt/gtkmm oder direkt win32
Wenn man eine Bestie ist, macht man es in CMD. :handsdown:

Code:
Antiflag: Weiblich (y/n):

@TE, Die Online-Version ist dir gut gelungen. :)
12/12/2016 22:26 Remix v233#11
Quote:
Originally Posted by MaxChri View Post
Wenn man eine Bestie ist, macht man es in CMD. :handsdown:

Code:
Antiflag: Weiblich (y/n):

@TE, Die Online-Version ist dir gut gelungen. :)
wenn man ne bestie ist nutzt man c++ für alles
gibt einfach keine bessere sprache
hat auch nichts mit ansicht oder sonst was zu tun, ist ein technischer fakt
12/12/2016 22:41 rollback#12
Quote:
Originally Posted by Remix v233 View Post
wenn man ne bestie ist nutzt man c++ für alles
gibt einfach keine bessere sprache
hat auch nichts mit ansicht oder sonst was zu tun, ist ein technischer fakt
C++ ist für einen Flaggenator einfach Overkill.
Auch wenn man C++ kann sollte man wissen, dass es für manche Programme einfach keinen Sinn macht. Klar, man kann das Ganze in C++ viel performanter und ressourcensparender schreiben, aber das ist bei einem Flaggenerator irrelevant, weil er niemals auch nur annährend die Ressourcen eines PCs ausnutzen würde.

Ich schreib das Ding dann mal in Lua. Kappa.

EDIT:
Lol, kurz mal gemacht
Code:
ANTIFLAG = {
	{"Weiblich",					bit32.lshift(1, 0)},
	{"Männlich",					bit32.lshift(1, 1)},
	{"Krieger",						bit32.lshift(1, 2)},
	{"Ninja",						bit32.lshift(1, 3)},
	{"Sura",						bit32.lshift(1, 4)},
	{"Schamane",					bit32.lshift(1, 5)},
	{"Handeln",						bit32.lshift(1, 6)},
	{"Fallen lassen",				bit32.lshift(1, 7)},
	{"Verkaufen",					bit32.lshift(1, 8)},
	{"Rotes Reich",					bit32.lshift(1, 9)},
	{"Gelbes Reich",				bit32.lshift(1, 10)},
	{"Blaues Reich",				bit32.lshift(1, 11)},
	{"Save",						bit32.lshift(1, 12)},
	{"Geben",						bit32.lshift(1, 13)},
	{"Aggro-Drop",					bit32.lshift(1, 14)},
	{"Stapelbar",					bit32.lshift(1, 15)},
	{"Im eigenen Laden",			bit32.lshift(1, 16)},
	{"Lagerbar",					bit32.lshift(1, 17)},
}

FLAG = {
	{"Uppbar",						bit32.lshift(1, 0)},
	{"Save",						bit32.lshift(1, 1)},
	{"Stapelbar",					bit32.lshift(1, 2)},
	{"Count per 1 Gold",			bit32.lshift(1, 3)},
	{"Langsame Query",				bit32.lshift(1, 4)},
	{"Unused01",					bit32.lshift(1, 5)},
	{"Einzigartig",					bit32.lshift(1, 6)},
	{"Zählbar",						bit32.lshift(1, 7)},
	{"Unlöschbar",					bit32.lshift(1, 8)},
	{"Bestätigen vor Benutzung",	bit32.lshift(1, 9)},
	{"Questbenutzung",				bit32.lshift(1, 10)},
	{"Doppelte Questbenutzung",		bit32.lshift(1, 11)},
	{"Quest geben",					bit32.lshift(1, 12)},
	{"Log",							bit32.lshift(1, 13)},
	{"Applicable",					bit32.lshift(1, 14)},
}

WEARFLAG = {
	{"Körper",						bit32.lshift(1, 0)},
	{"Kopf",						bit32.lshift(1, 1)},
	{"Füße",						bit32.lshift(1, 2)},
	{"Handgelenke",					bit32.lshift(1, 3)},
	{"Waffe",						bit32.lshift(1, 4)},
	{"Hals",						bit32.lshift(1, 5)},
	{"Ohr",							bit32.lshift(1, 6)},
	{"Schild",						bit32.lshift(1, 7)},
	{"Extraslot",					bit32.lshift(1, 8)},
	{"Pfeil",						bit32.lshift(1, 9)},
	{"Haare",						bit32.lshift(1, 10)},
	{"Taskbar",						bit32.lshift(1, 11)},
	{"Kostüm",						bit32.lshift(1, 12)},
}

function calculateFlag(flagTable, flagNames)
	local flag = 0
	local flagNameSetTable = {}
	
	for _, flagName in ipairs(flagNames) do
		flagNameSetTable[flagName] = true
	end
	
	for _, v in ipairs(flagTable) do
		if flagNameSetTable[v[1]] then
			flag = bit32.bor(flag, v[2])
		end
	end
	
	return flag
end

function reverseFlag(flagTable, flag)
	local flagNames = {}
	
	for _, v in ipairs(flagTable) do
		if bit32.btest(flag, v[2]) then
			table.insert(flagNames, v[1])
		end
	end
	
	return flagNames
end


-- console start
while true do
	-- mode selection
	local mode = nil
	repeat
		io.write("test")
		print("Names -> Flag / Flag -> Names? (1/2)")
		mode = io.read()
	until mode == "1" or mode == "2"

	-- flagtype selection
	local flagType = nil
	repeat
		print("ANTIFLAG, FLAG or WEARFLAG?")
		flagType = io.read()
	until flagType == "ANTIFLAG" or flagType == "FLAG" or flagType == "WEARFLAG"

	local flagTable = ({
		["ANTIFLAG"] = ANTIFLAG,
		["WEARFLAG"] = WEARFLAG,
		["FLAG"] = FLAG,
	})[flagType]


	if mode == "1" then-- names -> flag
		print("You can choose from the following flags:")
		
		for _, v in ipairs(flagTable) do
			print(v[1])
		end
		
		print("Input all flags you want to set, seperated by space")
		local flagNameStr = io.read()
		local lastSpaceEnd = 1
		local spaceStart, spaceEnd = string.find(flagNameStr, " ")
		local flagNames = {}
		
		while spaceStart do
			table.insert(flagNames, string.sub(flagNameStr, lastSpaceEnd, spaceStart - 1))
			lastSpaceEnd = spaceEnd
			spaceStart, spaceEnd = string.find(flagNameStr, " ", spaceEnd + 1)
		end
		
		table.insert(flagNames, string.sub(flagNameStr, lastSpaceEnd, string.len(flagNameStr)))
		
		print("Calculated flag:")
		print(calculateFlag(flagTable, flagNames))
	else-- flag -> names
		local flag = nil
		repeat
			print("Your flag:")
			flag = tonumber(io.read())
		until flag
		
		print("The following flags are set:")
		for _, flagName in ipairs(reverseFlag(flagTable, flag)) do
			print(flagName)
		end
	end

	print("Continue? (y/n)")
	if io.read() ~= "y" then
		break
	end
end
12/12/2016 22:43 DasSchwarzeT#13
Quote:
Originally Posted by rollback View Post
C++ ist für einen Flaggenator einfach Overkill.
Auch wenn man C++ kann sollte man wissen, dass es für manche Programme einfach keinen Sinn macht. Klar, man kann das Ganze in C++ viel performanter und ressourcensparender schreiben, aber das ist bei einem Flaggenerator irrelevant, weil er niemals auch nur annährend die Ressourcen eines PCs ausnutzen würde.

Ich schreib das Ding dann mal in Lua. Kappa.
Lua ist halt sowieso nach C++ die beste und am weitesten verbreitete "Programmiersprache"....
12/12/2016 22:54 _asm#14
Quote:
Originally Posted by DasSchwarzeT View Post
Lua ist halt sowieso nach C++ die beste und am weitesten verbreitete "Programmiersprache"....
aha, das wäre mir aber neu.
12/12/2016 22:59 Remix v233#15
Quote:
Originally Posted by rollback View Post
C++ ist für einen Flaggenator einfach Overkill.
Auch wenn man C++ kann sollte man wissen, dass es für manche Programme einfach keinen Sinn macht. Klar, man kann das Ganze in C++ viel performanter und ressourcensparender schreiben, aber das ist bei einem Flaggenerator irrelevant, weil er niemals auch nur annährend die Ressourcen eines PCs ausnutzen würde.

Ich schreib das Ding dann mal in Lua. Kappa.
wenn man es in c++ genau so einfach wie in java/c#/vb.net machen kann wozu sollte man dann schwule virtuelle sprachen nutzen?