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

07/11/2015 16:29 [Troll]Fliegex3#16
Gute Quest, aber der User der diese veröffentlicht hat ist kacke.
07/11/2015 19:31 rollback#17
Quote:
Originally Posted by Seחsi View Post
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! ;)
Da ist das Update! ;)
10/29/2018 20:22 mathiasfly#18
Bei mir passiert irgendwie gar nichts wenn ich auf die Truhe klicke....

Hier meine Quest:

Code:
quest Nordens begin
	state start begin
		when 38057.use begin
			local items = {
				
				[20] = {{71084, 2},{39030, 2},{39008, 3},},
				[15] = {{71085, 1},},
				[100] = {{50300, 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(38057)
		end
	end
end
Habe das ganze auch in die locale_list eingetragen. Kann mir jemand helfen?
10/30/2018 12:33 Bīru#19
Quote:
Originally Posted by mathiasfly View Post
Bei mir passiert irgendwie gar nichts wenn ich auf die Truhe klicke....

Hier meine Quest:

Code:
quest Nordens begin
	state start begin
		when 38057.use begin
			local items = {
				
				[20] = {{71084, 2},{39030, 2},{39008, 3},},
				[15] = {{71085, 1},},
				[100] = {{50300, 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(38057)
		end
	end
end
Habe das ganze auch in die locale_list eingetragen. Kann mir jemand helfen?
Haben die Truhe/n in der Datenbank auch den richtigen Typ, dass sie anklickbar sind?
11/01/2018 07:33 mathiasfly#20
Die haben Typ 23 habe es jetzt durch die special_item_group gemacht. Damit funktioniert es.