Skocz do zawartości

[Quest] Quiz


z4z0l

Rekomendowane odpowiedzi

Cześć. Tak jak mówi Sunushi - musimy rozbujać ten dział. Dzisiaj napisałem prosty quest składający się głównie z tabel.

Prezentuje się to mniej więcej tak:

 

Zostaje zadane jedno z X pytań

67742318.jpg

 

 

Jeżeli odpowiemy źle, otrzymujemy informację

87549204.jpg

 

Jeżeli odpowiemy dobrze, zostaje zadane kolejne pytanie. Maksymalnie 5 pytań na jedną 'rundę'.

 

Jedynym minusem, który jest w MOIM udostępnionym queście jest to, że ilość pytań to tylko 7, przez co mogą się powtarzać.

Aby dodać kolejne pytanie, musimy pamiętać o tym, aby było ono dodane w takiej samej postaci jak poprzednie.

  • Musi składać się z 6 wartości w jednym wierszu
  • ostatnia wartość to numer do odpowiedzi

Myślę że to wszystko jak na razie, w razie jakichkolwiek pytań - piszcie a na pewno postaram się pomóc. Miłego!

http://wklej.to/4ROuR

 

 

quest quiz begin
state start begin
 function pytanie()
  local q =
  {
   [0] = {""},
   [1] = {"Który przedmiot jest wymagany do ulepszenia Zatrutego Miecza na +9?", "Krwawa perła", "Sok z kwiatu brzoskwini", "Niebieska perła", "Gwoździe", 1},
   [2] = {"Gdy ranga postaci osiągnie 12000 punktów, będzie nosiła nazwę...", "Przyjazny", "Wrogi", "Nieprzyjemny", "Rycerski", 4},
   [3] = {"Od którego poziomu postaci można rozpocząć misję konną?", "od 25 poziomu", "od 12 poziomu", "od 30 poziomu", "Nie można jeździć konno", 1},
   [4] = {"Który poziom postaci jest wymagany do założenia gildii?", "wyższy niż 40 poziom", "maksymalnie 20 poziom", "wyższy niż 50 poziom", "wyższy niż 80 poziom", 1},
   [5] = {"Który przedmiot nie pasuje?", "Wachlarz", "Oceaniczny wachlarz", "Morelowy dzwon", "Miecz pełni księżyca", 4},
   [6] = {"U instruktura mocy zabójcy może szkolić się...", "Sura", "Wojownik", "Ninja", "Szaman", 3},
   [7] = {"Którą zbroję może ubrać wojownik...", "Czarna szata", "Upiorna zbroja płytowa", "Zbroja z czarnej stali", "Ubranie zabójcy", 3},
  }

  local los = math.random(1, table.getn(q))
  say("Pytanie:")
  say(q[los][1])
  say()
  local x = select(q[los][2], q[los][3], q[los][4], q[los][5])
   if x == q[los][6] then
 table.insert(pkt, 1, pkt[1]+1)
 table.insert(pyt, 1, pyt[1]+1)
  if pyt[1] >= 5 then
   say_title("BRAWO! Odpowiedziałeś poprawnie na wszystkie")
   say_title("zadane Ci pytania. Uzyskujesz dodatkowe punkty.")
   say_title("Gratulacje!")
   say()
   pc.setqf("punkty_quiz", pc.getqf("punkty_quiz")+pkt[1])
   pc.remove_item(50034, 1)
  else
   quiz.pytanie()
  end
   else
 say("Niestety, poprawna odpowiedź to: "..q[los][q[los][6]+1])
 say("Twoja liczba uzyskanych punktów: "..pkt[1])
 say()
 say_reward("Uzyskane punkty możesz wymienić na przedmioty")
 say_reward("znajdujące się u Dozorcy.")
 say()
  if pc.getqf("punkty_quiz")+pkt[1] > 0 then
   pc.setqf("punkty_quiz", pc.getqf("punkty_quiz")+pkt[1])
  elseif pc.getqf("punkty_quiz")+pkt[1] <= 0 then
   pc.delqf("punkty_quiz")
  end
 pc.remove_item(50034, 1)
   end
 end

 when 50034.use begin
  pkt = {"0"}
  pyt = {"0"}
  quiz.pytanie()
 end
end
end

 

umarł

Odnośnik do komentarza

Weź, dosłownie dzisiaj w autobusie, podczas jazdy do szkoły, myślałem o dokładnie takim samym queście xD

 

Myślałem jednak nad zrobieniem tego bardziej jako event. Jak coś przetestuję, to dam Ci znać czy to działa. Łapaj lajka i za chwilę zgłoszę się z efektami pracy :P

 

