[SERVICE] Die Questerstellung

04/12/2015 15:11 rollback#2491
Quote:
Originally Posted by *Mini* View Post
alo ich möchte auf den markt einen npc stellen er verlangt von den spielern 5 verschiedene items (10x schweinsnase, 20xschlangenschwanz, 5xpferdemedalie, 5xporzelan, 5xaffenkraut) wenn sie diese items zum npc bringen können sie sich ein item aussuchen (pferde siegel oder pet siegel oder ...)

danke

@ DYSKaito vielen dank :-*
Benutz die:

Code:
quest itemtausch begin
	state start begin
		when xxx.chat."Itemtausch" begin
			local items = {
				["to_trade"] = {
					{30003, 10},
					{30022, 20},
					{50050, 5},
					{30033, 5},
					{affenkraut, 5}
				},
				["items"] = {
					{item1, anzahl_item1},
					{item2, anzahl_item2},
					{item3, anzahl_item3},
					{item4, anzahl_item4},
					{item5, anzahl_item5}
				}
			}
			for _, tbl in pairs(items["to_trade"]) do
				if pc.count_item(tbl[1]) < tbl[2] then
					say("Du hast nicht genügend Items für einen Tausch.")
					say("Du benötigst folgende Items für einen Tausch:")
					say("")
					for _, item in pairs(items["to_trade"]) do
						say(item[2].."x "..item_name(item[1]))
					end
					return
				end
			end
			local item_names = {}
			for _, tbl in pairs(items["items"]) do
				table.insert(item_names, item_name(tbl[1]))
			end
			say("Gut ... du hast alle benötigten Items.")
			say("Gegen welches Dieser Items möchtest du sie tauschen?")
			local select_item = items["items"][select3(item_names)] or false
			if select_item then
				say("Möchtest du wirklich folgende Items:")
				for _, item in pairs(items["to_trade"]) do
					say(item[2].."x "..item_name(item[1]))
				end
				say("gegen "..select_item[2].."x "..item_name(select_item[1]))
				say("tauschen?")
				if select("Ja", "Nein") == 2 then return end
				for _, tbl in pairs(items["to_trade"]) do
					if pc.count_item(tbl[1]) < tbl[2] then
						say("Versuch nicht zu verarschen!")
						return
					end
					pc.remove_item(tbl[1], tbl[2])
				end
				pc.give_item2(select_item[1], select_item[2])
			end
		end
	end
end
:)
04/12/2015 18:28 ArcaniaZero#2492
Hallo zusammen,

ich suche eine Quest die folgendes macht:

ab Lv. 5 - Man erhält das Anfänger Pferdebild und man kann das normale Pferd reiten,Rufen usw. + kleine Text nachricht.
ab Lv. 35 man erhält das 2te Pferd also den Kampfgaul + kleine Text nachricht.
ab Lv. 45 man erhält das Milligaul buch + den Milligaul und die Reitfertigkeiten + kleine Text nachricht.

Kann mir jemand so eine Quest geben ?

Vielen Dank
04/12/2015 19:00 rollback#2493
Quote:
Originally Posted by ArcaniaZero View Post
Hallo zusammen,

ich suche eine Quest die folgendes macht:

ab Lv. 5 - Man erhält das Anfänger Pferdebild und man kann das normale Pferd reiten,Rufen usw. + kleine Text nachricht.
ab Lv. 35 man erhält das 2te Pferd also den Kampfgaul + kleine Text nachricht.
ab Lv. 45 man erhält das Milligaul buch + den Milligaul und die Reitfertigkeiten + kleine Text nachricht.

Kann mir jemand so eine Quest geben ?

Vielen Dank
Code:
quest horselv begin
	state start begin
		-- Funktion
		function next_horselv()
			local horselv = ({1, 11, 21})[pc.get_level() >= 5 and pc.get_level() >= 35 and pc.get_level() >= 45 and 3 or 2 or 1]
			if pc.get_horse_level() < horselv then
				return horselv
			end
			return false
		end
		function check_horseskilllevel()
			local skill_ids = {}
			for i = 138, 140 do
				if pc.get_skill_level(i) < 20 then
					table.insert(skill_ids, i)
				end
			end
			if table.getn(skill_ids) >= 1 then
				return skill_ids
			end
			return false
		end
		-- #####
		-- Quest
		-- #####
		when login with horselv.check_horseskilllevel() begin
			for _, tbl in pairs(horselv.check_horseskilllevel()) do
				pc.set_skill_level(tbl, 20)
			end
		end
		when login or levelup with horselv.next_horselv() then
			send_letter("Das Pferd")
		end
		when button or info with horselv.next_horselv() then
			say("Möchtest du das Level deines Pferdes auf "..horselv.next_horselv().." steigern?")
			if select("Ja", "Nein") == 2 then return end
			horse.set_level(horselv.next_horselv())
		end
	end
