[Release] Truhen-Quest[-Generator] mit einstellbaren Chancen

07/05/2015 15:20 rollback#1
Weil es ja relativ oft benötigt wird release ich heute mal eine kleine Quest für Truhen bei der man Prozentchancen für jedes Item einstellen kann.

Beispielquest:
Code:
quest chest_test begin
	state start begin
		when 1000.use begin
			local items = {
				[10] = {{189, 1},},
			}
			local randtbl = {}
			for k,v in pairs(items) do
				for i = 1, k do
					table.insert(randtbl, k)
				end
			end
			local item = items[randtbl[math.random(table.getn(randtbl))]]
			local item = item[math.random(table.getn(item))]
			pc.give_item2(item[1], item[2])
			pc.remove_item(1000)
		end
	end
end
Bei der Quest erfolgt die Berechnung der Chance wie folgt:
Code:
((Eingestelle Chance/Summe aller verschiedenen Chancen)*100)/Anzahl Items mit selber Chance
Hier ein paar Screens von dem Generator:

Gallery

wie man auf den Screens sehen kann, hat man auch die Möglichkeit, eine vorhandene Quest zu laden. Da habe ich ein bischen "geschummelt" und lese die Informationen aus dem Kommentarblock der Quest aus.
Es kann also jede Datei gelesen werden, in der die Informationen wie in diesem Beispiel stehen:

Code:
PROGRAMDATA;QUESTNAME;quest_test
PROGRAMDATA;CHESTVNUM;10002
PROGRAMDATA;ITEM;189;1;100
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
PROGRAMDATA;ITEM;187;1;20
Für alle die sich etwas mit Quests auskennen, ist es bei dieser Version nun möglich, das "Template" der Quest zu bearbeiten.
Beim 1. Start des Programms wird eine Datei namens "prequest.lua" im Programmpfad erstellt. Diese sieht wie folgt aus:

Code:
--[[
<<programdata>>
]]
quest <<questname>> begin
	state start begin
		when <<chestvnum>>.use begin
			local items = {
				<<itemdata>>
			}
			local randtbl = {}
			for k,v in pairs(items) do
				for i = 1, k do
					table.insert(randtbl, k)
				end
			end
			local item = items[randtbl[math.random(table.getn(randtbl))]]
			local item = item[math.random(table.getn(item))]
			pc.give_item2(item[1], item[2])
			pc.remove_item(<<chestvnum>>)
		end
	end
end
Hier kann alles nach belieben bearbeitet werden.
Stringwird ersetzt durch
<<programdata>>Daten zum Einlesen der Quest wie im Beispiel oben
<<questname>>Name der Quest
<<chestvnum>>Vnum der zu öffnenden Truhe
<<itemdata>>Table mit allen Items, als Key die eingegebene Chance

Der Download ist wie immer im Anhang! ;)
07/05/2015 15:32 [-Lee-]#2
Durfte ja grade schon testen. Super sache :)
07/05/2015 15:34 Retrograd#3
Ist eine tolle Sache. Für Anfänger ist das Tool sehr hilfreich aber ich denke die erfahrenen Leute kommen auch ohne es aus ;)
07/05/2015 15:40 MonetenJunge#4
Ist ja ganz nett, aber dafür extra nen Generator?
Wenns so weiter geht hat bald jeder 6 jährige nen P-Server auf. Ich mache den Anfang!
07/05/2015 16:08 DasSchwarzeT#5
Sehr nützliches Release, ist ja quasi sogar ein Kombirelease aus nem Generator und einer super Quest!
07/05/2015 18:27 Yiv#6
Gut, ok.
Du bist voll der Babo, aber darf jetzt nicht zu viel rumschwulen, sorry ;(

Danke.

MfG
07/05/2015 20:15 AnTii™#7
Stellst den Source auch zum DL bereit? :)


Ist das nicht der selbe wie von hier?
[Only registered and activated users can see links. Click Here To Register...]
07/05/2015 20:24 rollback#8
Quote:
Originally Posted by AnTii™ View Post
Stellst den Source auch zum DL bereit? :)


Ist das nicht der selbe wie von hier?
[Only registered and activated users can see links. Click Here To Register...]
Ist im Anhang.

Nein bei dem konnte man keine Chancen einstellen ;)
07/05/2015 20:31 AnTii™#9
Alles klar danke für den Source und die Aufklärung :)
07/05/2015 20:39 Langeweile™#10
Huhu,

dumme frage ich weis aber wo füge ich die mit dem Tool erstellte .lua ein und muss ich die noch i-wo eintragen?

Mfg.
07/05/2015 20:45 rollback#11
Quote:
Originally Posted by keni3 View Post
Huhu,

dumme frage ich weis aber wo füge ich die mit dem Tool erstellte .lua ein und muss ich die noch i-wo eintragen?

Mfg.
Die Quest (.lua-Datei) muss in den Questordner und der Dateiname (blabla.lua) muss in die quest_list bzw. locale_list eingetragen werden.
07/05/2015 21:40 Langeweile™#12
Oh ... doch so einfach...
War mir nicht sicher weil in meiner locale_list nur .quest dateien stehen

Danke für die Antwort. :)

Mfg.
07/05/2015 22:37 AnTii™#13
Du kannst dort jegliche Dateiendungen eintragen wie bspw. truhen_quest.keni
Es spielt keine Rolle ob quest, lua, keni usw usw
07/09/2015 21:07 rollback#14
Ich arbeite gerade an einer neuen Version, die deutlich mehr Möglichkeiten zur Individualisierung bieten wird.

Die neue Version beinhaltet eine "prequest.lua", wo man kleine Sachen voreinstellen kann und den Aufbau der Quest verändern kann:
Code:
--[[
<<programdata>>
]]
quest <<questname>> begin
	state start begin
		when <<chestvnum>>.use begin
			local items = {
				<<itemdata>>
			}
			local randtbl = {}
			for k,v in pairs(items) do
				for i = 1, k do
					table.insert(randtbl, k)
				end
			end
			local item = items[randtbl[math.random(table.getn(randtbl))]]
			local item = item[math.random(table.getn(item))]
			pc.give_item2(item[1], item[2])
			pc.remove_item(<<chestvnum>>)
		end
	end
end
Ich denke, dass man erkennen kann, wie das ganze funktioniert ;)

Oben sieht man auch schon einen weiteren Teil der neuen Sachen, das neue Tool wird nämlich auch die Möglichkeit bieten, vorhandene Quests zu laden und zu bearbeiten. Dafür werde ich den Kommentar-Block am oberen Teil der Quest nutzen (keine Angst, der Questcompiler ignoriert Kommentare komplett, für euren Server existiert der Kommentar also garnicht).

Hier noch ein kleiner Screen der aktuellen GUI:
[Only registered and activated users can see links. Click Here To Register...]

Habe mit der neuen Version heute Nachmittag angefangen, also noch nicht meckern :p
07/11/2015 11:46 rollback#15
Mache heute weiter, sieht aktuell so aus:

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