|
You last visited: Today at 15:50
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
09/28/2015, 20:39
|
#11911
|
elite*gold: 0
Join Date: Mar 2015
Posts: 119
Received Thanks: 29
|
Quote:
Originally Posted by poXavincS
Hello,
I have a give_basic_weapon.start question, but doesn't work ! I'll be mad soon
Code:
if pc . getqf ( "basic_weapon" ) == 0 then
say ( pc.get_name() .. " İllüminati2'ye Hoşgeldin.")
say ( "" )
say ("Karakterine uygun ekipmanlarını aldın" )
say ( "")
say ( "" )
say ("Katokamb, Şeytan Kulesi aktiftir,")
say ("70'den sonra seviye görevleri başlar")
say ("Server ne kolay ne de zordur, edit satışı yoktur.")
say ("[TL]Myth")
say ("[TL]REAL")
say ("ile iletişime geçebilirsiz")
say ( "" )
if pc . get_job ( ) == 0 then --savasci
pc . give_item2 ( "11269" , 1 )
pc . give_item2 ( "109" , 1 )
pc . give_item2 ( "3099" , 1 ) --buzlu uc
pc . give_item2 ( "12249" , 1 ) --kask
notice_all ( pc.get_name( .. " (Savaşçı) Yeni oyuncu ")
elseif pc . get_job ( ) == 1 then --ninja
pc . give_item2 ( "1069" , 1 ) -- hancer
pc . give_item2 ( "2099" , 1 ) --yay
pc . give_item2 ( "8004" , 200 ) --ok
pc . give_item2 ( "8004" , 200 ) --ok
pc . give_item2 ( "8004" , 200 ) --ok
pc . give_item2 ( "8004" , 200 ) --ok
pc . give_item2 ( "11469" , 1 ) -- zırh
notice_all ( pc.get_name( .. " (Ninja) Yeni Oyuncu ")
elseif pc . get_job ( ) == 2 then --sura
pc . give_item2 ( "109" , 1 )
pc . give_item2 ( "11669" , 1 )
pc . give_item2 ( "12529" , 1 ) --kask
notice_all ( pc.get_name( .. " (Sura) Yeni Oyuncu ")
elseif pc . get_job ( ) == 3 then --saman
pc . give_item2 ( "7099" , 1 )
pc . give_item2 ( "5059" , 1 )
pc . give_item2 ( "5069" , 1 ) --50lv can
pc . give_item2 ( "12669" , 1 )
pc . give_item2 ( "11869" , 1 )
notice_all ( pc.get_name( .. " (Şaman) Yeni Oyuncu ")
end
command ("level 48")
-- iç item
pc . give_item2 ( "14149" , 1 )
pc . give_item2 ( "16149" , 1 )
pc . give_item2 ( "17169" , 1 )
pc . give_item2 ( "15169" , 1 )
pc . give_item2 ( "13049" , 1 )
pc . give_item2 ( "40002" , 1 )
-- iç item
--ay özütleri
pc . give_item2 ( "72730" , 1 ) --oto mana
pc . give_item2 ( "72726" , 1 ) --oto hp
--ay özütleri
horse . set_level ( 21 )
horse . ride ()
pc . give_item2 ( "71050" , 200 )
pc . give_item2 ( "72702" , 1 )
pc . give_gold ( "5000000" )
pc . give_item2 ( 50052 )
pc . changealignment ( 2500 )
pc . setqf ( "basic_weapon" , 1 )
end
When If I did in GM account /reload q, is refresh object in all quest?
Thankl you for interest.
|
What file's are you using?
In Daroo Files do m2 qc
other files cd /usr/home/game && sh make.sh
Greets.
PS: My Error is still on point^^
|
|
|
09/29/2015, 19:12
|
#11912
|
elite*gold: 105
Join Date: Jun 2015
Posts: 453
Received Thanks: 294
|
Hey Leute! 
Könnte nochmal jemand kurz über diese Quest schauen?
Bei jedem Relog, Stadt neustart, etc. erscheint die Anzeige immer wieder...
Danke euch!
Code:
quest levelup_notice begin
state start begin
when login or levelup begin
local level_list = ({
[10] = 10, [20] = 20, [30] = 30, [40] = 40, [50] = 50, [60] = 60, [70] = 70, [80] = 80, [90] = 90, [100] = 100
})[pc.get_level()]
if level_list == nil then
return
else
notice_all(string.format("Der Spieler %s hat soeben das Level %d erreicht!", pc.get_name(), level_list))
end
end
end
end
|
|
|
09/29/2015, 19:35
|
#11913
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by I´m Raylee
Hey Leute! 
Könnte nochmal jemand kurz über diese Quest schauen?
Bei jedem Relog, Stadt neustart, etc. erscheint die Anzeige immer wieder...
Danke euch!
Code:
quest levelup_notice begin
state start begin
when login or levelup begin
local level_list = ({
[10] = 10, [20] = 20, [30] = 30, [40] = 40, [50] = 50, [60] = 60, [70] = 70, [80] = 80, [90] = 90, [100] = 100
})[pc.get_level()]
if level_list == nil then
return
else
notice_all(string.format("Der Spieler %s hat soeben das Level %d erreicht!", pc.get_name(), level_list))
end
end
end
end
|
Code:
quest levelup_notice begin
state start begin
when levelup with levelup_notice.modulo(pc.get_level(), 10) == 0 begin
notice_all(string.format("Der Spieler %s hat soeben das Level %d erreicht!", pc.get_name(), pc.get_level()))
end
function modulo(v1, v2)
return v1 - (math.floor(v1 / v2) * v2)
end
end
end
|
|
|
09/29/2015, 20:43
|
#11914
|
wild wild son
elite*gold: 0
Join Date: Feb 2011
Posts: 5,994
Received Thanks: 3,389
|
Quote:
Originally Posted by MilkingCow
Vielen dank. Dachte ich kann das so verwenden wenn es aufgerufen wird.
Mfg
€: Habe die Quest getestet. Geht auch alles soweit. Aber sobald ich ein EQ wähle bleiben die schwarzen Ränder und es passiert nichts.
|
Code:
quest give_basic_weapon begin
state start begin
when login begin
say_title("Servername - Willkommen")
say("")
say("WIr bieten euch die möglichkeit zwischen 2")
say("Startequipment's zu wählen.")
say("Bitte wählen:")
local a = select("Normales EQ", "Servername EQ", "Schließen")
if a == 1 then
if pc.get_job() == 0 then
pc.give_item2(11209)
pc.give_item2(19)
pc.give_item2(12209)
elseif pc.get_job() == 1 then
pc.give_item2(11409)
pc.give_item2(12349)
pc.give_item2(1009)
elseif pc.get_job() == 2 then
pc.give_item2(11609)
pc.give_item2(19)
pc.give_item2(12489)
else
pc.give_item2(11809)
pc.give_item2(12629)
pc.give_item2(7009)
end
say_title("Normales EQ")
say("")
say("Du hast dich für das normale EQ entschieden.")
elseif a == 2 then
if pc.get_job() == 0 then
pc.give_item2(11209)
pc.give_item2(19)
pc.give_item2(12209)
elseif pc.get_job() == 1 then
pc.give_item2(11409)
pc.give_item2(12349)
pc.give_item2(1009)
elseif pc.get_job() == 2 then
pc.give_item2(11609)
pc.give_item2(19)
pc.give_item2(12489)
else
pc.give_item2(11809)
pc.give_item2(12629)
pc.give_item2(7009)
end
say_title("Servername EQ")
say("")
say("Du hast dich für das Servername EQ entschieden.")
else
return
end
set_state("ending")
end
end
state ending begin
end
end
Ich habe die Quest mal ein wenig vereinfacht, daraus sollte Neues hervorgehen. Nutze die nachfolgende Version, sollte es zu Spielfehlern kommen.
Code:
quest give_basic_weapon begin
state start begin
when login begin
timer("sendDelayedQuestText", 1)
end
when sendDelayedQuestText.timer begin
say_title("Servername - Willkommen")
say("")
say("WIr bieten euch die möglichkeit zwischen 2")
say("Startequipment's zu wählen.")
say("Bitte wählen:")
local a = select("Normales EQ", "Servername EQ", "Schließen")
if a == 1 then
if pc.get_job() == 0 then
pc.give_item2(11209)
pc.give_item2(19)
pc.give_item2(12209)
elseif pc.get_job() == 1 then
pc.give_item2(11409)
pc.give_item2(12349)
pc.give_item2(1009)
elseif pc.get_job() == 2 then
pc.give_item2(11609)
pc.give_item2(19)
pc.give_item2(12489)
else
pc.give_item2(11809)
pc.give_item2(12629)
pc.give_item2(7009)
end
say_title("Normales EQ")
say("")
say("Du hast dich für das normale EQ entschieden.")
elseif a == 2 then
if pc.get_job() == 0 then
pc.give_item2(11209)
pc.give_item2(19)
pc.give_item2(12209)
elseif pc.get_job() == 1 then
pc.give_item2(11409)
pc.give_item2(12349)
pc.give_item2(1009)
elseif pc.get_job() == 2 then
pc.give_item2(11609)
pc.give_item2(19)
pc.give_item2(12489)
else
pc.give_item2(11809)
pc.give_item2(12629)
pc.give_item2(7009)
end
say_title("Servername EQ")
say("")
say("Du hast dich für das Servername EQ entschieden.")
else
return
end
set_state("ending")
end
end
state ending begin
end
end
lg
|
|
|
10/04/2015, 14:45
|
#11915
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Könnte mir bitte jemand diese Quests auf Fehlerprüfen und eventuell verbessern ...
1.
Code:
quest coinboss begin
state start begin
when letter begin
send_letter("Töte den Boss!")
end
when button or info begin
if pc.getqf("BossAuftrag")==1 then
say_title("Töte den Boss!")
say("Du musst noch "..(10-pc.getqf("BossKills")).." den Boss zerstören.")
else
if coinboss.COIN_TIME()<get_time()then
pc.setqf("BossAuftrag", 1)
pc.setqf("BossKills", 0)
pc.setqf("BossKillsZeit", (get_time()+60*60*24))
q.set_counter("Verbleibend", 10)
say_title("Töte den Boss!")
say("")
say("Diesen Auftrag kannst du alle 24 Stunden")
say("machen, zerstöre einfach 10 Bosse")
say("und erhalte als Belohnung 1500 Coins")
say("")
else
say_title("Boss Auftrag")
say("")
t = coinboss.time_std_min_sek(coinboss.COIN_TIME()<get_time())
say("Du musst noch "..t[1].." Stunden "..t[2].." Minuten "..t[3].." Sekunden warten.")
say("bis du den Auftrag erneut annehmen kannst.")
end
end
end
when kill with npc.get_race()>=2597 and npc.get_race()<=2597 and pc.getqf("BossAuftrag")==1 begin
local metin_stone={
{ 2597, 249, 250 }
}
ret = coinboss.is_stone(metin_stone)
if pc.get_level() >= metin_stone[ret][2] and pc.get_level() <= metin_stone[ret][3] then
pc.setqf("BossKills", pc.getqf("BossKills")+1)
q.set_counter("Verbleibend", (10-pc.getqf("BossKills")))
if pc.getqf("BossKills")>=10 then
pc.setqf("BossAuftrag", 0)
mysql_query("UPDATE account.account SET coins = coins+1500 , BOSSCOINTIME = '"..(get_time()+60*60*24).."' WHERE id = '"..pc.get_account_id().."' LIMIT 1;")
say_title("Auftrag abeschlossen!")
say("")
say("Als Belohnung erhälst du 1500 Coins.")
say("in 24 Stunden kannst du diesen Auftrag")
say("wiederholen!")
say("")
say("Danke und Tschüss!")
end
else
syschat("Mit einem unterschied von 20 Leveln zählt der Boss nicht mehr.")
end
end
function is_stone(metin_stone)
is_in = 0
for i=1, table.getn(metin_stone), 1 do
if npc.get_race()==metin_stone[i][1] then
is_in= i
break
end
end
if is_in!=0 then
return is_in
else
return 0
end
end
function time_std_min_sek(int)
if tonumber(int) then
Stunden = math.floor((int) / 60 / 60)
Minuten = math.floor(((int) / 60 ) - Stunden * 60)
Sekunden = math.floor((int) - Stunden * 60 * 60 - Minuten * 60)
return {Stunden, Minuten, Sekunden}
end
end
function COIN_TIME()
return tonumber(mysql_query("SELECT BOSSCOINTIME FROM account.account WHERE id = '"..pc.get_account_id().."' LIMIT 1;")[1][1])
end
end
end
2.
Code:
quest coinmetin begin
state start begin
when letter begin
send_letter("Töte die Metins!")
end
when button or info begin
if pc.getqf("MetinAuftrag")==1 then
say_title("Töte die Metins!")
say("Du musst noch "..(50-pc.getqf("MetinKills")).." Metine zerstören.")
else
if coinmetin.COIN_TIME()<get_time()then
pc.setqf("MetinAuftrag", 1)
pc.setqf("MetinKills", 0)
pc.setqf("MetinKillsZeit", (get_time()+60*60*24))
q.set_counter("Verbleibend", 50)
say_title("Töte die Metins!")
say("")
say("Diesen Auftrag kannst du alle 24 Stunden")
say("machen, zerstöre einfach 50 Metins")
say("und erhalte als Belohnung 3000 Coins")
say("")
else
say_title("Metin Auftrag")
say("")
t = coinmetin.time_std_min_sek(coinmetin.COIN_TIME()<get_time())
say("Du musst noch "..t[1].." Stunden "..t[2].." Minuten "..t[3].." Sekunden warten.")
say("bis du den Auftrag erneut annehmen kannst.")
end
end
end
when kill with npc.get_race()>=8051 and npc.get_race()<=8060 and pc.getqf("MetinAuftrag")==1 begin
local metin_stone={
{ 8051, 249, 250 },
{ 8052, 249, 250 },
{ 8053, 249, 250 },
{ 8054, 249, 250 },
{ 8055, 249, 250 },
{ 8056, 249, 250 },
{ 8057, 249, 250 },
{ 8058, 249, 250 },
{ 8059, 249, 250 },
{ 8060, 249, 250 }
}
ret = coinmetin.is_stone(metin_stone)
if pc.get_level() >= metin_stone[ret][2] and pc.get_level() <= metin_stone[ret][3] then
pc.setqf("MetinKills", pc.getqf("MetinKills")+1)
q.set_counter("Verbleibend", (50-pc.getqf("MetinKills")))
if pc.getqf("MetinKills")>=50 then
pc.setqf("MetinAuftrag", 0)
mysql_query("UPDATE account.account SET coins = coins+3000 , METINCOINTIME = '"..(get_time()+60*60*24).."' WHERE id = '"..pc.get_account_id().."' LIMIT 1;")
say_title("Auftrag abeschlossen!")
say("")
say("Als Belohnung erhälst du 3000 Coins.")
say("in 24 Stunden kannst du diesen Auftrag")
say("wiederholen!")
say("")
say("Danke und Tschüss!")
end
else
syschat("Mit einem unterschied von 20 Leveln zählt der Metin nicht mehr.")
end
end
function is_stone(metin_stone)
is_in = 0
for i=1, table.getn(metin_stone), 1 do
if npc.get_race()==metin_stone[i][1] then
is_in= i
break
end
end
if is_in!=0 then
return is_in
else
return 0
end
end
function time_std_min_sek(int)
if tonumber(int) then
Stunden = math.floor((int) / 60 / 60)
Minuten = math.floor(((int) / 60 ) - Stunden * 60)
Sekunden = math.floor((int) - Stunden * 60 * 60 - Minuten * 60)
return {Stunden, Minuten, Sekunden}
end
end
function COIN_TIME()
return tonumber(mysql_query("SELECT METINCOINTIME FROM account.account WHERE id = '"..pc.get_account_id().."' LIMIT 1;")[1][1])
end
end
end
|
|
|
10/05/2015, 17:18
|
#11916
|
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,389
|
Quote:
Originally Posted by Ide.
Was wird denn als Fehler angegeben?
Update:
Ich habe mal drüber geschaut und war der Meinung das ein end falsch gesetzt war.
Teste mal folgendes:
PHP Code:
quest eq begin
state start begin
----------------------------------------------------------------------
-- Funktion 1 --
----------------------------------------------------------------------
function normal()
if pc.get_job() == 0 then
say_title("Normales EQ")
say("")
say("Du hast dich für das normale EQ entschieden.")
pc.give_item2(11209)
pc.give_item2(19)
pc.give_item2(12209)
end
if pc.get_job() == 1 then
say_title("Normales EQ")
say("")
say("Du hast dich für das normale EQ entschieden.")
pc.give_item2(11409)
pc.give_item2(12349)
pc.give_item2(1009)
end
if pc.get_job() == 2 then
say_title("Normales EQ")
say("")
say("Du hast dich für das normale EQ entschieden.")
pc.give_item2(11609)
pc.give_item2(19)
pc.give_item2(12489)
end
if pc.get_job() == 3 then
say_title("Normales EQ")
say("")
say("Du hast dich für das normale EQ entschieden.")
pc.give_item2(11809)
pc.give_item2(12629)
pc.give_item2(7009)
end
end
----------------------------------------------------------------------
-- Funktion 2 --
----------------------------------------------------------------------
function maltasia()
if pc.get_job() == 0 then
say_title("Servername EQ")
say("")
say("Du hast dich für das Servername EQ entschieden.")
pc.give_item2(11209)
pc.give_item2(19)
pc.give_item2(12209)
end
if pc.get_job() == 1 then
say_title("Servername EQ")
say("")
say("Du hast dich für das Servername EQ entschieden.")
pc.give_item2(11409)
pc.give_item2(12349)
pc.give_item2(1009)
end
if pc.get_job() == 2 then
say_title("Servername EQ")
say("")
say("Du hast dich für das Servername EQ entschieden.")
pc.give_item2(11609)
pc.give_item2(19)
pc.give_item2(12489)
end
if pc.get_job() == 3 then
say_title("Servername EQ")
say("")
say("Du hast dich für das Servername EQ entschieden.")
pc.give_item2(11809)
pc.give_item2(12629)
pc.give_item2(7009)
end
end
----------------------------------------------------------------------
-- Quest --
----------------------------------------------------------------------
when login begin
say_title("Servername - Willkommen")
say("")
say("Wir bieten euch die möglichkeit zwischen 2")
say("Startequipment's zu wählen.")
say("Bitte wählen:")
local art = select ("Normales EQ", "Servername EQ")
if art == 1 then
give_basic_weapon.normal()
end
if art == 2 then
give_basic_weapon.maltasia()
end
end
end
end
Update²: Naverwy's Ausbesserung editiert.
|
PHP Code:
quest give_basic_weapon begin
state start begin
function eq(art)
local eqsets = {
-- Normal
{
-- Krieger
{11209, 19, 12209},
-- Ninja
{11409, 1009, 12349},
-- Sura
{11609, 19, 12489},
-- Schamane
{11809, 7009, 12629},
},
-- Maltasia
{
-- Krieger
{11209, 19, 12209},
-- Ninja
{11409, 1009, 12349},
-- Sura
{11609, 19, 12489},
-- Schamane
{11809, 7009, 12629},
}
}
for a = 1, table.getn(eqsets[art][pc.get_job()-1]) do
pc.give_item2(eqsets[art][pc.get_job()-1][a], 1)
end
end
when login begin
say_title("Servername - Willkommen")
say("[ENTER]Wir beiten euch die Möglichkeit")
say("Starterpaketen zu wählen.")
say_reward("Bitte wählen:")
local art = select("Normales Starterpaket", "Servername Starterpaket")
give_basic_weapon.eq(art)
setstate(__COMPLETE__)
end
end
end
|
|
|
10/05/2015, 18:34
|
#11917
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Mr. 'Avenue™
PHP Code:
quest give_basic_weapon begin
state start begin
function eq(art)
local eqsets = {
-- Normal
{
-- Krieger
{11209, 19, 12209},
-- Ninja
{11409, 1009, 12349},
-- Sura
{11609, 19, 12489},
-- Schamane
{11809, 7009, 12629},
},
-- Maltasia
{
-- Krieger
{11209, 19, 12209},
-- Ninja
{11409, 1009, 12349},
-- Sura
{11609, 19, 12489},
-- Schamane
{11809, 7009, 12629},
}
}
for a = 1, table.getn(eqsets[art][pc.get_job()-1]) do
pc.give_item2(eqsets[art][pc.get_job()-1][a], 1)
end
end
when login begin
say_title("Servername - Willkommen")
say("[ENTER]Wir beiten euch die Möglichkeit")
say("Starterpaketen zu wählen.")
say_reward("Bitte wählen:")
local art = select("Normales Starterpaket", "Servername Starterpaket")
give_basic_weapon.eq(art)
setstate(__COMPLETE__)
end
end
end
|
Ich würde den Zugriff auf den Table Index ausserhalb der Schleife machen, sieht meiner Meinung nach deutlich übersichtlicher aus und du sparst dir n Funktionsaufrufe von pc.get_job()
Code:
quest give_basic_weapon begin
state start begin
function eq(art)
local eqsets = ({
-- Normal
{
-- Krieger
{11209, 19, 12209},
-- Ninja
{11409, 1009, 12349},
-- Sura
{11609, 19, 12489},
-- Schamane
{11809, 7009, 12629},
},
-- Maltasia
{
-- Krieger
{11209, 19, 12209},
-- Ninja
{11409, 1009, 12349},
-- Sura
{11609, 19, 12489},
-- Schamane
{11809, 7009, 12629},
}
})[art][pc.get_job() - 1]
for _,vnum in ipairs(eqsets) do
pc.give_item2(vnum, 1)
end
end
when login begin
say_title("Servername - Willkommen")
say("[ENTER]Wir beiten euch die Möglichkeit")
say("Starterpaketen zu wählen.")
say_reward("Bitte wählen:")
local art = select("Normales Starterpaket", "Servername Starterpaket")
give_basic_weapon.eq(art)
setstate(__COMPLETE__)
end
end
end
|
|
|
10/05/2015, 22:51
|
#11918
|
elite*gold: 35
Join Date: Aug 2012
Posts: 222
Received Thanks: 28
|
Habe ein Problem
Man bekommt keine Rüstung oder Helm für sein Char
quest lv55 begin
state start begin
when login or levelup with pc.level >= 55 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Auftrag 10")
end
when info or button begin
say_title("~~~~~~~~~~~~~~~~~AUFTRAG~~~~~~~~~~~~~~~ ~~")say("")
say("Eure Aufgabe:")
say("")
say("Töte 100 Dämonenspeerkämpfer.")
say("")
say_reward("Du bekommst Mondlich-Schatztruhe 5x")
say_reward("Lv 41 Helm +4")
say_reward("Lv 48 Rüstung +7")
say("")
local s = select("Ja","Nein keine Zeit")
if s == 2 then
say_title("~~~~~~~~~~~~~~~~~AUFTRAG~~~~~~~~~~~~~~~ ~~")say("")
say_reward("Auftrag wurde beendet.")
clear_letter()
set_state(__complete)
else
say_title("~~~~~~~~~~~~~~~~~AUFTRAG~~~~~~~~~~~~~~~ ~~")say("")
say_reward("Töte 100 Dämonenspeerkämpfer.")say("")
pc.setqf("state1", 0)
set_state(kill)
end
end
end
state kill begin
when letter begin
send_letter("Auftrag 10")
end
when info or button begin
say_title("~~~~~~~~~~~~~~~~~AUFTRAG~~~~~~~~~~~~~~~ ~~")say("")
say("Staus:")
say_reward("Du hast schon "..pc.getqf("state1").." von 100 Dämonenspeerkämpfer Getötet")
say("")
end
when 1003.kill begin
local count1 = pc.getqf("state1") + 1
if count1 <= 100 then
pc.setqf("state1", count1)
q.set_counter("Getötet", count1)
end
if count1 == 100 then
set_state(fertig)
end
end
end
state fertig begin
when letter begin
send_letter("Auftrag 10 abgeschlossen!")
end
when info or button begin
say_title("~~~~~~~~~~~~~~~~~AUFTRAG~~~~~~~~~~~~~~~ ~~")say("")
say("")
say("Du kannst dir nun aussuchen was du haben Möchtest.")
say("")
local s=select("Mondlich-Schatztruhe","Lv 41 Helm +4","Lv 48 Rüstung +7")
clear_letter()
set_state(__complete)
if s== 1 then
pc.give_item2(50011, 5)
elseif s==2 then
if pc.job == 0 then
pc.give_item2(12244, 1)
elseif pc.job == 1 then
pc.give_item2(12384, 1)
elseif pc.job == 2 then
pc.give_item2(12524, 1)
elseif pc.job == 3 then
pc.give_item2(12664, 1)
elseif s==3 then
if pc.job == 0 then
pc.give_item2(11267, 1)
elseif pc.job == 1 then
pc.give_item2(11467, 1)
elseif pc.job == 2 then
pc.give_item2(11667, 1)
elseif pc.job == 3 then
pc.give_item2(11867, 1)
end
end
end
end
end
state __complete begin
end
end
|
|
|
10/09/2015, 19:14
|
#11919
|
elite*gold: 0
Join Date: Nov 2014
Posts: 14
Received Thanks: 2
|
Könnte mir jemand sagen wo hier der Fehler ist komme nicht drauf ....
quest info_tante begin
state start begin
when 20094.chat."Info Tante" begin
say_title("Info Tante")
say("")
say("Hallo:")
say("Auf server gibt es viel zu entdecken")
say("und einiges wird sich verändern, weshalb man nie")
say("auf dem neusten Stand sein kann und weiß")
say("wo man diese neuen Sachen findet.")
say("Dies soll sich schnell ändern..")
say("Ich vergebe so manche Informationen, die")
say("du bestimmt noch nicht weißt")
say("")
say_reward("Möchtest du dich über den Server Informieren?")
local s = select("Ja, gerne", "Nein, schon ok")
if s == 2 then
say_title("Info Tante")
say("Ok, dann nicht")
end
if s == 1 then
say_title("Info Tante")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Taktat zur Fechtkunst", "Der Eisphönix", "Die King Rüstung", "6/7 Boni", "Frage", "Frage", "Frage", "Frage", "Abbrechen")
if s == 1 then
say_title("Traktat zur Fechtkunst!")
say("")
say("Die Traktate Droppts du :")
say("")
say("1. In der Grotte standartmäßig von Monstern")
say("2. Von der Eishexe sowie vom Beran-Setaou")
say("")
end
if s == 2 then
say_title("Der Eisphönix!")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 3 then
say_title("Die King Rüstung!")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 4 then
say_title("6/7 Boni!")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 5 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 6 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 7 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 8 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 9 then
end end
end
end
end
|
|
|
10/11/2015, 12:43
|
#11920
|
elite*gold: 110
Join Date: Jun 2015
Posts: 85
Received Thanks: 22
|
Hilfe bitte
Hallo Kann einer mir helfen wenn ich denn durch habe kommt ein npc wo ich meine behlonung ab hollen kann aber kann es so oft anklicken wie ich es will und bekomme items kann einer mir soo machen das ich einmal anklicke und dann nicht mehr anklicken kann
PHP Code:
quest bossrun begin
state start begin
when 30123.chat."bossrun betreten" with pc.get_map_index() == 1 or 21 or 41 begin
addimage ( - 100 , - 70 , "004.tga" )
say("".. pc.get_name() ..":")
say("Ich habe eine Notitz gefunden")
say("Es ist schwer etwas zu entzifern.")
wait()
addimage ( - 100 , - 70 , "004.tga" )
say("".. pc.get_name() ..":")
say("Ich glaube es handelt sich um die")
say("Meerjungfrau die von Kryos2s")
say("Sklaven gefangen genommen wurde.")
wait()
addimage ( - 100 , - 70 , "004.tga" )
say("".. pc.get_name() ..":")
say("Ah nun kann ich etwas entzifern..")
say("Es sieht so aus als stamm diese Notitz")
say("höchstpersönlich von Kryos2!")
wait()
addimage ( - 100 , - 70 , "004.tga" )
say_red("Kryos2:")
say("Herzlichen Glückwunsch!")
say("Du hast einen freien eintritt in die Hölle")
say("erhalten!")
wait()
addimage ( - 100 , - 70 , "004.tga" )
if pc . get_level ( ) < 40 then
say_reward("Mindestlevel 40!. Komme wieder, wenn du Level 40 bist!")
elseif pc . get_level ( ) > 55 then
say_reward("Max Level 55!")
else
addimage ( - 100 , - 70 , "004.tga" )
say("Eure erste Aufgabe besteht darin")
say("den Metin der Seele zu bezwingen!")
say("Aber seht euch vor! Nur wer das Oberhaupt tötet")
say("und die Meerjungfrau rettet")
say("bekommt auch die Belohnung!")
wait()
say("Möchtest du die Meerjungfrau retten?")
local s = select("Ja", "Nein")
if s == 1 then
pc.warp(1249775 , 1248377)
pc.remove_item(30160,1)
else
return
end
end
end
when 101.kill with pc.get_map_index()==303 begin
local jump1 = number(40, 90)
if jump1<=50 then
chat("Du hattest Glück!")
chat("Du wirst gleich weiter teleportiert!")
timer("bossrun", 5)
else
chat("Kryos2 lacht über deine nutzlosen versuche.")
chat("Bezwinge erneut einen Metin der Seele!")
end
end
when bossrun.timer begin
d.setf("bossrunlevel", 1)
d.new_jump_all(303, 12495, 12480)
local vid = d.spawn_mob(1990, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1990.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 2)
timer("bossrun2", 5)
end
end
when bossrun2.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1991, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1991.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 3)
timer("bossrun3", 5)
end
end
when bossrun3.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1992, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1992.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 4)
timer("bossrun4", 5)
end
end
when bossrun4.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1993, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1993.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 5)
timer("bossrun5", 5)
end
end
when bossrun5.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1994, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1994.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 6)
timer("bossrun6", 5)
end
end
when bossrun6.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1995, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1995.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 7)
timer("bossrun7", 5)
end
end
when bossrun7.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(1996, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1996.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 8)
timer("bossrun8", 5)
end
end
when bossrun8.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(8007, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 8007.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 9)
timer("bossrun9", 5)
end
end
when bossrun9.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(8008, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 8008.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 11)
timer("bossrun10", 5)
end
end
when bossrun10.timer begin
d.jump_all(12495, 12480)
local vid = d.spawn_mob(691, 147, 135)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 691.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 12)
d.notice("Ihr habt es geschaft die Meerjungfrau zu retten.")
d.notice("Dies war eine nicht allzu leichte Aufgabe.")
d.notice("Nun sollt ihr eine Belohnung erhalten.")
d.kill_all()
timer("meerjungfrau_end_port", 10)
end
end
when meerjungfrau_end_port.timer begin
d.jump_all(12495, 12480)
d.spawn_mob(20011, 147, 135)
timer("bossrun_escape_timer", 60)
d.notice("Ihr werdet in 1 Minuten rausgeportet")
end
when 20011.chat."Belohnung" with pc.in_dungeon() and pc.getqf("belo") == 0 begin
addimage ( - 100 , - 70 , "004.tga" )
say("Bla bla , hier kriegst du deine Belohnung")
pc.give_item2(19,1)
pc.setqf("belo", 1)
end
when bossrun_escape_timer.timer begin
d.setf("bossrunlevel", 0)
pc.setqf("belo",0)
-- warp_to_village()
warp_all_to_village(pc.get_map_index(), 30)
end
end
end
|
|
|
10/11/2015, 12:57
|
#11921
|
elite*gold: 0
Join Date: Oct 2015
Posts: 29
Received Thanks: 3
|
Kann mir jemand erklären was an dieser Quest falsch ist?
PHP Code:
quest petauswahl begin state start begin when login or levelup with pc.get_level() >= 5 begin pc.setqf("kills_left", 25) set_state("information") end end state information begin when login or enter begin send_letter("Metin der Schlacht") q.set_counter("Metin der Schlacht", pc.getqf("kills_left")) end when info or button begin say("Petauswahl") say("") say("Zerstöre 25 Metin der Schlacht!") say("Wenn du dies getan hast, bekommst") say("du ein Pet deiner Wahl!")") say("") say_reward("Deine Aufgabe:") say_reward("Zerstöre 25 Metin der Schlacht!") say("") end
when kill with npc.get_race() == 8003 begin local newCount = pc.getqf("kills_left") - 1 pc.setqf("kills_left", newCount) q.set_counter("Metin der Schlacht", newCount) if newCount < 1 then clear_letter() set_state("success") end end end state success begin when login or enter begin send_letter("Petauswahl: Abgeschlossen") end when button or info begin local itemVnums = { 53010, 53011, 53012, 53013 } local itemNames = {} for _,vnum in ipairs(itemVnums) do table.insert(itemNames, item_name(vnum)) end table.insert(itemNames, "Später auswählen") say_title("Petauswahl") say("Du hast die Quest erfolgreich abgeschlossen!") say("Wähle deine Belohnung aus!") local vnum = itemVnums[select_table(itemNames)] or false if not vnum then return end pc.give_item2(vnum) clear_letter() set_state(__complete) end end state __complete begin end end
|
|
|
10/11/2015, 14:31
|
#11922
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
say("du ein Pet deiner Wahl!")")
1x ") zu viel
Sieht man auch am syntax Highlighting
|
|
|
10/11/2015, 15:19
|
#11923
|
elite*gold: 0
Join Date: Oct 2015
Posts: 29
Received Thanks: 3
|
Quote:
Originally Posted by Seחsi
say("du ein Pet deiner Wahl!")")
1x ") zu viel
Sieht man auch am syntax Highlighting
|
Vielen Dank. Funktioniert jetzt!
Und auch danke für die Vorlage ^^
|
|
|
10/13/2015, 02:08
|
#11924
|
elite*gold: 6
Join Date: Dec 2007
Posts: 4,075
Received Thanks: 1,235
|
Quote:
Originally Posted by Kuratox4
Könnte mir jemand sagen wo hier der Fehler ist komme nicht drauf ....
PHP Code:
quest info_tante begin state start begin when 20094.chat."Info Tante" begin say_title("Info Tante") say("") say("Hallo:") say("Auf server gibt es viel zu entdecken") say("und einiges wird sich verändern, weshalb man nie") say("auf dem neusten Stand sein kann und weiß") say("wo man diese neuen Sachen findet.") say("Dies soll sich schnell ändern..") say("Ich vergebe so manche Informationen, die") say("du bestimmt noch nicht weißt") say("") say_reward("Möchtest du dich über den Server Informieren?") local s = select("Ja, gerne", "Nein, schon ok") if s == 2 then say_title("Info Tante") say("Ok, dann nicht") end if s == 1 then say_title("Info Tante") say("") say_reward("Wähle eine Frage:") say("") local s = select("Taktat zur Fechtkunst", "Der Eisphönix", "Die King Rüstung", "6/7 Boni", "Frage", "Frage", "Frage", "Frage", "Abbrechen") if s == 1 then say_title("Traktat zur Fechtkunst!") say("") say("Die Traktate Droppts du :") say("") say("1. In der Grotte standartmäßig von Monstern") say("2. Von der Eishexe sowie vom Beran-Setaou") say("") end if s == 2 then say_title("Der Eisphönix!") say("") say("text") say("text") say("text") say("text") end if s == 3 then say_title("Die King Rüstung!") say("") say("text") say("text") say("text") say("text") end if s == 4 then say_title("6/7 Boni!") say("") say("text") say("text") say("text") say("text") end if s == 5 then say_title("Wo finde ich Geiststeine?") say("") say("text") say("text") say("text") say("text") end if s == 6 then say_title("Wo finde ich Geiststeine?") say("") say("text") say("text") say("text") say("text") end if s == 7 then say_title("Wo finde ich Geiststeine?") say("") say("text") say("text") say("text") say("text") end if s == 8 then say_title("Wo finde ich Geiststeine?") say("") say("text") say("text") say("text") say("text") end if s == 9 then end end end end end
|
Ich schätze es liegt daran, da du zwei mal die Variable "s" benutzt:
PHP Code:
local s = select("Ja, gerne", "Nein, schon ok")
local s = select("Taktat zur Fechtkunst", "Der Eisphönix", "Die King Rüstung", "6/7 Boni", "Frage", "Frage", "Frage", "Frage", "Abbrechen")
Tausch ein "local s" durch "local b" aus. Könnte vielleicht schon helfen.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Guten Morgen bzw. Abend, je nachdem ...
Ich möchte eine Tabellenfunktion mit einem mysql_query kombinieren, habe auch schon einiges getestet, jedoch ohne Erfolg.
PHP Code:
local job = ({ [0] = "Krieger", [1] = "Ninja", [2] = "Sura", [3] = "Schamane", })[pc.get_job()]
say("Klasse: "..job.."")
PHP Code:
local profil_search = mysql_query("SELECT * from player.player WHERE name = '"..search.name[auswahl].."';")
profil_search.job[1] -- (Output = 0, 1, 2, 3)
Schöne grüße & jute Nacht
|
|
|
10/13/2015, 07:52
|
#11925
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Ide.
Ich schätze es liegt daran, da du zwei mal die Variable "s" benutzt:
PHP Code:
local s = select("Ja, gerne", "Nein, schon ok")
local s = select("Taktat zur Fechtkunst", "Der Eisphönix", "Die King Rüstung", "6/7 Boni", "Frage", "Frage", "Frage", "Frage", "Abbrechen")
Tausch ein "local s" durch "local b" aus. Könnte vielleicht schon helfen.
|
Nein, die variable s kann er so oft er möchte überschreiben. Solange er sie in dem Block, in dem er sie abfragt, neu setzt, ist alles in Ordnung.
Quote:
Originally Posted by Kuratox4
Könnte mir jemand sagen wo hier der Fehler ist komme nicht drauf ....
quest info_tante begin
state start begin
when 20094.chat."Info Tante" begin
say_title("Info Tante")
say("")
say("Hallo:")
say("Auf server gibt es viel zu entdecken")
say("und einiges wird sich verändern, weshalb man nie")
say("auf dem neusten Stand sein kann und weiß")
say("wo man diese neuen Sachen findet.")
say("Dies soll sich schnell ändern..")
say("Ich vergebe so manche Informationen, die")
say("du bestimmt noch nicht weißt")
say("")
say_reward("Möchtest du dich über den Server Informieren?")
local s = select("Ja, gerne", "Nein, schon ok")
if s == 2 then
say_title("Info Tante")
say("Ok, dann nicht")
end
if s == 1 then
say_title("Info Tante")
say("")
say_reward("Wähle eine Frage:")
say("")
local s = select("Taktat zur Fechtkunst", "Der Eisphönix", "Die King Rüstung", "6/7 Boni", "Frage", "Frage", "Frage", "Frage", "Abbrechen")
if s == 1 then
say_title("Traktat zur Fechtkunst!")
say("")
say("Die Traktate Droppts du :")
say("")
say("1. In der Grotte standartmäßig von Monstern")
say("2. Von der Eishexe sowie vom Beran-Setaou")
say("")
end
if s == 2 then
say_title("Der Eisphönix!")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 3 then
say_title("Die King Rüstung!")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 4 then
say_title("6/7 Boni!")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 5 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 6 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 7 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 8 then
say_title("Wo finde ich Geiststeine?")
say("")
say("text")
say("text")
say("text")
say("text")
end
if s == 9 then
end end
end
end
end
|
Code:
quest info_tante begin
state start begin
when 20094.chat."Info Tante" begin
local qa = {
{
question = "Taktat zur Fechtkunst",
{func = say, text = "Die Traktate Droppts du :"},
{func = say, text = ""},
{func = say, text = "1. In der Grotte standartmäßig von Monstern"},
{func = say, text = "2. Von der Eishexe sowie vom Beran-Setaou"},
},
{
question = "Der Eisphönix",
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
},
{
question = "Die King Rüstung",
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
},
{
question = "6/7 Boni"
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
},
{
question = "Frage",
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
{func = say, text = "text"},
},
}
local questions = info_tante.buildQuestionTable(qa)
local CANCEL_BUTTON = "Abbrechen"
table.insert(questions, CANCEL_BUTTON)
say_title("Info Tante")
say("")
say("Hallo:")
say("Auf server gibt es viel zu entdecken")
say("und einiges wird sich verändern, weshalb man nie")
say("auf dem neusten Stand sein kann und weiß")
say("wo man diese neuen Sachen findet.")
say("Dies soll sich schnell ändern..")
say("Ich vergebe so manche Informationen, die")
say("du bestimmt noch nicht weißt")
say("")
say_reward("Möchtest du dich über den Server Informieren?")
if select("Ja, gerne", "Nein, schon ok") == 2 then
say_title("Info Tante")
say("Ok, dann nicht")
return
end
say_title("Info Tante")
say("")
say_reward("Wähle eine Frage:")
say("")
local question = questions[select_table(questions)]
if question == CANCEL_BUTTON then return end
local answer = info_tante.getAnswerTable(qa, question)
if not answer then return end
say_title(answer.question .. "!")
say("")
info_tante.sayList(answer)
say("")
end
function getAnswerTable(qa, question)
for _,v in ipairs(qa) do
if v.question == question then
return v
end
end
return nil
end
function sayList(list)
for _,v in ipairs(list) do
v.func(v.text)
end
end
end
end
|
|
|
All times are GMT +1. The time now is 15:51.
|
|