Problema quest pvp.

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
mayu27
Nou Venit

Nou Venit
Mesaje: 30
Membru din: 19 Iun 2014, 13:57
Server: 1
Regat: Jinno
Aprecieri: 9  
Mulţumiri: 0
Medalii

Salut am scris un quest pvp ce ofera un item si anumite bonusuri pe killuri.
Problema este urmatoarea, el merge perfect, dar vreau sa il fac sa se puna numai daca omori pe cineva de un anumit nivel.
am incercat :

Cod: Selectaţi tot

        when kill with npc.is_pc() and npc.level_get() >= 50   begin   

si

Cod: Selectaţi tot

        when kill with npc.is_pc() and npc.level >= 50   begin   
Nu a mers niciunul, nu a dat eroare la compilare in FreeBSD, dar nu functiona in joc.
Cand am scris doar

Cod: Selectaţi tot

        when kill with npc.is_pc()    begin  
A functionat perfect.


O alta intrebare mica daca m-ati putea ajuta, cum pot face un item sa se stackeze ?
Avatar utilizator
DaRealPain
Fost Helper

Fost Helper
Mesaje: 1044
Membru din: 05 Oct 2014, 01:38
Server: Shiro2
Regat: Shinsoo
Aprecieri: 106  
Mulţumiri: 252  
Medalii


La prima intrebare: foloseste functiunea asta:
[code]when kill begin
if npc.is_pc() and npc.level >= 90 then
local count = pc.getqf("state") - 1
if count <= 100 then
pc.setqf("state", count)
q.set_counter("kills", -count)[/code]

La a doua intrebare:
In Navicat cauti un Item si te uiti mai la dreapta pana ce dai de coloana "Flag"
Acolo pui un 4

( Daca vrei ca Itemele sa le poti arunca pui la Antiflag 0 )
Afișează semnătura
Avatar utilizator
mayu27
Nou Venit

Nou Venit
Mesaje: 30
Membru din: 19 Iun 2014, 13:57
Server: 1
Regat: Jinno
Aprecieri: 9  
Mulţumiri: 0
Medalii

Cod: Selectaţi tot

quest neopvp begin    
    state start begin    
        when login or levelup with pc.get_level() >= 30 and pc.getqf("level") == 0 begin
            say("Hello.")
            say("You have reached level 30.")
            say("Congratulations!")
            say("Now we will see if you can fight.")
            say("You have to kill players")
            say("For each victory, you will receive points.")
            say("The more points you have, the bigger the rewards.")
	    say("You will also receive dragon coins.")
            say("Dragon coins can be traded with the GM in exchange for items, if you have enough !")
            say_reward("50 PvP points = + 3% vs demi-humans")
            say_reward("100 PvP points = + 500 hp")
            say_reward("200 PvP points = + 5% vs demi-humans")
            say_reward("500 PvP points = + 1500 hp")
            pc.setqf("level", 1)
        end
       when kill begin
            if npc.is_pc() and npc.level >= 50 then 
            local count = pc.getqf("state") - 1
            if count <= 100 then
                pc.setqf("state", count)
                q.set_counter("kills", -count)     
            chat("Ai obtinut un punct.")
            chat("Acum ai : "..pc.getqf("kill_punkte").." puncte.")
            pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
            if pc.getqf("kill_punkte") == 50 then
                affect.add_collect(apply.ATTBONUS_HUMAN,3,60*60*24*365*60)
                pc.give_item2(1, 50)
             elseif pc.getqf("kill_punkte") == 100 then
                affect.add_collect(apply.MAX_HP,500,60*60*24*365*60)
                pc.give_item2(1, 100) 
             elseif pc.getqf("kill_punkte") == 200 then
                affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
                pc.give_item2(1, 200)
             elseif pc.getqf("kill_punkte") == 500 then
                affect.add_collect(apply.MAX_HP,1500,60*60*24*365*60)
                pc.give_item2(1, 500)
             default pc.give_item2(1, 5)
            end
        end
    end
end
asta e programul , am adaugat ce ai zis tu. Imi da eroare la compilare : " syntax error :
[string "start"]:27: '=' expected near 'pc'
Avatar utilizator
mayu27
Nou Venit

