Küldetés mit rontottam el? +1 kérdés

Indította ddani700, 2018-08-28, 22:00:11

Sziasztok!

Elkezdtem írni egy questet és nem tudom miért nem fut le már nem 1 küldit írtam meg így és működnek de ennél nem látom mi a probléma.
quest:
quest metinkokuldetes begin
state start begin
when 9010.chat."Metinkő Küldetés" begin
local a=select("Bánat metin 10db ~ 50Forint", "Kilépés")
if a == 1 then
say_title("Bánat metin 10db ~ 50Forint")
say("")
say("Semmisíts meg 10db Bánat metint!")
pc.setqf("banatmetin", 10)
q.set_counter("banatmetin", 10)
set_state(kuldi1)
notice("Semmisíts meg 10db Bánat metint! Jutalom : 50 Forint.")
end
if a == 2 then
return
end
end

state kuldi1 begin
when letter begin
send_letter("Bánat Metin megsemisítése")
end

when info or button begin
say_title("Bánat Metin megsemisítése")
say("")
say("Semmisíts meg 10db Bánat Metint!")
cnt = 10 - pc.getqf("banatmetin")
say_reward("Eddig megsemisítettél: "..cnt.." Bánat Metint.")
end

when 8001.kill begin
local count1 = pc.getqf("banatmetin") - 1
pc.setqf("banatmetin", count1)
q.set_counter("banatmetin", count1)
if count1 == 0 then
set_state(Jutalom1)
notice("Küldetés Teljesítve menj vissza (mob_name(9010)) -hez!")
end
end
end

state Jutalom1 begin
when 9010.chat."Bánat metin megsemisítve" begin
say_title("Bánat metin megsemisítve!")
say("")
say("Jutalmad:")
say_reward("50 Forint")
if pc.getqf("Jut1") == 0 then
pc.setqf("Jut1"), 1)
if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_money(50)
clear_letter()
end
end
end
end
end


+1 kérdés:

Démon toronyban hogy tudom csökkenteni a mobok létszámát? Mert nem találom sehol :/ de lehet rossz helyen keresem :D

A segítséget előre is köszönöm!

quest metinkokuldetes begin
state start begin
when 9010.chat."Metinkő Küldetés" begin
local a=select("Bánat metin 10db ~ 50Forint", "Kilépés")
if a == 1 then
say_title("Bánat metin 10db ~ 50Forint")
say("")
say("Semmisíts meg 10db Bánat metint!")
pc.setqf("banatmetin", 10)
q.set_counter("banatmetin", 10)
set_state(kuldi1)
notice("Semmisíts meg 10db Bánat metint! Jutalom : 50 Forint.")
elseif a == 2 then
return
end
end


Írd felul az elso stateig. Ha nem lenne jo, holnap ranezek, jelenleg telon vagyok.

Nem jó. :/

A questnek az első része az működik próbáltam. a második résznél van gond itt:
state kuldi1 begin
when letter begin
send_letter("Bánat Metin megsemisítése")
end

when info or button begin
say_title("Bánat Metin megsemisítése")
say("")
say("Semmisíts meg 10db Bánat Metint!")
cnt = 10 - pc.getqf("banatmetin")
say_reward("Eddig megsemisítettél: "..cnt.." Bánat Metint.")
end

when 8001.kill begin
local count1 = pc.getqf("banatmetin") - 1
pc.setqf("banatmetin", count1)
q.set_counter("banatmetin", count1)
if count1 == 0 then
set_state(Jutalom1)
notice("Küldetés Teljesítve menj vissza (mob_name(9010)) -hez!")
end
end
end

2018-08-29, 07:10:57 #3 Utolsó szerkesztés: 2018-08-29, 07:59:48 Szerző: Chookez™
Szia.


Volt azért 1-2 kisebb hiba a Questben, de javítottam őket és teszteltem is, most már működik.



quest metinkokuldetes begin
   state start begin
      when 9010.chat."Metinkő küldetés" begin
      local a=select("Bánat metin 10db ~ 50Forint", "Kilépés")
      if a == 1 then
         say_title("Bánat metin 10db ~ 50Forint:")
         say("")
         say("Semmisíts meg 10 db Bánat metint!")
         pc.setqf("banatmetin", 10)
         q.set_counter("banatmetin", 10)
         set_state(kuldi1)
         notice("Semmisíts meg 10 db Bánat metint! Jutalom: 50 Forint.")
      elseif a == 2 then
         return
      end
   end
