|
You last visited: Today at 16:36
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
09/01/2015, 21:37
|
#11881
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
bei deiner waren nur die ends nicht ganz richtig
PHP Code:
quest Ruestungshaendler begin
state start begin
when 9002.click begin
say_title("Hallo ".. pc.get_name() ..",")
say("Ich bin der Rüstungshändler.")
say("Bei mir kannst du dich mit")
say("Rüstungen und Schmuck einkleiden.")
say("")
local s = select("Equipment für die Rassen", "Schmuck", "Schuhe", "Abbrechen")
if s == 1 then
say_title("Der Rüstungshändler")
say("Equipment für die Rassen:")
local s3 = select("Equipment für den Krieger", "Equipment für den Ninja", "Equipment für den Sura", "Equipment für den Schamanen", "Abbrechen")
if s3 == 1 then
setskin(NOWINDOW)
npc.open_shop(10)
elseif s3 == 2 then
setskin(NOWINDOW)
npc.open_shop(11)
elseif s3 == 3 then
setskin(NOWINDOW)
npc.open_shop(12)
elseif s3 == 4 then
setskin(NOWINDOW)
npc.open_shop(13)
end
elseif s == 2 then
setskin(NOWINDOW)
npc.open_shop(14)
elseif s == 3 then
setskin(NOWINDOW)
npc.open_shop(15)
end
end
end
end
|
|
|
09/04/2015, 15:04
|
#11882
|
elite*gold: 0
Join Date: Mar 2010
Posts: 56
Received Thanks: 1
|
quest vip_by_kilroy begin
state start begin
when 20011.take with item.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
say("Sehr Gut, du konntest dich mit deinem")
say("VIP-Ticket ausweisen, ich gewähre")
say("dir somit Einblick in den VIP-Shop")
wait()
setskin(NOWINDOW)
npc.open_shop(9003) -- natürlich Anpassen.
syschat("VIP-Shop wurde geöffnet.")
end
when 20009.take with item.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
say("Sehr Gut, du konntest dich mit deinem")
say("VIP-Ticket ausweisen.")
say("")
say("Soll ich dich also zur VIP-Map bringen?")
if select("Ja", "Nein")==2 then return end
pc.warp( 402100, 673900) -- natürlich Anpassen.
end
when login with not npc.is_pc() and pc.getqf("first_vip")==0 begin
if string.find(pc.get_name(), "VIP]") != nil then
timer("login_vip", 2)
end
end
when login_vip.timer begin
say_title("VIP-Status")
say("")
say("Da diese Meldung erschienen ist, wurde der")
say("VIP-Vorgang erfolgreich abgeschlossen.")
say("")
say("Dir stehen nun einige Features zu, die andere")
say("Spieler nicht haben.")
wait()
say_title("VIP-Status")
say("")
say("Nun erhälst du erstmal dein VIP-Kit")
say("und weitere Informationen.")
say("")
say("Wie du bestimmt bemerkt hast, schwebt")
say("über dir ein VIP-Symbol, dieses kannst du")
say("durch die Chateingabe von (vip) rufen.")
say("")
say("Du erhälst jetzt ein VIP-Ticket mit dem du")
say_reward("- die VIP-Map betreten kannst.")
say_reward("- den VIP-Shop einsehen kannst.")
say("")
say("Ziehe dafür das VIP-Ticket auf den jeweiligen")
say("NPC. Das war erstmal, Viel Spaß noch!")
pc.give_item2(35004, 1)
pc.setqf("first_vip",1)
end
when 35002.use begin
if string.find(pc.get_name(), "VIP]") == nil then
say_title("Hallo "..pc.get_name().."!")
say("Mit diesem Item kannst du den VIP Status aktivieren.")
say("")
say_title("Infos:")
say("Nach erfolgreicher Nutzung wirst du gekickt!")
say("Du hast dann einen 20 Minuten Bann, nach der ")
say("den 20 Minuten ist der Vorgang abgeschlossen ")
say("und dein Account ist wieder frei!")
say("")
say("")
say("Möchtest du?")
say(pc.get_name().." --------> (VIP)"..pc.get_name())
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35002)
if string.len(pc.get_name())<= 7 and not vip_by_kilroy.player_exists("[VIP]"..pc.get_name()) then
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
notice_all(pc.get_name().." ist nun ein VIP-Mitglied auf ....")
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..pc.get_name().."');")
pc.remove_item(35002, 1)
cmdchat("exit")
else
say_title(pc.get_name().."!")
say("")
say("Die Vorraussetzungen zwingen dich einen")
say("neuen Namen zuwählen. Mögliche Gründe")
say("sind ein zu langer Name oder dein")
say("Name existiert mit VIP bereits.")
say("")
say_reward("Möchtest du ihn ändern um VIP zuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vip_by_kilroy.vip_premise(inp, 7, 2, 1) then
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif vip_by_kilroy.player_exists("[VIP]"..inp) then
say_title("Name wechseln")
say("")
say("Dieser Name existiert bereits,")
say("versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say("(VIP)"..inp.." dein Vip-Status aktivieren?")
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35002)
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
notice_all(pc.get_name(), " heißt jetzt "..inp.." und ist nun ein VIP-Mitglied auf ....")
mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..inp.."');")
pc.remove_item(35002, 1)
cmdchat("exit")
end
else
say_title("Hallo "..pc.get_name().."!")
say("")
say("Du hast dein VIP-Status schon aktiviert,")
say("sollte dies nicht der Fall sein, kontaktiere")
say("bitte einen Teamler.")
say("")
say("Viel Spaß weiterhin!")
end
end
when 35003.use begin
if string.find(pc.get_name(), "VIP]") != nil then
say_title("Hallo "..pc.get_name().."!")
say("Mit diesem Item kannst du den VIP Status")
say("zurücksetzen..")
say("")
say_title("Infos:")
say("Nach erfolgreicher Nutzung wirst du gekickt!")
say("Du hast dann einen 20 Minuten Bann, nach der ")
say("den 20 Minuten ist der Vorgang abgeschlossen ")
say("und dein Account ist wieder frei!")
say("")
say("")
say("VIP Status zurücksetzen?")
say("(VIP)"..pc.get_name().."---->"..pc.get_name())
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35003)
spl = split(pc.get_name(), "VIP]") -- Split Name bei VIP]
if not vip_by_kilroy.player_exists(spl[2]) then
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..spl[2].."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..spl[2].."');")
item.remove()
cmdchat("exit")
else
say_title("Dein Name!")
say("Es scheint so als würde dein Name.")
say("ohne das (VIP) bereits existieren,")
say("das ist aber nicht schlimm, denn du kannst")
say("ihn hier und jetzt ändern.")
say("")
say_reward("Möchtest du ihn ändern um VIP loszuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vip_by_kilroy.vip_premise(inp, 7, 2, 1) then
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif not vip_by_kilroy.player_exists(inp) then
say_title("Name wechseln")
say("")
say("Ich habe festgestellt das dein neuer Name bereits")
say("existiert, versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say(inp.." dein Vip-Status zurücksetzen?")
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35003)
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
spl = split(pc.get_name(), "VIP]")
mysql_query("UPDATE player.player SET name='"..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..inp.."');")
item.remove()
cmdchat("exit")
end
else
say_title("Hallo "..pc.get_name().."!")
say("Du hast deinen VIP-Status")
say("noch garnicht aktiviert.")
end
end
function player_exists(name)
if tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1 then
return true
end
end
function vip_premise(name, maxi, mini, sonder)
if sonder != 0 then
if string.len(name) > maxi or name == "" or string.len(name) < mini then
return true
end
else
if string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") ~= nil then
return true
end
end
end
function check_premise(item)
if pc.is_married() then
say("Während du verheiratet bist kannst du")
say("kein VIP werden.")
return
elseif pc.is_polymorphed() then
say("Während du verwandelt bist kannst du")
say("kein VIP werden.")
return
elseif not pc.can_warp() then
say("Du hast vorkurzem gehandelt, so kannst du")
say("kein VIP werden.")
return
elseif pc.has_guild() then
say("Während du in einer Gilde bist kannst du")
say("kein VIP werden.")
return
elseif party.is_party() then
say("Während du in einer Gruppe bist kannst du")
say("kein VIP werden.")
return
elseif pc.count_item(item) < 1 then
say("Bugusern wird kein VIP entzogen!")
return
end
end
end
end
|
|
|
09/04/2015, 19:49
|
#11883
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by MaxChri
Ich wollte ne kleine Q machen, die einen Spieler warpen soll.
PHP Code:
function player_warp(name) test = pc.select(find_pc_by_name(name)) pc.select(test) pc.warp(5000,5000) end
Wenn ich jetzt in einer Quest den Befehl:
PHP Code:
player_warp("Spielername")
eingebe, um einen Spieler zu 5000, 5000 zu warpen, werde immer ich selbst gewarpt.
Weiß einer vielleicht wieso? Eigentlich ist doch alles richtig. 
|
PC.warp über das PC.select
Also in die Mitte der 3 Zeilen
|
|
|
09/04/2015, 20:44
|
#11884
|
elite*gold: 0
Join Date: Aug 2014
Posts: 16
Received Thanks: 2
|
Kann mir jemand diese Quest übersichtlicher bzw. "besser" machen?
Code:
quest gmtool begin
state start begin
when 80000.use begin
if pc.is_gm() then
local haupt = select("Info Ansagen", "Charakter-Optionen", "Monster rufen", "GM-Shops für faule", "Unsichtbar AN/AUS", "Abbrechen")
if haupt == 1 then
say_title("Info Ansagen:")
local r = select("GM verfügbar" , "GM nicht verfügbar" , "Kommt noch!" , "ID und PW Sicherheit", "Selbst schreiben", "Abbrechen")
if r == 1 then
say("Hallo, "..pc.get_name() .." !")
say("")
say("Wenn du diese Aktion ausführst wird folgendes gesendet:")
say("")
say(""..pc.get_name() .." steht nun für Fragen und Probleme zur Verfügung!")
say("")
say("")
say("Möchtest du diesen Text an alle Spieler senden?")
local k = select("Ja", "Nein")
if k == 1 then
notice_all(""..pc.get_name() .." steht euch für Fragen und Probleme zur Verfügung!")
elseif k == 2 then
return
end
elseif r == 2 then
say("Hallo, "..pc.get_name() .." !")
say("")
say("Wenn du diese Aktion ausführst wird folgendes gesendet:")
say("")
say(""..pc.get_name() .." geht nun Offline und steht nicht mehr zu Verfügung.")
say(""..pc.get_name() .." : Ich wünsche euch weiterhin Viel Spaß!")
say("")
say("Möchtest du diesen Text an alle Spieler senden?")
local o = select("Ja", "Nein")
if o == 1 then
notice_all(""..pc.get_name() .." geht nun Offline und steht nicht mehr zu Verfügung.")
notice_all(""..pc.get_name() .." : Ich wünsche euch weiterhin Viel Spaß!")
elseif o == 2 then
return
end
elseif r == 3 then
notice_all("Hier wird noch etwas eingefügt.")
notice_all("")
elseif r == 4 then
say("Hallo, "..pc.get_name() .." ! ")
say("")
say("Wenn du diese Aktion ausführst wird folgendes gesendet:")
say("")
say("Achtung!")
say("Ein GameMaster fragt niemals nach euren Login-Daten!")
say("Du erkennst einen GM an den eckigen Klammern [ ] im Namen.")
say("Zudem empfehlen wir eure Daten nicht an Dritte weiterzugeben!")
say("")
say("Möchtest du diesen Text an alle Spieler senden?")
local w = select("Ja", "Nein")
if w == 1 then
notice_all("Achtung!")
notice_all("Ein GameMaster fragt niemals nach euren Login-Daten!")
notice_all("Du erkennst einen [GM] an den eckigen Klammern [ ]")
notice_all("Zudem wird empfohlen eure Daten nicht an Dritte weiterzugeben!")
elseif w == 2 then
return
end
elseif r == 5 then
say("Bitte gib den Text ein:")
local text1 = input()
say("weiter")
local text2 = input()
say("weiter")
local text3 = input()
say("")
say("Text wird ausgegeben.")
notice_all(" "..text1.." "..text2.." "..text3.." ")
elseif r == 6 then
return
end
elseif haupt == 2 then
say_title("Charakter-Optionen:")
say("")
say("Bitte wähle aus:")
say("")
local s = select("Rangpunkte", "Perfekte Fertigkeiten", "Yang holen", "Verwandeln", "Abbrechen")
if s == 1 then
say("")
say("Welche Rangpunkte möchtest du dir geben?")
say("")
say("")
local ra = select("positive Rangpunkte", "negative Rangpunkte", "Auf Neutral setzen", "Abbrechen")
if ra == 1 then
say("")
say("Wie viele Rangpunkte möchtest du dir geben?")
say("")
local t = select("Freundlich (1.000)", "Gut (4.000)", "Edel (8.000)", "Ritterlich (12.000)", "Voll (20.000)", "Abbrechen")
if t == 1 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf 1.000 gesetzt!")
say("")
say("Du bist jetzt Freundlich.")
command("set "..pc.get_name() .." align 10000")
elseif t == 2 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf 4.000 gesetzt!")
say("")
say("Du bist jetzt Gut")
command("set "..pc.get_name() .." align 40000")
elseif t == 3 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf 8.000 gesetzt!")
say("")
say("Du bist jetzt Edel")
command("set "..pc.get_name() .." align 80000")
elseif t == 4 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf 12.000 gesetzt!")
say("")
say("Du bist nun Ritterlich.")
command("set "..pc.get_name() .." align 120000")
elseif t == 5 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf 20.000 gesetzt!")
say("")
say("Du bist nun Ritterlich und besitzt alle möglichen Rangpunkte.")
command("set "..pc.get_name() .." align 200000")
elseif t == 6 then
return
end
elseif ra == 2 then
say("")
say("Wie viele Rangpunkte möchtest du dir abziehen?")
say("")
local ag = select("Aggressiv (-2.000)", "Arglistig (-6.000)", "Bösartig (-10.000)", "Grausam (-14.000)", "Wenigste (-20.000)", "Abbrechen")
if ag == 1 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf -2.000 gesetzt!")
say("")
say("Du bist jetzt Aggressiv.")
command("set "..pc.get_name() .." align -20000")
elseif ag == 2 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf -6.000 gesetzt!")
say("")
say("Du bist nun Arglistig")
command("set "..pc.get_name() .." align -60000")
elseif ag == 3 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf -10.000 gesetzt!")
say("")
say("Du bist jetzt Bösartig")
command("set "..pc.get_name() .." align -100000")
elseif ag == 4 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf -14.000 gesetzt!")
say("")
say("Du bist nun Grausam.")
command("set "..pc.get_name() .." align -140000")
elseif ag == 5 then
say("")
say_reward("Deine Rangpunkte wurden erfolgreich auf -20.000 gesetzt!")
say("")
say("Du bist nun Grausam und besitzt die niedrigste Rangpunktzahl.")
command("set "..pc.get_name() .." align -200000")
elseif ag == 6 then
return
end
elseif ra == 3 then
say_title("Auf Neutral setzen:")
say("")
say("Möchtest du deine Rangpunkte auf Neutral und")
say("somit auf 0 setzen?")
local op = select("Ja", "Nein")
if op == 1 then
say_reward("")
say_reward("Deine Rangpunkte wurden erfolreich auf 0 gesetzt.")
command("set "..pc.get_name() .." align 0")
elseif op == 2 then
return
end
elseif ra == 4 then
return
end
elseif s == 2 then
say_title("Wähle deine Charakterklasse:")
local b = select("Krieger", "Sura", "Ninja", "Schamane", "Abbrechen")
elseif b == 1 then
pc.set_skill_level(1, 59)
pc.set_skill_level(2, 59)
pc.set_skill_level(3, 59)
pc.set_skill_level(4, 59)
pc.set_skill_level(5, 59)
pc.set_skill_level(16, 59)
pc.set_skill_level(17, 59)
pc.set_skill_level(18, 59)
pc.set_skill_level(19, 59)
pc.set_skill_level(20, 59)
pc.set_skill_level(121, 40)
pc.set_skill_level(124, 40)
pc.set_skill_level(129, 40)
pc.set_skill_level(131, 10)
pc.set_skill_level(130, 30)
pc.set_skill_level(128, 20)
pc.set_skill_level(127, 20)
pc.set_skill_level(126, 20)
pc.set_skill_level(137, 20)
pc.set_skill_level(138, 20)
pc.set_skill_level(139, 20)
pc.set_skill_level(140, 20)
elseif b == 2 then
pc.set_skill_level(61, 59)
pc.set_skill_level(62, 59)
pc.set_skill_level(63, 59)
pc.set_skill_level(64, 59)
pc.set_skill_level(65, 59)
pc.set_skill_level(66, 59)
pc.set_skill_level(76, 59)
pc.set_skill_level(77, 59)
pc.set_skill_level(78, 59)
pc.set_skill_level(79, 59)
pc.set_skill_level(80, 59)
pc.set_skill_level(81, 59)
pc.set_skill_level(121, 40)
pc.set_skill_level(124, 40)
pc.set_skill_level(129, 40)
pc.set_skill_level(131, 10)
pc.set_skill_level(130, 30)
pc.set_skill_level(128, 20)
pc.set_skill_level(127, 20)
pc.set_skill_level(126, 20)
pc.set_skill_level(137, 20)
pc.set_skill_level(138, 20)
pc.set_skill_level(139, 20)
pc.set_skill_level(140, 20)
elseif b == 3 then
pc.set_skill_level(31, 59)
pc.set_skill_level(32, 59)
pc.set_skill_level(33, 59)
pc.set_skill_level(34, 59)
pc.set_skill_level(35, 59)
pc.set_skill_level(46, 59)
pc.set_skill_level(47, 59)
pc.set_skill_level(48, 59)
pc.set_skill_level(49, 59)
pc.set_skill_level(50, 59)
pc.set_skill_level(121, 40)
pc.set_skill_level(124, 40)
pc.set_skill_level(129, 40)
pc.set_skill_level(131, 10)
pc.set_skill_level(130, 30)
pc.set_skill_level(128, 20)
pc.set_skill_level(127, 20)
pc.set_skill_level(126, 20)
pc.set_skill_level(137, 20)
pc.set_skill_level(138, 20)
pc.set_skill_level(139, 20)
pc.set_skill_level(140, 20)
elseif b == 4 then
pc.set_skill_level(91, 59)
pc.set_skill_level(92, 59)
pc.set_skill_level(93, 59)
pc.set_skill_level(94, 59)
pc.set_skill_level(95, 59)
pc.set_skill_level(105, 59)
pc.set_skill_level(106, 59)
pc.set_skill_level(107, 59)
pc.set_skill_level(108, 59)
pc.set_skill_level(109, 59)
pc.set_skill_level(110, 59)
pc.set_skill_level(111, 59)
pc.set_skill_level(121, 40)
pc.set_skill_level(124, 40)
pc.set_skill_level(129, 40)
pc.set_skill_level(131, 10)
pc.set_skill_level(130, 30)
pc.set_skill_level(128, 20)
pc.set_skill_level(127, 20)
pc.set_skill_level(126, 20)
pc.set_skill_level(137, 20)
pc.set_skill_level(138, 20)
pc.set_skill_level(139, 20)
pc.set_skill_level(140, 20)
elseif b == 5 then
return
end
elseif s == 3 then
say("Wie viel Yang möchtest du dir geben?")
say("Nichts eingeben zum Abbrechen.")
say("")
say("Gebe eine Zahl von 1 - 900 Milliarden ein.")
say("")
local zu = input()
if zu == "" then
say_reward("Du hast keine Zahl eingegeben. Abbruch.")
return
else
pc.changegold(zu)
say_reward("Deine Yang wurden erfolgreich gutgeschrieben.")
end
elseif s == 4 then
say_title("Verwandeln:")
local vw = select("In mein Charakter (Zurück)", "Monster", "Abbrechen")
if vw == 1 then
pc.polymorph(1)
elseif vw == 2 then
say_title("Monster Verwandlung:")
say("Zum Abbrechen auf OK ohne Eingabe drücken.")
say("")
say("Bitte gib die Monster-ID ein:")
local p = input()
if p == "" then
say_reward("")
say_reward("Du hast keine Monster-ID eingegeben. Abbruch.")
return
else
say_reward("")
say_reward("Du hast dich erfolgreich verwandelt.")
say_reward("Die Abklingzeit der Verwandlung beträgt 1 Stunde.")
say("")
say("Hinweis: Du kannst dich auch früher zurück verwandeln.")
pc.polymorph(p, 3600)
end
elseif s == 5 then
return
end
elseif haupt == 3 then
say("Zum Abbrechen einfach nichts eingeben und OK drücken.")
say("Bitte Gib die Monster-ID ein:")
local kl = input()
if kl == "" then
say_reward("Du hast keine ID eingegeben. Abbruch.")
return
else
say_reward(""..mob_name(kl).." wurde gerufen.")
mob.spawn(kl, 1)
end
elseif haupt == 4 then
local m = select("GM Waffen & Rüstungen", "Uppitems", "Gemischtwaren", "Normale EQ-Items", "Push-Tränke", "Pet-Shop", "Steine und Erze", "Reittiere", "Frisuren", "Abbrechen")
if m == 1 then
npc.open_shop(9010)
elseif m == 2 then
say("Wähle eines der beiden Shops aus:")
say("")
say("Hinweis:")
say("In Uppitems 2 befindet sich nur Fingerknochen,")
say("Quarzsand, Traktat, Drachenschuppe und Drachenkralle.")
say("In Uppitems 1 alles andere!")
local up = select("Uppitems 1", "Uppitems 2", "Abbrechen")
if up == 1 then
npc.open_shop(1)
elseif up == 2 then
npc.open_shop(77)
elseif up == 3 then
return
end
elseif m == 3 then
say("Möchtest du den Gemischtwaren-Shop öffnen?")
say("")
say("Hinweis:")
say("Hier befinden sich Potts, Bonis und mehr.")
say("")
local f = select("Ja", "Nein")
if f == 1 then
npc.open_shop(3)
elseif f == 2 then
return
end
elseif m == 4 then
say_title("Wähl aus digga")
local no = select("Waffen", "Rüstungen & Schilde", "Sonstiges EQ", "Abbrechen")
if no == 1 then
npc.open_shop(5)
elseif no == 2 then
npc.open_shop(6)
elseif no == 3 then
npc.open_shop(4)
elseif no == 4 then
return
end
elseif m == 5 then
say_title("Hallo, "..pc.get_name() .." ! ")
say("")
say("Möchtest du den Push-Tränke-Shop öffnen?")
say("")
say("")
local g = select("Ja", "Nein")
if g == 1 then
npc.open_shop(44)
elseif g == 2 then
return
end
elseif m == 6 then
say("")
say("")
say("Möchtest du den Pet-Shop öffnen?")
say("")
local x = select("Ja", "Nein")
if x == 1 then
npc.open_shop(100)
elseif x == 2 then
return
end
elseif m == 7 then
say("")
say("")
say("Möchtest du den Shop mit Steinen und Erzen öffnen?")
say("")
local l = select("Ja", "Nein")
if l == 1 then
npc.open_shop(8)
elseif l == 2 then
return
end
elseif m == 8 then
say("")
say("Wähle ein Shop aus:")
local c = select("Reittier-Siegel 1", "Reittier-Siegel 2", "Abbrechen")
if c == 1 then
npc.open_shop(20002)
elseif c == 2 then
npc.open_shop(20003)
elseif c == 3 then
return
end
elseif m == 9 then
say_title("Frisuren:")
say("")
say("Welchen Frisuren-Shop möchtest du öffnen?")
say("")
local h = select("Oldschool Frisuren", "Frisuren von 2010/2011", "Neue Frisuren", "Abbrechen")
if h == 1 then
say_title("Oldschool Frisuren:")
local v = select("Krieger", "Ninja", "Sura", "Schamane", "Abbrechen")
if v == 1 then
npc.open_shop(33)
elseif v == 2 then
npc.open_shop(34)
elseif v == 3 then
npc.open_shop(35)
elseif v == 4 then
npc.open_shop(36)
elseif v == 5 then
return
end
elseif h == 2 then
say_title("Frisuren 2010/2011:")
local q = select("Krieger", "Ninja", "Sura", "Schamane", "Abbrechen")
if q == 1 then
npc.open_shop(37)
elseif q == 2 then
npc.open_shop(38)
elseif q == 3 then
npc.open_shop(39)
elseif q == 4 then
npc.open_shop(40)
elseif q == 5 then
return
end
elseif h == 3 then
say_title("Neue Frisuren:")
say("")
say("Wähle:")
say("")
local e = select("Neue Frisuren 1", "Neue Frisuren 2", "Abbrechen")
if e == 1 then
npc.open_shop(41)
elseif e == 2 then
npc.open_shop(42)
elseif e == 3 then
return
end
elseif h == 4 then
return
end
elseif m == 10 then
return
end
elseif haupt == 5 then
command("in")
return
end
elseif haupt == 6 then
return
end
end
end
end
Edit: Zu viele local select's oder woran liegt es, dass manchmal ein paar Funktionen in der/n Liste/n nicht funktionieren?
und suche nach zwei Funktionen: 1. Eine mit der man sich zu einem Spieler teleportieren kann und Spieler zu sich teleportieren kann (mit Namenseingabe) als normaler Spieler (keine GM-Rechte benötigt). Und 2. : Eine Zurück-Funktion die in local select's eingebaut werden kann (die Funktion soll den Spieler zum vorherigen Menü zurückleiten ohne das Fenster zu schließen)
|
|
|
09/04/2015, 23:37
|
#11885
|
elite*gold: 0
Join Date: Jun 2015
Posts: 68
Received Thanks: 14
|
Guten Abend, ich habe mir mal das Banpanel von Mijago eingebaut,
wenn ich jetzt jedoch InGame auf "Bannen" klicke bekomme ich eine leere Seite.
In Putty wird das angezeigt:
Warning: Using a password on the command line interface can be insecure.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=SELECT * FROM player.player WHERE name LIKE "%1%" AND name NOT like "%[%"' at line 1
Ich hatte schon eine bestehende Quest wo ich den Action-Questteil,
aus Mijagos Quest eingefügt habe.
Das ist der Teil:
PHP Code:
say("Was möchtest du tun?")
local s = select('Bannen','Entbannen',"Nichts") if s == 3 then return elseif s == 2 then local ban,bantxt,bantxt2 = "OK","entbannen","entbannt" elseif s == 1 then local ban,bantxt,bantxt2 = "BLOCK","bannen","gebannt" --[[say(col.blue('Spieler '..bantxt));]] say('[ENTER]Gib den Spielernamen ein.[ENTER](ein Teil reicht auch)') local inp = input(); inp = mysql_escape(inp) if inp == "" or inp == pc.get_name() then say('Ungültige Eingabe.[ENTER]Abbruch!') return end local q = mysql_query('SELECT * FROM player.player WHERE name LIKE \\"%'..inp..'%\\" AND name NOT like \\"%[%\\"') if q == "ERROR" then say('Fehler beim Lesen der Daten oder es existiert niemand mit diesem Namen.') return end say('Wähle den User, der '..bantxt2..' werden soll:') local wahl = q.name; table.insert(wahl,"-Abbruch-") table.insert(wahl,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite. local auswahl = select2(wahl) if wahl[auswahl] == "-Abbruch-" then return end say('Den Spieler \\"'..q.name[auswahl]..'\\" wirklich '..bantxt..'?') if select("Ja","Nein") == 2 then return end mysql_query('UPDATE account.account SET status = \\"'..ban..'\\" WHERE id = '..q.account_id[auswahl]..' LIMIT 1') say('Der Spieler wurde gebannt.') end
|
|
|
09/05/2015, 08:41
|
#11886
|
elite*gold: 0
Join Date: Sep 2015
Posts: 3
Received Thanks: 0
|
Ich wollte gerade das VIP System einfügen von kilroy. allerdings, zeigt mir Putty einen kleinen Fehler an, wenn ich die Quest reloade.
Habe dann die Funktionen in die quest_function eingetragen, wieder reloadet, gerebootet, geht aber trotzdem nicht? Weiß einer warum?!
Hier die Quest:
PHP Code:
quest vip_by_kilroy begin
state start begin
when 20011.take with item.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
say("Sehr Gut, du konntest dich mit deinem")
say("VIP-Ticket ausweisen, ich gewähre")
say("dir somit Einblick in den VIP-Shop")
wait()
setskin(NOWINDOW)
npc.open_shop(9003) -- natürlich Anpassen.
syschat("VIP-Shop wurde geöffnet.")
end
when 20009.take with item.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
say("Sehr Gut, du konntest dich mit deinem")
say("VIP-Ticket ausweisen.")
say("")
say("Soll ich dich also zur VIP-Map bringen?")
if select("Ja", "Nein")==2 then return end
pc.warp( 402100, 673900) -- natürlich Anpassen.
end
when login with not npc.is_pc() and pc.getqf("first_vip")==0 begin
if string.find(pc.get_name(), "VIP]") != nil then
timer("login_vip", 2)
end
end
when login_vip.timer begin
say_title("VIP-Status")
say("")
say("Da diese Meldung erschienen ist, wurde der")
say("VIP-Vorgang erfolgreich abgeschlossen.")
say("")
say("Dir stehen nun einige Features zu, die andere")
say("Spieler nicht haben.")
wait()
say_title("VIP-Status")
say("")
say("Nun erhälst du erstmal dein VIP-Kit")
say("und weitere Informationen.")
say("")
say("Wie du bestimmt bemerkt hast, schwebt")
say("über dir ein VIP-Symbol, dieses kannst du")
say("durch die Chateingabe von (vip) rufen.")
say("")
say("Du erhälst jetzt ein VIP-Ticket mit dem du")
say_reward("- die VIP-Map betreten kannst.")
say_reward("- den VIP-Shop einsehen kannst.")
say("")
say("Ziehe dafür das VIP-Ticket auf den jeweiligen")
say("NPC. Das war erstmal, Viel Spaß noch!")
pc.give_item2(35004, 1)
pc.setqf("first_vip",1)
end
when 35002.use begin
if string.find(pc.get_name(), "VIP]") == nil then
say_title("Hallo "..pc.get_name().."!")
say("Mit diesem Item kannst du den VIP Status aktivieren.")
say("")
say_title("Infos:")
say("Nach erfolgreicher Nutzung wirst du gekickt!")
say("Du hast dann einen 20 Minuten Bann, nach der ")
say("den 20 Minuten ist der Vorgang abgeschlossen ")
say("und dein Account ist wieder frei!")
say("")
say("")
say("Möchtest du?")
say(pc.get_name().." --------> (VIP)"..pc.get_name())
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35002)
if string.len(pc.get_name())<= 7 and not vip_by_kilroy.player_exists("[VIP]"..pc.get_name()) then
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
notice_all(pc.get_name().." ist nun ein VIP-Mitglied auf ....")
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..pc.get_name().."');")
pc.remove_item(35002, 1)
cmdchat("exit")
else
say_title(pc.get_name().."!")
say("")
say("Die Vorraussetzungen zwingen dich einen")
say("neuen Namen zuwählen. Mögliche Gründe")
say("sind ein zu langer Name oder dein")
say("Name existiert mit VIP bereits.")
say("")
say_reward("Möchtest du ihn ändern um VIP zuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vip_by_kilroy.vip_premise(inp, 7, 2, 1) then
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif vip_by_kilroy.player_exists("[VIP]"..inp) then
say_title("Name wechseln")
say("")
say("Dieser Name existiert bereits,")
say("versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say("(VIP)"..inp.." dein Vip-Status aktivieren?")
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35002)
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
notice_all(pc.get_name(), " heißt jetzt "..inp.." und ist nun ein VIP-Mitglied auf ....")
mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..inp.."');")
pc.remove_item(35002, 1)
cmdchat("exit")
end
else
say_title("Hallo "..pc.get_name().."!")
say("")
say("Du hast dein VIP-Status schon aktiviert,")
say("sollte dies nicht der Fall sein, kontaktiere")
say("bitte einen Teamler.")
say("")
say("Viel Spaß weiterhin!")
end
end
when 35003.use begin
if string.find(pc.get_name(), "VIP]") != nil then
say_title("Hallo "..pc.get_name().."!")
say("Mit diesem Item kannst du den VIP Status")
say("zurücksetzen..")
say("")
say_title("Infos:")
say("Nach erfolgreicher Nutzung wirst du gekickt!")
say("Du hast dann einen 20 Minuten Bann, nach der ")
say("den 20 Minuten ist der Vorgang abgeschlossen ")
say("und dein Account ist wieder frei!")
say("")
say("")
say("VIP Status zurücksetzen?")
say("(VIP)"..pc.get_name().."---->"..pc.get_name())
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35003)
spl = split(pc.get_name(), "VIP]") -- Split Name bei VIP]
if not vip_by_kilroy.player_exists(spl[2]) then
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..spl[2].."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..spl[2].."');")
item.remove()
cmdchat("exit")
else
say_title("Dein Name!")
say("Es scheint so als würde dein Name.")
say("ohne das (VIP) bereits existieren,")
say("das ist aber nicht schlimm, denn du kannst")
say("ihn hier und jetzt ändern.")
say("")
say_reward("Möchtest du ihn ändern um VIP loszuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vip_by_kilroy.vip_premise(inp, 7, 2, 1) then
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif not vip_by_kilroy.player_exists(inp) then
say_title("Name wechseln")
say("")
say("Ich habe festgestellt das dein neuer Name bereits")
say("existiert, versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say(inp.." dein Vip-Status zurücksetzen?")
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35003)
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
spl = split(pc.get_name(), "VIP]")
mysql_query("UPDATE player.player SET name='"..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..inp.."');")
item.remove()
cmdchat("exit")
end
else
say_title("Hallo "..pc.get_name().."!")
say("Du hast deinen VIP-Status")
say("noch garnicht aktiviert.")
end
end
function player_exists(name)
if tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1 then
return true
end
end
function vip_premise(name, maxi, mini, sonder)
if sonder != 0 then
if string.len(name) > maxi or name == "" or string.len(name) < mini then
return true
end
else
if string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") ~= nil then
return true
end
end
end
function check_premise(item)
if pc.is_married() then
say("Während du verheiratet bist kannst du")
say("kein VIP werden.")
return
elseif pc.is_polymorphed() then
say("Während du verwandelt bist kannst du")
say("kein VIP werden.")
return
elseif not pc.can_warp() then
say("Du hast vorkurzem gehandelt, so kannst du")
say("kein VIP werden.")
return
elseif pc.has_guild() then
say("Während du in einer Gilde bist kannst du")
say("kein VIP werden.")
return
elseif party.is_party() then
say("Während du in einer Gruppe bist kannst du")
say("kein VIP werden.")
return
elseif pc.count_item(item) < 1 then
say("Bugusern wird kein VIP entzogen!")
return
end
end
end
end
|
|
|
09/05/2015, 12:04
|
#11887
|
elite*gold: 1
Join Date: Aug 2014
Posts: 1,339
Received Thanks: 875
|
Calls uncleared function:
mysql_query
pc.can_warp
split
string.find
__________________________________________-
Er sagt er kann diese Funktionen nicht "erklären".
Trag diese Funktionen bitte in deine quest_functions ein.
Wenn du Vanilla Core hast, dann heißt es: game.mysql_query
lg
|
|
|
09/05/2015, 23:13
|
#11888
|
elite*gold: 0
Join Date: Mar 2013
Posts: 58
Received Thanks: 10
|
Teleport Quest
#gelöst
|
|
|
09/06/2015, 17:05
|
#11889
|
elite*gold: 0
Join Date: Jun 2015
Posts: 68
Received Thanks: 14
|
Hat keiner eine Idee, was der Fehler ist oder sein könnte ?
|
|
|
09/08/2015, 11:45
|
#11890
|
elite*gold: 0
Join Date: Sep 2015
Posts: 3
Received Thanks: 0
|
VIP Quest
Hatte die VIP Quest eingefügt, das VIP geht zwar, aber sofort wenn ich einen neuen Acc, mit einem neuen Charakter erstelle, bin ich sofort VIP, ohne das VIP Item zu benutzen?
Quote:
.Ryuzaki™ Calls uncleared function:
mysql_query
pc.can_warp
split
string.find
__________________________________________-
Er sagt er kann diese Funktionen nicht "erklären".
Trag diese Funktionen bitte in deine quest_functions ein.
Wenn du Vanilla Core hast, dann heißt es: game.mysql_query
lg
|
|
|
|
09/08/2015, 14:42
|
#11891
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by ArmaniMetin2
Hatte die VIP Quest eingefügt, das VIP geht zwar, aber sofort wenn ich einen neuen Acc, mit einem neuen Charakter erstelle, bin ich sofort VIP, ohne das VIP Item zu benutzen?
|
Wie wäre es, wenn du die Quest mal zeigst?
|
|
|
09/09/2015, 15:20
|
#11892
|
elite*gold: 0
Join Date: Jan 2009
Posts: 170
Received Thanks: 8
|
Code:
quest jagd05 begin
state start begin
when login or levelup with pc.level >= 1 begin
set_state(information_lv5)
end
end
state information_lv5 begin
when letter begin
send_letter("Die Bitte des Hauptmannes")
end
when button or info begin
say_title("Die Bitte des Hauptmannes")
say("")
say("Der Hauptmann möchte, dass du die")
say("Dorfbewohner von den grausamen")
say("Kreaturen schützt, die vor dem Dorf")
say("ihr Unwesen treiben.")
say("")
say_reward("Welche Kreaturen möchtest du erledigen?")
local a = select("35 Alpha-Blauwolf", "20 Grauwolf")
if a == 1 then
say_title("Alpha-Blauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("35 Alpha-Blauwölfe zu erledigen.")
say("Du findest sie vor dem Dorf!")
say("")
pc.setqf("state1", 35)
q.set_counter("Alpha-Blauwolf", 35)
set_state(blauwolf)
else
say_title("Grauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("20 Grauwölfe zu erledigen.")
say("Du findest sie vor dem Dorf!")
say("")
pc.setqf("state2", 20)
q.set_counter("Grauwolf", 20)
set_state(grauwolf)
end
end
end
state blauwolf begin
when letter begin
send_letter("Alpha-Blauwölfe")
end
when button or info begin
say_title("Alpha-Blauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("35 Alpha-Blauwölfe zu erledigen.")
say("")
say_reward("Du musst noch "..pc.getqf("state1").." Alpha-Blauwölfe töten!")
end
when 105.kill begin
local count1 = pc.getqf("state1") - 1
if count1 <= 35 then
pc.setqf("state1", count1)
q.set_counter("Alpha-Blauwolf", count1)
end
if count == 35 then
set_state(reward)
end
end
end
state grauwolf begin
when letter begin
send_letter("Grauwölfe")
end
when button or info begin
say_title("Grauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("20 Grauwölfe zu erledigen.")
say("")
say_reward("Du musst noch "..pc.getqf("state2").." Grauwölfe töten!")
end
when 106.kill begin
local count2 = pc.getqf("state2") - 1
if count2 <= 20 then
pc.setqf("state2", count2)
q.set_counter("Grauwolf", count2)
end
if count == 20 then
set_state(reward)
end
end
end
state reward begin
when letter begin
send_letter("Auftrag abgeschlossen")
end
when button or info begin
say_title("Auftrag abgeschlossen")
say("")
say("Du hast die Aufgabe des Hauptmannes")
say("mit Erfolg abgeschlossen.")
say("")
say("Du erhälst:")
set_state(__COMPLETE__)
end
end
state __COMPLETE__ begin
end
end
Der State REWARD wird nicht abgerufen.
Bitte im Hilfe!
|
|
|
09/09/2015, 15:41
|
#11893
|
elite*gold: 6
Join Date: Dec 2007
Posts: 4,075
Received Thanks: 1,235
|
Quote:
Originally Posted by xKingix
Code:
quest jagd05 begin
state start begin
when login or levelup with pc.level >= 1 begin
set_state(information_lv5)
end
end
state information_lv5 begin
when letter begin
send_letter("Die Bitte des Hauptmannes")
end
when button or info begin
say_title("Die Bitte des Hauptmannes")
say("")
say("Der Hauptmann möchte, dass du die")
say("Dorfbewohner von den grausamen")
say("Kreaturen schützt, die vor dem Dorf")
say("ihr Unwesen treiben.")
say("")
say_reward("Welche Kreaturen möchtest du erledigen?")
local a = select("35 Alpha-Blauwolf", "20 Grauwolf")
if a == 1 then
say_title("Alpha-Blauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("35 Alpha-Blauwölfe zu erledigen.")
say("Du findest sie vor dem Dorf!")
say("")
pc.setqf("state1", 35)
q.set_counter("Alpha-Blauwolf", 35)
set_state(blauwolf)
else
say_title("Grauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("20 Grauwölfe zu erledigen.")
say("Du findest sie vor dem Dorf!")
say("")
pc.setqf("state2", 20)
q.set_counter("Grauwolf", 20)
set_state(grauwolf)
end
end
end
state blauwolf begin
when letter begin
send_letter("Alpha-Blauwölfe")
end
when button or info begin
say_title("Alpha-Blauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("35 Alpha-Blauwölfe zu erledigen.")
say("")
say_reward("Du musst noch "..pc.getqf("state1").." Alpha-Blauwölfe töten!")
end
when 105.kill begin
local count1 = pc.getqf("state1") - 1
if count1 <= 35 then
pc.setqf("state1", count1)
q.set_counter("Alpha-Blauwolf", count1)
end
if count == 35 then
set_state(reward)
end
end
end
state grauwolf begin
when letter begin
send_letter("Grauwölfe")
end
when button or info begin
say_title("Grauwölfe")
say("")
say("Der Hauptmann hat dir die Aufgabe erteilt")
say("20 Grauwölfe zu erledigen.")
say("")
say_reward("Du musst noch "..pc.getqf("state2").." Grauwölfe töten!")
end
when 106.kill begin
local count2 = pc.getqf("state2") - 1
if count2 <= 20 then
pc.setqf("state2", count2)
q.set_counter("Grauwolf", count2)
end
if count == 20 then
set_state(reward)
end
end
end
state reward begin
when letter begin
send_letter("Auftrag abgeschlossen")
end
when button or info begin
say_title("Auftrag abgeschlossen")
say("")
say("Du hast die Aufgabe des Hauptmannes")
say("mit Erfolg abgeschlossen.")
say("")
say("Du erhälst:")
set_state(__COMPLETE__)
end
end
state __COMPLETE__ begin
end
end
|
Quote:
Originally Posted by xKingix
Der State REWARD wird nicht abgerufen.
Bitte im Hilfe!
|
Du musst deinem count auch die richtige Benennung geben. In deinem Fall count1 und count2.
PHP Code:
when 105.kill begin local count1 = pc.getqf("state1") - 1 if count1 <= 35 then pc.setqf("state1", count1) q.set_counter("Alpha-Blauwolf", count1) end if count1 == 35 then set_state(reward) end end
PHP Code:
when 106.kill begin local count2 = pc.getqf("state2") - 1 if count2 <= 20 then pc.setqf("state2", count2) q.set_counter("Grauwolf", count2) end if count2 == 20 then set_state(reward) end end
|
|
|
09/10/2015, 16:06
|
#11894
|
elite*gold: 6
Join Date: Dec 2007
Posts: 4,075
Received Thanks: 1,235
|
Jetzt habe ich leider selber ein Problem wo ich feststecke. Und zwar möchte ich die Yangbomben an den Bossen per Quest einstellen, damit diese unabhängig von den Rates sind und nicht beeinflusst werden. Zur Zeit sieht das ganze so aus:
PHP Code:
when 1901.kill with pc.get_level() <= 82 begin -- max 10 level höher
pc.setqf("bomben_anzahl", 66)
pc.setqf("bomben_anzahl", pc.getqf("bomben_anzahl") - 1)
game.drop_item_with_ownership(25040,1) -- 100% Segi
game.drop_item_with_ownership(70102,1) -- 100% Zen-Bohne
game.drop_item_with_ownership(50077,1) -- 100% Truhe
game.drop_item_with_ownership(1,200)
if pc.getqf("bomben_anzahl") > 0 then
game.drop_item_with_ownership(1,200)
end
if pc.getqf("bomben_anzahl") <= 0 then
end
end
Da droppt er dann aber leider nur 2x die Yangbombe :/
|
|
|
09/14/2015, 20:27
|
#11895
|
elite*gold: 0
Join Date: Dec 2008
Posts: 2,825
Received Thanks: 1,538
|
Quote:
Originally Posted by Ide.
Jetzt habe ich leider selber ein Problem wo ich feststecke. Und zwar möchte ich die Yangbomben an den Bossen per Quest einstellen, damit diese unabhängig von den Rates sind und nicht beeinflusst werden. Zur Zeit sieht das ganze so aus:
PHP Code:
when 1901.kill with pc.get_level() <= 82 begin -- max 10 level höher
pc.setqf("bomben_anzahl", 66)
pc.setqf("bomben_anzahl", pc.getqf("bomben_anzahl") - 1)
game.drop_item_with_ownership(25040,1) -- 100% Segi
game.drop_item_with_ownership(70102,1) -- 100% Zen-Bohne
game.drop_item_with_ownership(50077,1) -- 100% Truhe
game.drop_item_with_ownership(1,200)
if pc.getqf("bomben_anzahl") > 0 then
game.drop_item_with_ownership(1,200)
end
if pc.getqf("bomben_anzahl") <= 0 then
end
end
Da droppt er dann aber leider nur 2x die Yangbombe :/
|
Code:
when 1901.kill with pc.get_level() <= 82 begin -- max 10 level höher
if pc.getqf("bomben_anzahl") <= 0 then
pc.setqf("bomben_anzahl", 66)
end
pc.setqf("bomben_anzahl", pc.getqf("bomben_anzahl") - 1)
game.drop_item_with_ownership(25040,1) -- 100% Segi
game.drop_item_with_ownership(70102,1) -- 100% Zen-Bohne
game.drop_item_with_ownership(50077,1) -- 100% Truhe
game.drop_item_with_ownership(1,200)
if pc.getqf("bomben_anzahl") > 0 then
game.drop_item_with_ownership(1,200)
end
end
|
|
|
All times are GMT +1. The time now is 16:38.
|
|