Nou Venit
Mesaje: 30
Membru din: 19 Iun 2014, 13:57
Server: 1
Regat: Jinno
Aprecieri: 9  
Mulţumiri: 0
Medalii

nimeni ?
Avatar utilizator
DaRealPain
Fost Helper

Fost Helper
Mesaje: 1044
Membru din: 05 Oct 2014, 01:38
Server: Shiro2
Regat: Shinsoo
Aprecieri: 106  
Mulţumiri: 252  
Medalii

Cod: Selectaţi tot

quest neopvp begin    
    state start begin    
        when login or levelup with pc.get_level() >= 30 and pc.getqf("level") == 0 begin
            say("Hello.")
            say("You have reached level 30.")
            say("Congratulations!")
            say("Now we will see if you can fight.")
            say("You have to kill players")
            say("For each victory, you will receive points.")
            say("The more points you have, the bigger the rewards.")
       say("You will also receive dragon coins.")
            say("Dragon coins can be traded with the GM in exchange for items, if you have enough !")
            say_reward("50 PvP points = + 3% vs demi-humans")
            say_reward("100 PvP points = + 500 hp")
            say_reward("200 PvP points = + 5% vs demi-humans")
            say_reward("500 PvP points = + 1500 hp")
            pc.setqf("level", 1)
        end
       when kill begin
            if npc.is_pc() and npc.level >= 50 then 
            local count = pc.getqf("state") - 1
            if count <= 100 then
                pc.setqf("state", count)
                q.set_counter("kills", -count)     
            chat("Ai obtinut un punct.")
            chat("Acum ai : "..pc.getqf("kill_punkte").." puncte.")
            pc.setqf("kill_punkte"), pc.getqf("kill_punkte")+1)
            if pc.getqf("kill_punkte") == 50 then
                affect.add_collect(apply.ATTBONUS_HUMAN,3,60*60*24*365*60)
                pc.give_item2(1, 50)
             elseif pc.getqf("kill_punkte") == 100 then
                affect.add_collect(apply.MAX_HP,500,60*60*24*365*60)
                pc.give_item2(1, 100) 
             elseif pc.getqf("kill_punkte") == 200 then
                affect.add_collect(apply.ATTBONUS_HUMAN,5,60*60*24*365*60)
                pc.give_item2(1, 200)
             elseif pc.getqf("kill_punkte") == 500 then
                affect.add_collect(apply.MAX_HP,1500,60*60*24*365*60)
                pc.give_item2(1, 500)
             default pc.give_item2(1, 5)
            end
        end
    end
end
Incearca cu asta ^.^
Afișează semnătura
Avatar utilizator
mayu27
Nou Venit

Nou Venit
Mesaje: 30
Membru din: 19 Iun 2014, 13:57
Server: 1
Regat: Jinno
Aprecieri: 9  
Mulţumiri: 0
Medalii

Functioneaza, il compileaza, dar imediat dupa primesc "assertion failure : nested==0" si da abort
Edit : erau doua functii ce mai trebuiau inchise, dar iar nu merge misiunea decat daca sterg partea cu "and npc.level >=50 "
Avatar utilizator
Mikkelsen
Mister Just4Metin

Mister Just4Metin
Mesaje: 2353
Membru din: 06 Mar 2014, 23:53
Server: ETH
Regat: Jinno
Aprecieri: 11  
Mulţumiri: 40  
 Contact:
Medalii

Mai bine ia un quest pvp de pe forum care merge 100% şi modici tu în el ce trebuie!
Degeaba te chinui să îl faci pe ăla şî să tot ai probleme cu el mai bine iei unul gata făcut!

[ Mesaj scris via Android ] Imagine
Avatar utilizator
mayu27
Nou Venit

Nou Venit
Mesaje: 30
Membru din: 19 Iun 2014, 13:57
Server: 1
Regat: Jinno
Aprecieri: 9  
Mulţumiri: 0
Medalii

Din cate am inteles pur si simplu nu este o metoda sa determini nivelul celui pe care l-ai omorat decat daca modifici functiile jocului.
Închis
Răspunsuri
6
Vizualizări
400
Răspunsuri
4
Vizualizări
222
Răspunsuri
4
Vizualizări
413
Răspunsuri
3
Vizualizări
736

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 75 vizitatori