Problema Arena PvP

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

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

*Problemă: Questul pentru Arena PvP nu functioneaza.
*Tipologie server: PvP PvM
*Resursă folosită:
*ServerFiles utilizat: Happiness
*Syserr:
*Poză:
*Detalii suplimentare:

Cod: Selectaţi tot

quest arena_manager begin
	state start begin
		when 20017.chat."Lupta in arena" begin
			if game.get_event_flag("arena_close") > 0 then
				say_title("Yu-Hwan:")
				say("arenaurile de lupta au fost distruse")
				say("Intr-un mare razboi.")				
				return
			end
			if not npc.lock() then
				say_title("Yu-Hwan:")
				say("Altcineva este bagat in lupta.")
				return
			end
			local useMinLevel = 1
			if pc.get_level() < useMinLevel then
				say_title("Yuhwan:")
				say("Nivelul minim este "..useMinLevel.." nu pot sa va bag in arena")
				say("Imi pare rau revina mai tarziu.")
				npc.unlock()
				return
			else
				say_title("Yuhwan:")
				say("Spune-mi numele persoanei cu care")
				say("vrei sa te antrenezi.")
				local sname = input()
				if sname == "" then
					say_title("Yu-Hwan:")
					say("Nu stii cu cine vrei sa te lupti")
					say("serios?")
					npc.unlock()
					return
				else
					say_title("Yu-Hwan:")
					say(""..pc.name.." vrea sa se lupte cu "..sname.." ")
					wait("")
					local opp_vid = find_pc_by_name(sname)
					if opp_vid == 0 then
						say_title("Yu-Hwan:")
						say(sname.." nu este online.")
						npc.unlock()
						return
					elseif opp_vid == pc.get_vid() then
						say_title("Yu-Hwan:")
						say("Tu nu vrei cu adevarat sa")
						say("te bati cu altii?")
						npc.unlock()
						return
					end
                    local old = pc.select(opp_vid)
                    local opp_level = pc.get_level()
                    pc.select(old)
                    if opp_level < useMinLevel then
						say_title("Yuhwan")          
                        say("Adversarul tau inca nu are nivelul 25!")
                        npc.unlock()
                        return
                    end
                    if not npc.is_near_vid(opp_vid, 10) then
                        say_title("Yuhwan")
                        say(""..sname.." nu este in apropierea ta.")
                        npc.unlock()
                        return
                    end
                    local a = arena.is_in_arena(opp_vid)
                    if a == 0 then
                        say_title("Yuhwan:")
                        say(""..sname.." deja lupta cu cineva.")
                        npc.unlock()
                        return
                    end
                    say_title("Decizia Finala")
                    say(""..pc.name.." il asteapta pe "..sname.."")
                    say("sa accepte duelul.")
                    local agree = confirm(opp_vid, "Vrei sa lupti impotriva lui "..pc.name.." ?", 30)
                    if agree!= CONFIRM_OK then
						say_title("Yuhwan:")
                        say(""..sname.." a refuzat lupta.")
                        npc.unlock()
                        return
                    end
                    s = arena.start_duel(sname, 3)
                    if s == 0 then
                        say_title("Yu-Hwan:")
                        say("A intervenit o probleme neasteptata.")
                        say("Incercati din nou mai tarziu!")
                    elseif s == 2 then
                        say_title("Yu-Hwan:")
                        say("Se lupta cu altcineva.")
                    elseif s == 3 then
                        say_title("Yu-Hwan:")
                        say("arenaul de antrenament este plin in acest moment.")
                        say("Va rugam sa incerci mai tarziu.")
                    end					
				end				
			end
		end		
		when 20017.chat."Urmariti un duel" begin
            local g = arena.get_duel_list()
            local arena_name = {}
            local arena_observer = {}
            table.foreachi(g,
                function(n, p)
                arena_name[n] = p[1].." impotriva "..p[2]
                arena_observer[n] = { p[3], p[4], p[5] }
                end
            )
            table.insert(arena_name, "Inchide")
            table.insert(arena_observer, 0)
            local count = table.getn(g)
            if count == 0 then
				say_title("Yu-Hwan:")
				say("In momentul de fata nimeni nu  lupta.")
				return
            else
                say_title("Yu-Hwan:")
                say("Acum se lupta "..count.." .")
                wait()
            end
			if table.getn(g)!= 0 then
                local s = select_table(arena_name)
				if table.getn(arena_observer) == s then
                    return
                end
				if table.getn(arena_observer) >= s then
                    arena.add_observer(arena_observer[s][1], arena_observer[s][2], arena_observer[s][3])
                end
            end
        end
    end
