Problema quest select skill

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

Nou Venit
Mesaje: 23
Membru din: 09 Mai 2019, 01:04
Server: -
Regat: Jinno
Aprecieri: 15  
Mulţumiri: 0
Medalii

*Problemă: Select skill cu bug
Tipologie server: PvP-PvM
*Resursă folosită:

Cod: Selectaţi tot

quest elegir_habis begin
	state start begin
		function getjobname(job)
			if job == 0 or job == 4 then	return tostring("Razboinic")
			elseif job == 1 or job == 5 then	return tostring("Ninja")
			elseif job == 2 or job == 6 then	return tostring("Sura")
			elseif job == 3 or job == 7 then	return tostring("Saman")
			end
		end
		
		function getskillgroupname(skillgroup)
			local job = pc.get_job()
			if skillgroup == 1 and job == 0 or job == 4 then	return tostring("Corporal")
			elseif skillgroup == 2 and job == 0 or job == 4 then 	return tostring("Mental")
			elseif skillgroup == 1 and job == 1 or job == 5 then 	return tostring("Pumnale")
			elseif skillgroup == 2 and job == 1 or job == 5 then 	return tostring("Arc")
			elseif skillgroup == 1 and job == 2 or job == 6 then 	return tostring("Arme Magice")
			elseif skillgroup == 2 and job == 2 or job == 6 then 	return tostring("Magie neagra")
			elseif skillgroup == 1 and job == 3 or job == 7 then 	return tostring("Dragon")
			elseif skillgroup == 2 and job == 3 or job == 7 then 	return tostring("Vindecare")
			end
		end
		
		when login begin
			cmdchat("HABILIDADES QID|"..q.getcurrentquestindex())
		end
		
		when login or levelup with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
			local job = pc.get_job()
			if job == 0 or job == 4 then		-- Razbonic
				cmdchat("HABILIDADES RAZA|1")
			elseif job == 1 or job == 5 then	-- Ninja
				cmdchat("HABILIDADES RAZA|2")
			elseif job == 2 or job == 6 then	-- Sura
				cmdchat("HABILIDADES RAZA|3")
			elseif job == 3 or job == 7 then	-- Saman
				cmdchat("HABILIDADES RAZA|4")
			end
		end
		
		when button or info begin
			cmdchat("input1")
			local cmd = input(cmdchat("HABILIDADES GRUPO|"))
			cmdchat("input0")
			--syschat(cmd)
			local puntos = pc.level -1
			if cmd == "GRUPO1" then
				pc.set_skill_group(1)	--all character--
				pc.clear_skill()
				syschat("[Metin2Riv]�Ai ales competentele de  "..elegir_habis.getjobname(pc.get_job()).." "..elegir_habis.getskillgroupname(pc.get_skill_group())..". Aceasta fiind decizia ta finala !")
				syschat("[Metin2Riv]�Ai primit "..puntos.." puncte pentru competente , foloseste-le cu cap !")
			elseif cmd == "GRUPO2" then
				pc.set_skill_group(2)	--all character--
				pc.clear_skill()
				syschat("[Metin2Riv]�Ai ales competentele de "..elegir_habis.getjobname(pc.get_job()).." "..elegir_habis.getskillgroupname(pc.get_skill_group())..". Aceasta fiind decizia ta finala !")
				syschat("[Metin2Riv]�Ai primit "..puntos.." puncte pentru competente,foloseste-le cu cap !")
			else
				syschat("�A aparut o problema , raporteaza la un administrator !")
			end
		end
	
	end
end
-- end system --
-- END UPDATE --
[/b]
*ServerFiles utilizat: riv
*Syserr: fara
Poză: Imagine
*Detalii suplimentare: Dupa ce selectez skill-urile, apare acest chenar. Dispare apoi, dar este enervant.
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

Nu este un "bug" faptul ca Shang isi bazeaza comenzile py/quest pe input.Prin urmare:
In root/game.py cauta :

Cod: Selectaţi tot

	def OpenQuestWindow(self, skin, idx):
		self.interface.OpenQuestWindow(skin, idx)
si modifica in

Cod: Selectaţi tot

	def OpenQuestWindow(self, skin, idx):
		if constInfo.INPUT_IGNORE == 1:
			return
		else:
			self.interface.OpenQuestWindow(skin, idx)
Adauga in constinfo.py

Cod: Selectaţi tot

INPUT_IGNORE = 0
Pentru acest mesaj, [RaffaeL] for the post:
alinjuve23
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
Kannon22
Nou Venit

Nou Venit
Mesaje: 23
Membru din: 09 Mai 2019, 01:04
Server: -
Regat: Jinno
Aprecieri: 15  
Mulţumiri: 0
Medalii

Mersi frumos pentru raspuns! Da, stiu, nu este chiar bug insa este un rezultat "urat" al faptulu ca foloseste input. Am deja aceste lucruri, insa in constinfo.py mai am si

Cod: Selectaţi tot

 def OpenQuestWindow(self, skin, idx):
		if not constInfo.INPUT_IGNORE == 1:
			wnds = ()

			q = uiQuest.QuestDialog(skin, idx)
			q.SetWindowName("QuestWindow" + str(idx))
			q.Show()
			if skin:
				q.Lock()
				wnds = self.__HideWindows()

				# UNKNOWN_UPDATE
				q.AddOnDoneEvent(lambda tmp_self, args=wnds: self.__ShowWindows(args))
				# END_OF_UNKNOWN_UPDATE

			if skin:
				q.AddOnCloseEvent(q.Unlock)
			
			q.AddOnCloseEvent(lambda s = self, qw = q: s.__dict__.__getitem__("wndQuestWindow").remove(qw))

			# UNKNOWN_UPDATE
			self.wndQuestWindow.append(q)
			# END_OF_UNKNOWN_UPDATE

Oare genereaza vreo problema liniile astea?
Daca totusi nu pot rezolva, ce alternative mai am sa folosesc, in loc de input?
Avatar utilizator
Athero
Ţepar / Untrusted User

Ţepar / Untrusted User
Mesaje: 3936
Membru din: 17 Aug 2017, 00:08
Aprecieri: 559  
Mulţumiri: 7142  
Discord: Copiază ID
Medalii

Pentru acest mesaj, Athero for the post:
Kannon22
//retras
Afișează semnătura
Avatar utilizator
Kannon22
Nou Venit

Nou Venit
Mesaje: 23
Membru din: 09 Mai 2019, 01:04
Server: -
Regat: Jinno
Aprecieri: 15  
Mulţumiri: 0
Medalii

Multumesc frumos, se poate inchide :)
Închis
Răspunsuri
2
Vizualizări
707
Răspunsuri
1
Vizualizări
220
Răspunsuri
12
Vizualizări
326

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

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Google [Bot], Semrush [Bot] și 17 vizitatori