edit. jednak się nie da tak jak ja chciałem :<

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Odnośnik do komentarza

Da sie dodać więcej pytań : > ?

Jasne. Przerabiasz to w taki sposób:

local q =
{
    [0] = {""},
    [1] = {"Który przedmiot jest wymagany do ulepszenia Zatrutego Miecza na +9?", "Krwawa perła", "Sok z kwiatu brzoskwini", "Niebieska perła", "Gwoździe", 1},
    [2] = {"Gdy ranga postaci osiągnie 12000 punktów, będzie nosiła nazwę...", "Przyjazny", "Wrogi", "Nieprzyjemny", "Rycerski", 4},
    [3] = {"Od którego poziomu postaci można rozpocząć misję konną?", "od 25 poziomu", "od 12 poziomu", "od 30 poziomu", "Nie można jeździć konno", 1},
    [4] = {"Który poziom postaci jest wymagany do założenia gildii?", "wyższy niż 40 poziom", "maksymalnie 20 poziom", "wyższy niż 50 poziom", "wyższy niż 80 poziom", 1},
    [5] = {"Który przedmiot nie pasuje?", "Wachlarz", "Oceaniczny wachlarz", "Morelowy dzwon", "Miecz pełni księżyca", 4},
    [6] = {"U instruktura mocy zabójcy może szkolić się...", "Sura", "Wojownik", "Ninja", "Szaman", 3},
    [7] = {"Którą zbroję może ubrać wojownik...", "Czarna szata", "Upiorna zbroja płytowa", "Zbroja z czarnej stali", "Ubranie zabójcy", 3},
[8] = {"To jest pytanie nr 8", "odpowiedz nr1", "odpowiedz nr2", "odpowiedz nr3", "odpowiedz nr4", 2),
[9] = {"To jest pytanie nr 9", "odpowiedz nr1", "odpowiedz nr2", "odpowiedz nr3", "odpowiedz nr4", 2),
[10] = {"To jest pytanie nr 10", "odpowiedz nr1", "odpowiedz nr2", "odpowiedz nr3", "odpowiedz nr4", 2),
}

itd, itd..

 

z4z0l, powinieneś jeszcze dodawać do tablicy jakiejś, które pytania już były zadane. Bo szczerze mówiąc to można zdobyć 5 punktów nawet na jednym pytaniu :P Możesz spróbować tak to zrobić chociaż nie gwarantuję, że to zadziała:

local tab = {} -- tablica ktora uzupelniasz
local i = 1
local los = math.random(1, table.getn(q))
while tab[i] == los do
   if i == table.getn(tab) then
       i = 1
       los = math.random(1, table.getn(q))
   end
   i = i+1
end

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Odnośnik do komentarza

Weź, dosłownie dzisiaj w autobusie, podczas jazdy do szkoły, myślałem o dokładnie takim samym queście xD

Szczerze mówiąc, ja o tym myślałem jak zaczynałem zabawę z questami ale wtedy nie znałem nawet tablic a robienie tego na if'ach nie miałoby sensu :D

 

 

Myślałem jednak nad zrobieniem tego bardziej jako event. Jak coś przetestuję, to dam Ci znać czy to działa. Łapaj lajka i za chwilę zgłoszę się z efektami pracy

Jako event? Wyjaśnij na PW albo nawet tutaj to coś pomyślimy. Co do powtarzających się pytań, też spróbuję. Mówiłem już, że u mnie jest ich tylko 7 więc trzeba dodać więcej aby szansa na powtórzenie się pytania była znikoma - jednak postaram się ;)

 

@Wlodziu

nie trzeba - funkcje są wewnątrz questa i nie pobierają się one z questlibu więc nie trzeba nic dodawać ;)

 

umarł

Odnośnik do komentarza

bardzo ładny quescik tylko pytanie

 

Zrob funkcje zeby u dozorcy byly te punkty lub u kogos innego ;P tak jak pisze w quescie ze u dozorcy ..;P i zeby pokazywalo ile ma sie punktów i losowe najlepiej mysle by bylo nagrody ;P

 

Oczywiscie lajk za wstawke

 

 

COS W TYM STYLU

 

 

 

when 9005.click begin

say_title(""..mob_name(9005)..":")

say("Witaj, "..pc.get_name().."!")

say("Aktualnie posiadasz "..pc.getqf("points").." Punktow za Quiz.")

say("Co Cię interesuje?")

say("")

