Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Quest] Test wiedzy


Rekomendowane odpowiedzi

Opublikowano

Witam. Ponownie udostępniam quest.

 

Na czym polega?

 

Idziemy do NPC otrzymujemy określoną ilość pytań, które są losowane aby zapobiec farmieniu na quescie, w zależności od ilości poprawnych odpowiedzi otrzymamy odpowiednią nagrodę.

 

Konfiguracja:

 

- Zawarta w quescie w komentarzu

 

Quest na wklej.to

 

hasło:

mpcforum

 

quest:

http://wklej.to/n2xLi

 

Quest w CODE:

 

 

---------------------------------------------------
---------------------------------------------------
------Quest stworzył DeXi (Dexik mpcforum.pl)------
------Uszanuj moją pracę  I nie usuwaj tego------
---------------------------------------------------
---------------------------------------------------
--[[
KONFIGURACJA:
 1. local ile_pytan = 22 - ustal z jakiej puli mają być losowane pytania
 2. local dobrze = "Brawo! To prawidłowa odpowiedź.[ENTER]" - komunikat o prawidłowej odpowiedzi
 3. local zle = "Niestety... Odpowiedź była błędna.[ENTER]" - komunikat o błędnej odpowiedzi
 4. local pytania = {
 {"Pytanie 1: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 2: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 3: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 4: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 5: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 6: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 7: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 8: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 9: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 10: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 11: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 12: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 13: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 14: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 15: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 16: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 17: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 18: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 19: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 20: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 21: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 22: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 }

 Ustal pytania, liczba 1/2 na końcu określa która z podanych odpowiedzi jest prawidłowa.

 5. local ilosc = 10 - Określa ile pytań zada nam NPC

 6. local nagrody = {
 [1] = "Otrzymałeś Małż x1",
 [2] = "Otrzymałeś Małż x3",
 [3] = "Otrzymałeś Małż x5 + Biała Perła",
 [4] = "Otrzymałeś Biała Perła + Niebieska Perła",
 [5] = "Otrzymałeś Biała Perła + Niebieska Perła + Krwawa Perła",
 [6] = "Otrzymałeś 2x Biała Perła + 2x Niebieska Perła + 2x Krwawa Perła",
 }

 Komunikaty o nagrodach

 7.

 local opcja1 = {
 {27987, 1},
 }	
 local opcja2 = {
 {27987,3},
 }	
 local opcja3 = {
 {27987, 5},
 {27992, 1},
 }	
 local opcja4 = {
 {27992, 1},
 {27993, 1},
 }	
 local opcja5 = {
 {27992, 1},
 {27993, 1},
 {27994, 1},
 }	
 local opcja6 = {
 {27992, 2},
 {27993, 2},
 {27994, 2},
 }

 Nagrody w sześciu progach punktowych

 8. Należy dodać do questlib.lua:

 function say_blekit(name) say(color256(0, 255, 255)..name..color256(196, 196, 196)) end
 function say_pistacja(name) say(color256(159, 251, 136)..name..color256(196, 196, 196)) end
 function say_limonka(name) say(color256(147, 246, 0)..name..color256(196, 196, 196)) end
 function say_red(name) say(color256(255, 0, 0)..name..color256(196, 196, 196)) end

 9. Należy dopisać do quest_functions

 say_limonka
 say_pistacja
 say_red
 say_blekit
]]--
quest zgadywanka begin
state start begin
when login or levelup with pc.level >= 50 begin
set_state(information)
end
end
state information begin
when letter begin
local v = find_npc_by_vnum(9003)
if v != 0 then
target.vid("__TARGET__", v, "Test wiedzy - Poziom 50")
end
send_letter("Test wiedzy - Poziom 50")
end
when button or info begin
say_title("Test wiedzy - Poziom 50")
say("")
say("Handlarka ma do Ciebie kilka pytań,")
say("jeśli odpowiesz na nie prawidłowo czeka ")
say("na Ciebie nagroda.")
say("")
end
when __TARGET__.target.click or 9003.chat."Test wiedzy - Poziom 50" begin
local ilosc = 10
local punkty = pc.getqf("punkty")
target.delete("__TARGET__")
say_title("Test wiedzy - Poziom 50")
say("")
say("Witaj. Mam propozycję. Zadam Ci kilka pytań.")
say("W zależności od ilości poprawnych odpowiedzi,")
say("otrzymasz adekwatną nagrodę.")
say("Chcesz spróbować swoich sił?")
say("")
say_reward("Nie będziesz mógł zmienić decyzji!")
local s = select("Pewnie", "Nie, to nudne")
if s == 2 then
 say_title("Test wiedzy - Poziom 50")
 say("")
 say("No dobra, bez łaski...")
 say("Nie potrafisz się bawić.")
 clear_letter()
 set_state(complete)
elseif s == 1 then
 pc.setqf("punkty", 0)
 local punkty = pc.getqf("punkty")
 say_title("Test wiedzy - Poziom 50")
 say("")
 say("Dobrze więc słuchaj.")
 say("Zadam Ci teraz kilka pytań.")
 say("")
 say_pistacja("Ilość pytań: "..ilosc..".")
 wait()
 ---------------------------------------------------------------------
 local ile_pytan = 22
 local dobrze = "Brawo! To prawidłowa odpowiedź.[ENTER]"
 local zle = "Niestety... Odpowiedź była błędna.[ENTER]"
 local pytania = {
 {"Pytanie 1: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 2: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 3: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 4: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 5: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 6: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 7: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 8: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 9: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 10: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 11: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 12: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 13: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 14: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 15: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 16: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 17: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 18: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 19: Test", "Odpowiedz prawidlowa", "Odpowiedz bledna", 1},
 {"Pytanie 20: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 21: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 {"Pytanie 22: Test", "Odpowiedz bledna", "Odpowiedz prawidlowa", 2},
 }
 ----------------------------------------------------------------------

 for x = 1, ilosc do
 repeat
 i = number(1, ile_pytan)
 until pytania[i][5] != 1
 pytania[i][5] = 1
 say_reward("Pytanie"..x..".")
 if x == 1 then
 say_title("Test wiedzy - Poziom 50")
 say("Zaczynamy:")
 say("")
 say_blekit(pytania[i][1])
 say("")
 else
 say("Następne pytanie:")
 say_blekit(pytania[i][1])
 say("")
 end
 local o = select(pytania[i][2], pytania[i][3])
 if pytania[i][4] == 1 then
 if o == 1 then
	 say_title("Test wiedzy - Poziom 50")
	 say("")
	 say_pistacja(dobrze)
	 pc.setqf("punkty", pc.getqf("punkty")+1)
	 say("")
 elseif o == 2 then
	 say_title("Test wiedzy - Poziom 50")
	 say("")
	 say_red(zle)
	 say("")
 end
 elseif pytania[i][4] == 2 then
 if o == 2 then
	 say_title("Test wiedzy - Poziom 50")
	 say("")
	 say_pistacja(dobrze)
	 pc.setqf("punkty", pc.getqf("punkty")+1)
	 say("")		
 elseif o == 1 then
	 say_title("Test wiedzy - Poziom 50")
	 say("")
	 say_red(zle)
	 say("")
 end
 end
 end
 local procent = pc.getqf("punkty") / ilosc * 100
 wait()
 say_title("Test wiedzy - Poziom 50")
 say("To już koniec.")
 say("")
 say_limonka("Ilość poprawnych odpowiedzi: "..pc.getqf("punkty")..".")
 say_limonka("Procent prawidłowych odpowiedzi: "..procent.."%")
 say("")
 say("Przejdźmy do nagród.")
 wait()
 say_title("Test wiedzy - Poziom 50")
 say("Zobaczmy...")
 say("")	
 local opcja = opcja0
 local nagrody = {
 [1] = "Otrzymałeś Małż x1",
 [2] = "Otrzymałeś Małż x3",
 [3] = "Otrzymałeś Małż x5 + Biała Perła",
 [4] = "Otrzymałeś Biała Perła + Niebieska Perła",
 [5] = "Otrzymałeś Biała Perła + Niebieska Perła + Krwawa Perła",
 [6] = "Otrzymałeś 2x Biała Perła + 2x Niebieska Perła + 2x Krwawa Perła",
 }	
 local opcja1 = {
 {27987, 1},
 }	
 local opcja2 = {
 {27987,3},
 }	
 local opcja3 = {
 {27987, 5},
 {27992, 1},
 }	
 local opcja4 = {
 {27992, 1},
 {27993, 1},
 }	
 local opcja5 = {
 {27992, 1},
 {27993, 1},
 {27994, 1},
 }	
 local opcja6 = {
 {27992, 2},
 {27993, 2},
 {27994, 2},
 }
 --[[ Uzupełniamy progi procentowe
 W zależności od ilości procent wpisuemy z którego miejsca
 w tablicy ma wyświetlić nagrody i z której tablicy ma przydzielić nagrody
 ]]--
 if procent <= 10 then
 say_limonka(nagrody[1])
 opcja = opcja1
 elseif procent > 10 and procent <= 25 then
 say_limonka(nagrody[2])
 opcja = opcja2
 elseif procent > 25 and procent <= 40 then
 say_limonka(nagrody[3])
 opcja = opcja3
 elseif procent > 40 and procent <= 75 then
 say_limonka(nagrody[4])
 opcja = opcja4
 elseif procent > 75 and procent <= 90 then
 say_limonka(nagrody[5])
 opcja = opcja5
 elseif procent > 90 then
 say_limonka(nagrody[6])
 opcja = opcja6
 end	
 for i = 1, table.getn(opcja) do
 pc.give_item2(opcja[i][1], opcja[i][2])
 end	
 clear_letter()
 set_state("complete")
end
end
end
state complete begin
end
end	

 

 

 

Zapraszam do testowania. Pozdrawiam

Opublikowano

Widzę w tym wiele podobieństw, chociażby główny motyw - chodzi w nich o to samo. Oczywiście, że jest to inaczej napisane, i u Ciebie jest inny system rozdawania nagród oraz losowania pytań, ale nadal chodzi o to samo :) Nie mniej jednak, dobra robota.

 

umarł

Opublikowano

Rozumiem, ale pierwszy raz widzę twój temat i w sumie ten quest to jeden z moich pierwszych bardziej rozwiniętych. Mogę Ci zagwarantować, że nie wzorowałem się na twoim :)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...