end
Questul de mai sus in mare parte ar functiona, dar ceva lipseste si scoate playerii din harta inainte de a ajunge acolo. Daca playerul incearca sa provoace alt player la duel iar playerul respectiv accepta, sunt trimisi amandoi in Arena dar inainte de a ajunge acolo, cel care a provocat ramane cu ecranul negru blocat, iar celalalt e trimis si el in Arena, dar imediat dupa e trimis in alta harta. Ceva nu face legatura intre harta si playeri, zici ca odata ajunsi in Arena PvP sunt pe alt server.
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Questul acela nu este funcțional, de exemplu pe serverul meu nici nu mă teleportează in mapa chiar daca o am pe server. Încearcă să faci tu unul de genul, daca nu, caută pe forumuri

[ Postat de pe Android ] Imagine
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Am gasit un quest in engleza si nu ar fi o problema de traducere, dar am nevoie de urmatoarele functii pentru:
FUNCTION fight_playerless()
FUNCTION init_next_round()
FUNCTION distribute_bets(winner_name)
FUNCTION give_jackpot_gold(name,amount)
FUNCTION local_pc_warp(name,x,y)
FUNCTION setqf_by_name(name,flag,value)
FUNCTION getqf_by_name(name,flag)
FUNCTION get_attender_id_by_name(name)
FUNCTION get_my_attender_id()
FUNCTION get_duel_partner()
FUNCTION get_fight_mode()
FUNCTION set_fight_mode(fmode)
FUNCTION get_arena()
FUNCTION set_arena(id)
FUNCTION ask_fight(asker,target)
Avatar utilizator
Lion
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 508
Membru din: 03 Aug 2019, 22:12
Server: Honor2
Regat: Chunjo
Aprecieri: 135  
Mulţumiri: 122  
Medalii

Ai pus bine coordonatele mapei? Ai adaugat bine mapa?

[ Postat de pe Android ] Imagine
Imagine
Oamenii sunt animale
Leul este regele animalelor
Deci sunt regele vostru drq
Afișează semnătura
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

DragonA7X scrie: ↑27 Oct 2019, 15:56 Am gasit un quest in engleza si nu ar fi o problema de traducere, dar am nevoie de urmatoarele functii pentru:
FUNCTION fight_playerless()
FUNCTION init_next_round()
FUNCTION distribute_bets(winner_name)
FUNCTION give_jackpot_gold(name,amount)
FUNCTION local_pc_warp(name,x,y)
FUNCTION setqf_by_name(name,flag,value)
FUNCTION getqf_by_name(name,flag)
FUNCTION get_attender_id_by_name(name)
FUNCTION get_my_attender_id()
FUNCTION get_duel_partner()
FUNCTION get_fight_mode()
FUNCTION set_fight_mode(fmode)
FUNCTION get_arena()
FUNCTION set_arena(id)
FUNCTION ask_fight(asker,target)

Le adaugi in quest functions

[ Postat de pe Android ] Imagine
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Functiile au fost puse in lista, dar nu am nevoie si de quest_lib.lua pentru ele? Iar harta e pe 26.
Avatar utilizator
Kidro
Membru Club

Membru Club
Mesaje: 2487
Membru din: 29 Aug 2019, 16:49
Aprecieri: 331  
Mulţumiri: 5190  
Discord: Copiază ID
Medalii

Nu ai nevoie de niciun questlib daca ai pus funcțiile și nu ți da nicio eroare la ./qc atunci ar trebui sa funcționeze cum trebuie

[ Postat de pe Android ] Imagine
Avatar utilizator
DragonA7X
Nivel 3

Nivel 3
Mesaje: 434
Membru din: 06 Apr 2017, 10:41
Aprecieri: 100  
Mulţumiri: 3  
Medalii

Am incercat si nu functioneaza, iar eroarea pe care am postat-o mai sus ramane aceeasi, indiferent daca e pusa in functii sau nu.
Închis
Răspunsuri
2
Vizualizări
240
Răspunsuri
1
Vizualizări
272
Răspunsuri
2
Vizualizări
444
Răspunsuri
2
Vizualizări
238

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

  • Informaţie