local s = select("Losuj Nagrody za Punkty", "Zamknij Okno")

 

 

Ale co ja ci bede tluamczyl jak sie znasz na tym :) Jesli zrobisz do konca masz u mnie limit lajkow ;D przez tydzien ;P

68888487823051815750.png

Odnośnik do komentarza

Tylko powiedz mi, co Ty byś tam chciał ;) Wymyśl coś od siebie, zaproponuj i napisz tutaj.

 

 

 

Hmmm Ten quest est bardzo ciekawy i przydatny

 

Poprostu np u npc Wonda rim gdy klikasz na na ta skrzyneczke masz questa i pisze zabaw sie w quiz lub wyjdz bo ak klikamy odrazu to nie mozna potem sie rozmyslic ;)

 

a wiec jesli odpowiemy na pytania dostajemy za to punkty niech one beda wirtualne poprostu .. i tego npc naprzyklad pisze aktualnie posiadasz tyle i tyle punktów ...

i tam sa opcje Losuj nagrody za punkty z quizu np i wyjdz jakd ajesz losowanie to rozne jakie tam dasz mozna to w kazdej chwili edytowac ;)

 

Poprostu jak wygrasz quiz z tej szaktulki to u tego npc aktualizuja ci sie punkty ;) .. :)

 

Lub innego questa u tego samego npc z tym wlasnie podesle ci taki malutki quescik psiany i mniej wiecej mysle ze bedziesz wiedzial oco chodzi :)

 

 

 

 

 

 

quest wymiana begin

state start begin

when 20086.click begin

say_title(""..mob_name(20086)..":")

say("Witaj! Jestem nadwornym handlarzem.")

say("W zamian za Kamienie Dusz mogę podarować ")

say("Ci talony. Talony będziesz mógł wymieniać ")

say("na Peleryny Męstwa. Jednak pamiętaj, że")

say("nie przyjmuję zwrotów! Każdy kamień ma inną wartość ")

say("")

say_reward("Za Kamień Dusz +0 możesz wytargować 1 Talon.")

say_reward("Za Kamień Dusz +1 możesz wytargować 2 Talony.")

say_reward("Za Kamień Dusz +2 możesz wytargować 3 Talony.")

say("")

set_state(_make)

end

end

 

state _make begin

when 20086.click begin

say_title(""..mob_name(20086)..":")

say("Witaj, "..pc.get_name().."!")

say("Aktualnie posiadasz "..pc.getqf("points").." Talonów.")

say("Co Cię interesuje?")

say("")

local s = select("Jak wymieniać Kamienie Dusz", "Losowanie", "Nic")

if s == 1 then

say_title(""..mob_name(20086)..":")

say("Aby wymienić Kamień Dusz, musisz mi go dać,")

say("a ja zamienię go na Talony. Kamienie Dusz możesz")

say("wymieniać tylko wtedy, gdy są one od +0 do +2.")

say("")

wait()

say_title(""..mob_name(20086)..":")

say_reward("Za Kamień Dusz +0 możesz wytargować 1 Talon.")

say_reward("Za Kamień Dusz +1 możesz wytargować 2 Talony.")

say_reward("Za Kamień Dusz +2 możesz wytargować 3 Talony.")

say("")

end

if s == 2 then

if pc.getqf("points") >= 25 then

say_title(""..mob_name(20086)..":")

say("Ile chcesz obstawić Talonów?")

say("")

local talony = select("25", "50", "75", "90", "Nie chcem obstawiać ")

if talony == 1 then

say_title(""..mob_name(20086)..":")

say("Hmm... obstawiając 25 Talonów możesz")

say("wylosować od 5 do 20 Peleryn Męstwa...")

say("Czy napewno chcesz losować Peleryny Męstwa?")

say("")

local t25 = select("Losuj", "Anuluj")

if t25 == 1 then

pc.setqf("points", pc.getqf("points")-25)

local tal25 = math.random(4)

if tal25 == 1 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 5 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 5)

elseif tal25 == 2 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 10 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 10)

elseif tal25 == 3 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 15 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 15)

elseif tal25 == 4 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 20 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 20)

end

end

end

if talony == 2 then

if pc.getqf("points") >= 50 then

say_title(""..mob_name(20086)..":")

say("Hmm... obstawiając 50 Talonów możesz")

say("wylosować od 20 do 35 Peleryn Męstwa...")

say("Czy napewno chcesz losować Peleryny Męstwa?")

say("")

local t25 = select("Losuj", "Anuluj")

if t25 == 1 then

pc.setqf("points", pc.getqf("points")-50)