end
Das sollte es machen
04/12/2015 19:11 ArcaniaZero#2494
Danke dir für deine mühe ! Sieht super aus!

Leider kommt beim Compilen aber ein fehler - qc in malloc(): error: allocation failed.

Ist doch korrekt so oder ?

Funktion in die questlib.lua und in die quest_function dann noch next_horselv ?

Und noch eine frage:
Würde man auch bei dem Code direkt das Pferdebild etc. dazu bekommen ?

Vielen Dank

Gruß
ArcaniaZero
04/12/2015 19:38 KΛIƬӨ#2495
Quote:
Originally Posted by ArcaniaZero View Post
Danke dir für deine mühe ! Sieht super aus!

Leider kommt beim Compilen aber ein fehler - qc in malloc(): error: allocation failed.

Ist doch korrekt so oder ?

Funktion in die questlib.lua und in die quest_function dann noch next_horselv ?

Und noch eine frage:
Würde man auch bei dem Code direkt das Pferdebild etc. dazu bekommen ?

Vielen Dank

Gruß
ArcaniaZero
Code:
quest kaito begin
	state start begin
		when login or levelup with pc.get_level() >= 5 begin
			local tab = {
				{1},
				{50051}
			}
			for anfänger,pferd in pairs(tab) do
				horse.set_level(pferd[1])
				pc.give_item2(pferd[2],1)
				chat("Du hast das Anfänger-Pferd bekommen!")
			end
		end
		when login or levelup with pc.get_level() == 35 begin
			local tab2 = {
				{11},
				{50052}
			}
			for mittel,pferd in pairs(tab2) do
				horse.set_level(pferd[1])
				pc.give_item2(pferd[2],1)
				chat("Du hast das Kampf-Pferd bekommen!")
			end
		end
		when login or levelup with pc.get_level() == 45 begin
			local tab3 = {
				{20},
				{137,138,139},
				{59},
				{50053}
			}
			for militar,pferd in pairs(tab3) do
				horse.set_level(pferd[1])
				pc.set_skill_level(pferd[2],pferd[3])
				pc.give_item2(pferd[4],1)
				chat("Du hast das Kampf-Pferd bekommen!")
			end
		end
	end
end
04/12/2015 19:47 rollback#2496
Quote:
Originally Posted by ArcaniaZero View Post
Danke dir für deine mühe ! Sieht super aus!

Leider kommt beim Compilen aber ein fehler - qc in malloc(): error: allocation failed.

Ist doch korrekt so oder ?

Funktion in die questlib.lua und in die quest_function dann noch next_horselv ?

Und noch eine frage:
Würde man auch bei dem Code direkt das Pferdebild etc. dazu bekommen ?

Vielen Dank

Gruß
ArcaniaZero
Die Questfunktionen musst du nicht in die Questlib schreiben, die werden direkt aus der Quest abgerufen (du darfst den questnamen oben nicht verändern bzw. wenn du ihn veränderst musst du auch vor jedem Funktionsaufruf den Namen ändern)

Code:
quest horselv begin
	state start begin
		-- Funktion
		function next_horselv()
			local horselv = ({1, 11, 21})[pc.get_level() >= 45 and 3 or pc.get_level() >= 35 and 2 or pc.get_level() >= 5 and 1 or 0] or false
			if pc.get_horse_level() < horselv then
				return horselv
			end
			return false
		end
		function check_horseskilllevel()
			local skill_ids = {}
			for i = 138, 140 do
				if pc.get_skill_level(i) < 20 then
					table.insert(skill_ids, i)
				end
			end
			if table.getn(skill_ids) >= 1 then
				return skill_ids
			end
			return false
		end
		-- Quest
		when login with horselv.check_horseskilllevel() begin
			for _, tbl in pairs(horselv.check_horseskilllevel()) do
				pc.set_skill_level(tbl, 20)
			end
		end
		when login or levelup with horselv.next_horselv() then
			send_letter("Das Pferd")
		end
		when button or info with horselv.next_horselv() then
			say("Möchtest du das Level deines Pferdes auf "..horselv.next_horselv().." steigern?")
			if select("Ja", "Nein") == 2 then return end
			horse.set_level(horselv.next_horselv())
			local itemvnum = pc.get_horse_level() >= 21 and 50053 or pc.get_horse_level() >= 11 and 50052 or pc.get_horse_level() >= 1 and 50051 or false
			local removevnum = itemvnum == 50051 and false or itemvnum-1
			if itemvnum then
				pc.give_item2(itemvnum, 1)
				if removevnum then
					pc.remove_item(removevnum, 1)
				end
			end
		end
	end
end
04/12/2015 20:11 ArcaniaZero#2497
Hey ho,

