Ir para conteúdo

Featured Replies

Postado
  • Autor

foi bem até, deu pra ter uma noção de onde pode estar dando o erro mas agr usa essa versão aqui:

mata um primeiro mostro e mostra o print do console fazendo o favor

function isThatWeapon(uid) -- Function by Mock the bear.
uid = uid or 0
local f = getItemWeaponType(uid)
if f == 1 or f == 2 or f == 3 or f == 5 or f == 6 then
print(f)
return true
end
return false
end

function getWeapon(uid) -- Function by Night Wolf
	teste = getPlayerSlotItem(uid, CONST_SLOT_RIGHT)
	if teste.itemid > 0 then
	print(teste.itemid)
		if not isThatWeapon(teste.uid) then
		print("Not weapon")
			teste = getPlayerSlotItem(uid, CONST_SLOT_LEFT)
		end
	else
	print("Mão esquerda")
		teste = getPlayerSlotItem(uid, CONST_SLOT_LEFT)
	end
	if teste.itemid > 0 then
	print(teste.itemid)
		if not isThatWeapon(teste.uid) then
		print("Not Weapon")
			teste = false
		end
	else
	print("Can't found weapon")
		teste = false
	end
return teste
end

function getItemLevel(uid, maxlevel) -- Function By Night Wolf
	level = 0
	local name = getItemName(uid)
	                        print(name)
	for i = 1, maxlevel do
		if string.find(tostring(name),"+".. i .."") then
			level = i
			end
			print(i)
		end
return level
end

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • Respostas 109
  • Visualizações 10k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • [1] = {required = 1000}, -- qnt de exp precisa pra cada nivel no formato [nv] = {required = experiencia requerida} [2] = {required = 10000}, [3] = {required = 100000}, [4] = {required = 1000000}, [5]

  • @Coul, é só remover o restante dos prints agr que vc sabe que funciona   @Ayna, até daria pra fazer mas tem que fazer pela source pra n ficar gambiarra.. porque o player pode upar e qnd remover a es

  • Tava na hora de eu fazer um script da minha cabeça mesmo, fico sempre fazendo oque os outros pedem :~~~

Posted Images

Postado

Aqui vai primeiro log,esse aqui eu tirei porque eu nao matei o bixo,apenas dei 1 hit nele ja causou esses erros:

1253voz.png

 

Aqui segundo log de quando eu mato um monstro com apenas 1 hit:

 

2i0xjeb.png

 

E aqui é sobre o shield estar recebendo experiencia no lugar das armas se ele estiver na mão direita, e a arma na esquerda:

2djs6rr.png

Caso ele esteja na esquerda e a arma na direita segue funcionamento normal.

Postado
  • Autor

ele funciona normalmente (inclusive upando?) caso esteja a arma na direita?

Troca seu creaturescript por esse:

function onKill(cid, target, lastHit)
local upgrade = {
[1] = {required = 1000},
[2] = {required = 10000},
[3] = {required = 100000},
[4] = {required = 1000000},
[5] = {required = 10000000}
}

	local teste = getWeapon(cid)
	
	if teste == false then
		return true
	end
		
	if getCreatureMaster(target) ~= target then
		return true
	end
		
	local pos = getThingPos(cid)
	local level = getItemLevel(teste.uid, #upgrade)
           print("O level e : "..level)
			
		if level >= #upgrade then
			doItemSetAttribute(teste.uid, "description", "Experience: ["..upgrade[level].required.."/"..upgrade[level].required.."]")
			return true
		end					
			
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience))
print("O valor de count eh: ".. count)
local expatual = getItemAttribute(teste.uid, "exp") or 0
print("O valor de expatual eh: ".. expatual)
local newexp = expatual+count

		if newexp >= upgrade[level + 1].required then 
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(teste.itemid).." to ".. level+1 ..".")
			doItemSetAttribute(teste.uid,'name', getItemNameById(teste.itemid)..' +'..(level+1))
			doSendMagicEffect(pos, math.random(28,30))
			doItemSetAttribute(teste.uid, "exp", 0)
			if level + 2 <= #upgrade then
				doItemSetAttribute(teste.uid, "description", "Experience: [".. 0 .."/"..upgrade[level + 2].required.."]")
			end
		else
			doItemSetAttribute(teste.uid, "exp", expatual+count)
			doItemSetAttribute(teste.uid, "description", "Experience: ["..(expatual+count).."/"..upgrade[level + 1].required.."]")
			doPlayerSendTextMessage(cid, 27, "Congratulations, you get the experience of a ".. getCreatureName(target) .."!")
		end
return true
end 


e seu lib por esse:

function isThatWeapon(uid) -- Function by Mock the bear.
uid = uid or 0
print("Entrando na isThatWeapon: ".. f)
local f = getItemWeaponType(uid)
if f == 1 or f == 2 or f == 3 or f == 5 or f == 6 then
return true
end
return false
end