local tal25 = math.random(4)

if tal25 == 1 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 20 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 20)

elseif tal25 == 2 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 25 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 25)

elseif tal25 == 3 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 30 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 30)

elseif tal25 == 4 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 35 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 35)

end

end

end

end

if talony == 3 then

if pc.getqf("points") >= 75 then

say_title(""..mob_name(20086)..":")

say("Hmm... obstawiając 75 Talonów możesz")

say("wylosować od 35 do 50 Peleryn Męstwa...")

say("Czy napewno chcesz losować Peleryny Męstwa?")

say("")

local t25 = select("Losuj", "Anuluj")

if t25 == 1 then

pc.setqf("points", pc.getqf("points")-75)

local tal25 = math.random(4)

if tal25 == 1 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 35 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 35)

elseif tal25 == 2 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 40 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 40)

elseif tal25 == 3 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 45 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 45)

elseif tal25 == 4 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 50 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 50)

end

end

end

end

if talony == 4 then

if pc.getqf("points") >= 50 then

say_title(""..mob_name(20086)..":")

say("Hmm... obstawiając 90 Talonów możesz")

say("wylosować od 50 do 65 Peleryn Męstwa...")

say("Czy napewno chcesz losować Peleryny Męstwa?")

say("")

local t25 = select("Losuj", "Anuluj")

if t25 == 1 then

pc.setqf("points", pc.getqf("points")-90)

local tal25 = math.random(4)

if tal25 == 1 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 50 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 50)

elseif tal25 == 2 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 55 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 55)

elseif tal25 == 3 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 60 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 60)

elseif tal25 == 4 then

say_title(""..mob_name(20086)..":")

say("Hmm... udało Ci się wylosować 65 Peleryn Męstwa.")

say("")

wait()

return

pc.give_item2(70038, 65)

end

end

end

end

end

if pc.getqf("points") < 25 then

say_title(""..mob_name(20086)..":")

say("Aby losowac musisz posiadac conajmniej 25 Talonów.")

say("")

end

end

end

when 20086.take begin

if item.vnum == 28030 or item.vnum == 28031 or item.vnum == 28032 or item.vnum == 28033 or item.vnum == 28034 or item.vnum == 28035 or item.vnum == 28036 or item.vnum == 28037 or item.vnum == 28038 or item.vnum == 28039 or item.vnum == 28040 or item.vnum == 28041 or item.vnum == 28042 or item.vnum == 28043 then

syschat("Otrzymałeś 1 Talon.")

item.remove()

pc.setqf("points", pc.getqf("points")+1)

elseif item.vnum == 28130 or item.vnum == 28131 or item.vnum == 28132 or item.vnum == 28133 or item.vnum == 28134 or item.vnum == 28135 or item.vnum == 28136 or item.vnum == 28137 or item.vnum == 28138 or item.vnum == 28139 or item.vnum == 28140 or item.vnum == 28141 or item.vnum == 28142 or item.vnum == 28143 then

syschat("Otrzymałeś 2 Talony.")

item.remove()

pc.setqf("points", pc.getqf("points")+2)

elseif item.vnum == 28230 or item.vnum == 28231 or item.vnum == 28232 or item.vnum == 28233 or item.vnum == 28234 or item.vnum == 28235 or item.vnum == 28236 or item.vnum == 28237 or item.vnum == 28238 or item.vnum == 28239 or item.vnum == 28240 or item.vnum == 28241 or item.vnum == 28242 or item.vnum == 28243 then

item.remove()

syschat("Otrzymałeś 3 Talony.")

pc.setqf("points", pc.getqf("points")+3)

end

end

end

end

 

 

 

@edit tylko akurat wm tym quescie przeciaga sie okreslone itemy za punkty wirtualne a w tym twoim mozna bylo zrobic tak ze za quiz np :) quest jest bardzo swietny ;)

ale byl by jeszcze swietniejszy jak bys go zrobil cos w tym stylu :) Pozdrawiam :)

68888487823051815750.png

Odnośnik do komentarza

np. jak serwer hard to itemy / zbroje / bizu 54/65+ ;d

 

 

 

no cos w tym stylu wcale nie musza byc tylko itemy kazdy to sb edytuje zalezy od serva

mozna dodac bizu dodaj jakies itemy i np bon na 24h np wartosc ataku plus 100 cos wtym stylu i oczywiscie jak dodac inne nagrody pewnie wiekszosc bedxie wiedziało jak dodac ale to tak dla zielonych

68888487823051815750.png

Odnośnik do komentarza

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum [Quest] Quiz   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...