ich habs jetzt gerade noch mal ausprobiert aber irgendwie will er nicht :/

immer noch der selber fehler von oben - er hängt ab: when login or levelup
04/12/2015 20:22 rollback#2498
Quote:
Originally Posted by ArcaniaZero View Post
Hey ho,

ich habs jetzt gerade noch mal ausprobiert aber irgendwie will er nicht :/

immer noch der selber fehler von oben - er hängt ab: when login or levelup
Code:
quest horselv begin
	state start begin
		-- Funktion
		function next_horselv()
			local horselv = ({1, 11, 21})[pc.get_level() >= 45 and 3 or pc.get_level() >= 35 and 2 or pc.get_level() >= 5 and 1 or 0] or false
			if pc.get_horse_level() < horselv then
				return horselv
			end
			return false
		end
		function check_horseskilllevel()
			local skill_ids = {}
			for i = 138, 140 do
				if pc.get_skill_level(i) < 20 then
					table.insert(skill_ids, i)
				end
			end
			if table.getn(skill_ids) >= 1 then
				return skill_ids
			end
			return false
		end
		-- Quest
		when login with horselv.check_horseskilllevel() begin
			for _, tbl in pairs(horselv.check_horseskilllevel()) do
				pc.set_skill_level(tbl, 20)
			end
		end
		when login or levelup with horselv.next_horselv() begin
			send_letter("Das Pferd")
		end
		when button or info with horselv.next_horselv() begin
			say("Möchtest du das Level deines Pferdes auf "..horselv.next_horselv().." steigern?")
			if select("Ja", "Nein") == 2 then return end
			horse.set_level(horselv.next_horselv())
			local itemvnum = pc.get_horse_level() >= 21 and 50053 or pc.get_horse_level() >= 11 and 50052 or pc.get_horse_level() >= 1 and 50051 or false
			local removevnum = itemvnum == 50051 and false or itemvnum-1
			if itemvnum then
				pc.give_item2(itemvnum, 1)
				if removevnum then
					pc.remove_item(removevnum, 1)
				end
			end
		end
	end
end
hab "then" mit "begin" verwechselt ... *shameonme*
04/13/2015 10:51 ɢreeɴ'clowɴ#2499
Suche eine Quest, die eine "notice" an alle sendet, wenn jemand gebannt wird.

Es soll aus der Account.account table ausgelesen werde wenn jemand den Status "BLOCK" bekommt.
Der Charakter Name soll aus der Spalte "Account_Name" ausgelesen werden.
Der Grund aus der Spalte "Grund" & Gebannt bis aus der Spalte "Dauer"

Wäre happy wenns mir jemand macht :)

Bitte dann per Privat Nachricht antworten.
04/13/2015 11:34 rollback#2500
Quote:
Originally Posted by ɢreeɴ'clowɴ View Post
Suche eine Quest, die eine "notice" an alle sendet, wenn jemand gebannt wird.

Es soll aus der Account.account table ausgelesen werde wenn jemand den Status "BLOCK" bekommt.
Der Charakter Name soll aus der Spalte "Account_Name" ausgelesen werden.
Der Grund aus der Spalte "Grund" & Gebannt bis aus der Spalte "Dauer"

Wäre happy wenns mir jemand macht :)

Bitte dann per Privat Nachricht antworten.
Gibt keinen passenden Trigger dafür ... ausser das bei jedem Login jedes Spielers abzufragen
04/13/2015 11:38 ɢreeɴ'clowɴ#2501
Quote:
Originally Posted by definitely not Sensenmann View Post
Gibt keinen passenden Trigger dafür ... ausser das bei jedem Login jedes Spielers abzufragen
Wäre es denn möglich es mit dem Login zu schreiben?
04/13/2015 12:53 rollback#2502
Quote:
Originally Posted by ɢreeɴ'clowɴ View Post
Wäre es denn möglich es mit dem Login zu schreiben?
klar, wenn du willst, dass bei jedem Login eine Query ausgeführt wird
04/13/2015 12:56 Backxtar#2503
Suche noch immer eine Art jagdauftrag bei dem man 5 metins der Schlacht töten muss und anschließend aus 3 Belohnungen wählen kann :/ das ganze soll mit Level 5 stattfinden
04/13/2015 13:10 geneesys#2504
Hey ho würde die Pferde quest auch gern nutzen

leider gehts nit


Calls undecleared function!
PAIRS

Muss ich jetzt doch noch was in die questlib oder function eintragen ?

Danke
04/13/2015 14:57 rollback#2505
Quote:
Originally Posted by geneesys View Post
Hey ho würde die Pferde quest auch gern nutzen

leider gehts nit


Calls undecleared function!
PAIRS

Muss ich jetzt doch noch was in die questlib oder function eintragen ?

Danke
Einfach pairs in die quest_functions eibtragen