end


   state kuldi1 begin
      when letter begin
         send_letter("Bánat Metin megsemmisítése")
      end


      when info or button begin
         say_title("Bánat Metin megsemmisítése")
         say("")
         say("Semmisíts meg 10 db Bánat Metint!")
         cnt = 10 - pc.getqf("banatmetin")
         say_reward("Eddig megsemmisítettél: "..cnt.." Bánat Metint.")
      end


      when 8001.kill begin
         local count1 = pc.getqf("banatmetin") - 1
         pc.setqf("banatmetin", count1)
         q.set_counter("banatmetin", count1)
         if count1 == 0 then
            set_state(Jutalom1)
            notice("Küldetés teljesítve menj vissza a "..(mob_name(9010)).."-hez!")
         end
      end
   end


   state Jutalom1 begin
      when 9010.chat."Bánat metin megsemmisítve" begin
         say_title("Bánat metin megsemmisítve!")
         say("")
         say("Jutalmad:")
         say_reward("50 Forint")
         if pc.getqf("Jut1") == 0 then
            pc.setqf("Jut1", 1)
            if pc.countitem(item) == 0 and pc.weapon != item then
               pc.change_money(50)
               clear_letter()
               set_state(complete)
            end
         end
      end
   end
   state complete begin
   end
end



Illetve, ha jól tudom Démon Tornyos mobok "regenjét" itt találod: game/share/data/dungeon/

Köszi működik csak 1 a gond vele hogy én ezt végtelenre szeretném csinálni tehát az npctől bármikor felveheted.

Szóval ugyan ezt a küldetést akárhányszor megtudd csinálni?

igen az lenne a cél azért nem úgy kezdtem megírni hogy villogjon a térképen meg jelezze az npcnél.
Oda mész kiválasztod majd melyiket szeretnéd és azt megcsinálod mert ezt még folytatom egészem a 90 -es metinig majd csak először működjön :)

Próbáld meg így:

quest metinkokuldetes begin
state start begin
when 9010.chat."Metinkő küldetés" begin
local a=select("Bánat metin 10db ~ 50Forint", "Kilépés")
if a == 1 then
say_title("Bánat metin 10db ~ 50Forint:")
say("")
say("Semmisíts meg 10 db Bánat metint!")
pc.setqf("banatmetin", 10)
q.set_counter("banatmetin", 10)
set_state(kuldi1)
notice("Semmisíts meg 10 db Bánat metint! Jutalom: 50 Forint.")
elseif a == 2 then
return
end
end
end


state kuldi1 begin
when letter begin
send_letter("Bánat Metin megsemmisítése")
end


when info or button begin
say_title("Bánat Metin megsemmisítése")
say("")
say("Semmisíts meg 10 db Bánat Metint!")
cnt = 10 - pc.getqf("banatmetin")
say_reward("Eddig megsemmisítettél: "..cnt.." Bánat Metint.")
end


when 8001.kill begin
local count1 = pc.getqf("banatmetin") - 1
pc.setqf("banatmetin", count1)
q.set_counter("banatmetin", count1)
if count1 == 0 then
set_state(Jutalom1)
notice("Küldetés teljesítve menj vissza a "..(mob_name(9010)).."-hez!")
end
end
end


state Jutalom1 begin
when 9010.chat."Bánat metin megsemmisítve" begin
say_title("Bánat metin megsemmisítve!")
say("")
say("Jutalmad:")
say_reward("50 Forint")
if pc.getqf("Jut1") == 0 then
pc.setqf("Jut1", 1)
if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_money(50)
clear_letter()
set_state(start)
end
end
end
end
end

2018-08-29, 10:53:32 #8 Utolsó szerkesztés: 2018-08-29, 11:08:44 Szerző: ddani700
nem jó :/ az jön be hogy teljesítve van.

Elvileg úgy néz ki így már működik (egyenlőre)
quest metinkokuldetes begin
state start begin
when 9010.chat."Metinkő küldetés" begin
local a=select("Bánat metin 10db ~ 50Forint", "Kilépés")
if a == 1 then
say_title("Bánat metin 10db ~ 50Forint:")
say("")
say("Semmisíts meg 10 db Bánat metint!")
pc.setqf("banatmetin", 10)
q.set_counter("banatmetin", 10)
set_state(kuldi1)
notice("Semmisíts meg 10 db Bánat metint! Jutalom: 50 Forint.")
elseif a == 2 then
return
end
end
end

state kuldi1 begin
when letter begin
send_letter("Bánat Metin megsemmisítése")
end

when info or button begin
say_title("Bánat Metin megsemmisítése")
say("")
say("Semmisíts meg 10 db Bánat Metint!")
cnt = 10 - pc.getqf("banatmetin")
say_reward("Eddig megsemmisítettél: "..cnt.." Bánat Metint.")
end

when 8001.kill begin
local count1 = pc.getqf("banatmetin") - 1
pc.setqf("banatmetin", count1)
q.set_counter("banatmetin", count1)
if count1 == 0 then
set_state(Jutalom1)
notice("Küldetés teljesítve!")
end
end
end

state Jutalom1 begin
when letter begin
send_letter("Bánat metin megsemmisítve!")
end

when info or button begin
say_title("Bánat Metin megsemisítve!")
say("")
say("Jutalmad:")
say_reward("50 Forint")
if pc.getqf("Jut1") == 0 then
pc.setqf("Jut1", 1)
if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_money(50)
clear_letter()
set_state(start)
end
end
end
end
end


most már nem tűnik el a küldetés tekercs :/ reloggal sem.

2018-08-29, 11:25:03 #9 Utolsó szerkesztés: 2018-08-29, 11:33:45 Szerző: Chookez™
Nézd meg így:

quest metinkokuldetes begin
state start begin
when login or enter begin
set_state(starting)
end
end


state starting begin
when 9010.chat."Metinkő küldetés" begin
local a=select("Bánat metin 10db ~ 50Forint", "Kilépés")
if a == 1 then
say_title("Bánat metin 10db ~ 50Forint:")
say("")
say("Semmisíts meg 10 db Bánat metint!")
pc.setqf("banatmetin", 10)
q.set_counter("banatmetin", 10)
set_state(kuldi1)
notice("Semmisíts meg 10 db Bánat metint! Jutalom: 50 Forint.")
elseif a == 2 then
return
end
end
end


state kuldi1 begin
when letter begin
send_letter("Bánat Metin megsemmisítése")
end


when info or button begin
say_title("Bánat Metin megsemmisítése")
say("")
say("Semmisíts meg 10 db Bánat Metint!")
cnt = 10 - pc.getqf("banatmetin")
say_reward("Eddig megsemmisítettél: "..cnt.." Bánat Metint.")
end


when 8001.kill begin
local count1 = pc.getqf("banatmetin") - 1
pc.setqf("banatmetin", count1)
q.set_counter("banatmetin", count1)
if count1 == 0 then
set_state(Jutalom1)
notice("Küldetés teljesítve menj vissza a "..(mob_name(9010)).."-hez!")
end
end
end


state Jutalom1 begin
when 9010.chat."Bánat metin megsemmisítve" begin
say_title("Bánat metin megsemmisítve!")
say("")
say("Jutalmad:")
say_reward("50 Forint")
if pc.getqf("Jut1") == 0 then
pc.setqf("Jut1", 1)
if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_money(50)
clear_letter()
set_state(starting)
end
end
end
end
end

Nem jó :/ továbbra is ott van hogy teljesítve és nem lép tovább nem kezdődik előlről.

a démon toronyban a mobok létszámát hogy csökkentem le?
mert van 2 fájl
deviltower2_2_regen.txt
g 189 424 10 10 0 0 180s 100 1 11007
g 202 424 10 10 0 0 180s 100 1 11008
g 203 429 10 10 0 0 180s 100 1 11005
g 190 432 10 10 0 0 180s 100 1 11007
g 187 438 10 10 0 0 180s 100 1 11008
g 214 438 10 10 0 0 180s 100 1 11008
g 188 443 10 10 0 0 180s 100 1 11009
g 169 453 10 10 0 0 180s 100 1 11007
g 200 458 10 10 0 0 180s 100 1 11009
g 214 461 10 10 0 0 180s 100 1 11009
g 183 465 10 10 0 0 180s 100 1 11009
g 201 465 10 10 0 0 180s 100 1 11005
g 188 470 10 10 0 0 180s 100 1 11005
g 189 470 10 10 0 0 180s 100 1 11005
g 183 472 10 10 0 0 180s 100 1 11008
g 182 475 10 10 0 0 180s 100 1 11007
g 122 386 10 10 0 0 180s 100 1 11004
g 145 386 10 10 0 0 180s 100 1 11004
g 155 387 10 10 0 0 180s 100 1 11003
g 114 388 10 10 0 0 180s 100 1 11001
g 196 390 10 10 0 0 180s 100 1 11004
g 106 393 10 10 0 0 180s 100 1 11001
g 208 394 10 10 0 0 180s 100 1 11002
g 107 395 10 10 0 0 180s 100 1 11004
g 210 396 10 10 0 0 180s 100 1 11003
g 121 404 10 10 0 0 180s 100 1 11004
g 217 405 10 10 0 0 180s 100 1 11002
g 134 409 10 10 0 0 180s 100 1 11002
g 123 450 10 10 0 0 180s 100 1 11004
g 117 458 10 10 0 0 180s 100 1 11003
g 143 473 10 10 0 0 180s 100 1 11004
g 179 392 10 10 0 0 180s 100 1 11006
g 153 399 10 10 0 0 180s 100 1 11006
g 184 408 10 10 0 0 180s 100 1 11006
g 204 411 10 10 0 0 180s 100 1 11003
g 140 414 10 10 0 0 180s 100 1 11006
g 177 415 10 10 0 0 180s 100 1 11006
g 156 428 10 10 0 0 180s 100 1 11003
g 147 440 10 10 0 0 180s 100 1 11003
g 140 453 10 10 0 0 180s 100 1 11006
g 152 459 10 10 0 0 180s 100 1 11003


deviltower2_regen.txt
ga 189 424 10 10 0 0 0s 100 1 1007
ga 202 424 10 10 0 0 0s 100 1 1008
ga 203 429 10 10 0 0 0s 100 1 1005
ga 190 432 10 10 0 0 0s 100 1 1007
ga 187 438 10 10 0 0 0s 100 1 1008
ga 214 438 10 10 0 0 0s 100 1 1008
ga 188 443 10 10 0 0 0s 100 1 1009
ga 169 453 10 10 0 0 0s 100 1 1007
ga 200 458 10 10 0 0 0s 100 1 1009
ga 214 461 10 10 0 0 0s 100 1 1009
ga 183 465 10 10 0 0 0s 100 1 1009
ga 201 465 10 10 0 0 0s 100 1 1005
ga 188 470 10 10 0 0 0s 100 1 1005
ga 189 470 10 10 0 0 0s 100 1 1005
ga 183 472 10 10 0 0 0s 100 1 1008
ga 182 475 10 10 0 0 0s 100 1 1007
ga 122 386 10 10 0 0 0s 100 1 1004
ga 145 386 10 10 0 0 0s 100 1 1004
ga 155 387 10 10 0 0 0s 100 1 1003
ga 114 388 10 10 0 0 0s 100 1 1001
ga 196 390 10 10 0 0 0s 100 1 1004
ga 106 393 10 10 0 0 0s 100 1 1001
ga 208 394 10 10 0 0 0s 100 1 1002
ga 107 395 10 10 0 0 0s 100 1 1004
ga 210 396 10 10 0 0 0s 100 1 1003
ga 121 404 10 10 0 0 0s 100 1 1004
ga 217 405 10 10 0 0 0s 100 1 1002
ga 134 409 10 10 0 0 0s 100 1 1002
ga 123 450 10 10 0 0 0s 100 1 1004
ga 117 458 10 10 0 0 0s 100 1 1003
ga 143 473 10 10 0 0 0s 100 1 1004
ga 179 392 10 10 0 0 0s 100 1 1006
ga 153 399 10 10 0 0 0s 100 1 1006
ga 184 408 10 10 0 0 0s 100 1 1006
ga 204 411 10 10 0 0 0s 100 1 1003
ga 140 414 10 10 0 0 0s 100 1 1006
ga 177 415 10 10 0 0 0s 100 1 1006
ga 156 428 10 10 0 0 0s 100 1 1003
ga 147 440 10 10 0 0 0s 100 1 1003
ga 140 453 10 10 0 0 0s 100 1 1006
ga 152 459 10 10 0 0 0s 100 1 1003


egészen 11 ig.


2018-08-29, 13:05:15 #11 Utolsó szerkesztés: 2018-08-29, 13:15:27 Szerző: K3zX
Logikai hiba van a végén:
Idézif pc.getqf("Jut1") == 0 then
            pc.setqf("Jut1", 1)
            if pc.countitem(item) == 0 and pc.weapon != item then

A Jut1-es qf egyáltalán nem kell, hisz többször meg lehet csinálni. De ez megakadályozza.
Az utolsó sor mi? Nincs meghatározva az item változó amúgy, de szerintem ez a sor sem kell egyáltalán, gondolom a give_basic_weapon.questből került valahogy ide.

Tehát legyen így a vége:

state Jutalom1 begin
when letter begin
send_letter("Bánat metin megsemmisítve!")
end

when info or button begin
say_title("Bánat Metin megsemisítve!")
say("")
say("Jutalmad:")
say_reward("50 Forint")
pc.change_money(50)
clear_letter()
set_state(start)
end
end





DT-vel kapcsolatban: Mondjuk kitörlöd minden 2-at a sorból? Vagy ahogy akarod igazából.
Akár group.txt-ben is csökkentheted az egy csoportban lévő mobok számát.
Csak arra figyelj hogy bosst ne törölj, a többi "nem számít".