function getWeapon(uid) -- Function by Night Wolf
	teste = getPlayerSlotItem(uid, CONST_SLOT_RIGHT)
	print("Entrando na getWeapon: ".. teste.itemid)
	if teste.itemid > 0 then
		if not isThatWeapon(teste.uid) then
		print("Not weapon in the right")
			teste = getPlayerSlotItem(uid, CONST_SLOT_LEFT)
		end
	else
		teste = getPlayerSlotItem(uid, CONST_SLOT_LEFT)
	end
		print("Entrando na getWeapon[2]: ".. teste.itemid)
	if teste.itemid > 0 then
		if not isThatWeapon(teste.uid) then
		print("Not Weapon")
			teste = false
		end
	else
	print("Can't found weapon")
		teste = false
	end
return teste
end

function getItemLevel(uid, maxlevel) -- Function By Night Wolf
	level = 0
	local name = getItemName(uid)
	                        print(name)
	for i = 1, maxlevel do
		if string.find(tostring(name),"+".. i .."") then
			level = i
			end
			print(level)
		end
return level
end



ps: peço desculpa por estar demorando tanto pra te ajudar uhauha mas preciso que vc tenha paciência, to bem perto de entender oque tá dando de errado e acho q é alguma incompatibilidade com a source mas que vai ser possível resolver!

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

ele funciona normalmente (inclusive upando?) caso esteja a arma na direita?

Troca seu creaturescript por esse:

function onKill(cid, target, lastHit)
local upgrade = {
[1] = {required = 1000},
[2] = {required = 10000},
[3] = {required = 100000},
[4] = {required = 1000000},
[5] = {required = 10000000}
}

	local teste = getWeapon(cid)
	
	if teste == false then
		return true
	end
		
	if getCreatureMaster(target) ~= target then
		return true
	end
		
	local pos = getThingPos(cid)
	local level = getItemLevel(teste.uid, #upgrade)
           print("O level e : "..level)
			
		if level >= #upgrade then
			doItemSetAttribute(teste.uid, "description", "Experience: ["..upgrade[level].required.."/"..upgrade[level].required.."]")
			return true
		end					
			
local count = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience))
print("O valor de count eh: ".. count)
local expatual = getItemAttribute(teste.uid, "exp") or 0
print("O valor de expatual eh: ".. expatual)
local newexp = expatual+count

		if newexp >= upgrade[level + 1].required then 
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(teste.itemid).." to ".. level+1 ..".")
			doItemSetAttribute(teste.uid,'name', getItemNameById(teste.itemid)..' +'..(level+1))
			doSendMagicEffect(pos, math.random(28,30))
			doItemSetAttribute(teste.uid, "exp", 0)
			if level + 2 <= #upgrade then
				doItemSetAttribute(teste.uid, "description", "Experience: [".. 0 .."/"..upgrade[level + 2].required.."]")
			end
		else
			doItemSetAttribute(teste.uid, "exp", expatual+count)
			doItemSetAttribute(teste.uid, "description", "Experience: ["..(expatual+count).."/"..upgrade[level + 1].required.."]")
			doPlayerSendTextMessage(cid, 27, "Congratulations, you get the experience of a ".. getCreatureName(target) .."!")
		end
return true
end 

e seu lib por esse:

function isThatWeapon(uid) -- Function by Mock the bear.
uid = uid or 0
print("Entrando na isThatWeapon: ".. f)
local f = getItemWeaponType(uid)
if f == 1 or f == 2 or f == 3 or f == 5 or f == 6 then
return true
end
return false
end

function getWeapon(uid) -- Function by Night Wolf
	teste = getPlayerSlotItem(uid, CONST_SLOT_RIGHT)
	print("Entrando na getWeapon: ".. teste.itemid)
	if teste.itemid > 0 then
		if not isThatWeapon(teste.uid) then
		print("Not weapon in the right")
			teste = getPlayerSlotItem(uid, CONST_SLOT_LEFT)
		end
	else
		teste = getPlayerSlotItem(uid, CONST_SLOT_LEFT)
	end
		print("Entrando na getWeapon[2]: ".. teste.itemid)
	if teste.itemid > 0 then
		if not isThatWeapon(teste.uid) then
		print("Not Weapon")
			teste = false
		end
	else
	print("Can't found weapon")
		teste = false
	end
return teste
end

function getItemLevel(uid, maxlevel) -- Function By Night Wolf
	level = 0
	local name = getItemName(uid)
	                        print(name)
	for i = 1, maxlevel do
		if string.find(tostring(name),"+".. i .."") then
			level = i
			end
			print(level)
		end
return level
end

ps: peço desculpa por estar demorando tanto pra te ajudar uhauha mas preciso que vc tenha paciência, to bem perto de entender oque tá dando de errado e acho q é alguma incompatibilidade com a source mas que vai ser possível resolver!

O escudo com a arma na mão direita não upa,nesse caso apenas a arma recebe exp.

 

Agora nao foi possivel atacar quando eu clico para atacar ele apenas marca o alvo mas nao causa nenhum HIT.

Novo log:

1zexfsw.png

 

 

Relaxa,somo todos aprendizes eterno na vida,se der certo deu,se não der obrigado do mesmo jeito,tentamos,kkk

Editado por Coul (veja o histórico de edições)

Postado
  • Autor

puts cometi um equívoco na lib, linha 3 e 4:

print("Entrando na isThatWeapon: ".. f)
local f = getItemWeaponType(uid)

deixa assim:

local f = getItemWeaponType(uid)
print("Entrando na isThatWeapon: ".. f)

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo