Ir para conteúdo
  • Cadastre-se

Normal [Promotion] NPC Não reconhece vocação


Posts Recomendados

Olá a todos. É o seguinte, estou abrindo um ot 10.98 ok TFS 1.3.

 

A situação é essa, eu tirei a vocação Sorc e coloquei a do druid como Mage.

O mage pode ter 2 promos, o knight 2 promos e o pally 2 promos.

 

Segue o vocations.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<vocations>
	<vocation id="0" clientid="0" name="None" description="none" gaincap="10" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="2000" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="0">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.5" />
		<skill id="1" multiplier="2.0" />
		<skill id="2" multiplier="2.0" />
		<skill id="3" multiplier="2.0" />
		<skill id="4" multiplier="2.0" />
		<skill id="5" multiplier="1.5" />
		<skill id="6" multiplier="1.1" />
	</vocation>

	<vocation id="2" name="Mage" clientid="4" description="a mage" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="5" manamultiplier="1.1" attackspeed="2000" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="2">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.5" />
		<skill id="1" multiplier="1.8" />
		<skill id="2" multiplier="1.8" />
		<skill id="3" multiplier="1.8" />
		<skill id="4" multiplier="1.8" />
		<skill id="5" multiplier="1.5" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="3" clientid="2" name="Paladin" description="a paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="4" gainhpamount="5" gainmanaticks="4" gainmanaamount="5" manamultiplier="1.4" attackspeed="2000" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="3">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.2" />
		<skill id="1" multiplier="1.2" />
		<skill id="2" multiplier="1.2" />
		<skill id="3" multiplier="1.2" />
		<skill id="4" multiplier="1.1" />
		<skill id="5" multiplier="1.1" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="4" clientid="1" name="Knight" description="a knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="3" gainhpamount="5" gainmanaticks="6" gainmanaamount="5" manamultiplier="3.0" attackspeed="2000" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="4">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.1" />
		<skill id="1" multiplier="1.1" />
		<skill id="2" multiplier="1.1" />
		<skill id="3" multiplier="1.1" />
		<skill id="4" multiplier="1.4" />
		<skill id="5" multiplier="1.1" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="5" clientid="4" name="Master Wizard" description="a master wizard" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="10" manamultiplier="1.1" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="2">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.5" />
		<skill id="1" multiplier="2.0" />
		<skill id="2" multiplier="2.0" />
		<skill id="3" multiplier="2.0" />
		<skill id="4" multiplier="2.0" />
		<skill id="5" multiplier="1.5" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="6" clientid="4" name="Elder Wizard" description="an elder druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="10" manamultiplier="1.1" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="2">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.5" />
		<skill id="1" multiplier="1.8" />
		<skill id="2" multiplier="1.8" />
		<skill id="3" multiplier="1.8" />
		<skill id="4" multiplier="1.8" />
		<skill id="5" multiplier="1.5" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="7" clientid="2" name="Swift Paladin" description="a swift paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="10" gainmanaticks="3" gainmanaamount="10" manamultiplier="1.4" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="3">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.2" />
		<skill id="1" multiplier="1.2" />
		<skill id="2" multiplier="1.2" />
		<skill id="3" multiplier="1.2" />
		<skill id="4" multiplier="1.1" />
		<skill id="5" multiplier="1.1" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="8" clientid="1" name="Guardian Knight" description="an guardian knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" manamultiplier="3.0" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.1" />
		<skill id="1" multiplier="1.1" />
		<skill id="2" multiplier="1.1" />
		<skill id="3" multiplier="1.1" />
		<skill id="4" multiplier="1.4" />
		<skill id="5" multiplier="1.1" />
		<skill id="6" multiplier="1.1" />
	</vocation>
		<vocation id="9" clientid="2" name="Heavy Paladin" description="a heavy paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="10" gainmanaticks="3" gainmanaamount="10" manamultiplier="1.4" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="3">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.2" />
		<skill id="1" multiplier="1.2" />
		<skill id="2" multiplier="1.2" />
		<skill id="3" multiplier="1.2" />
		<skill id="4" multiplier="1.1" />
		<skill id="5" multiplier="1.1" />
		<skill id="6" multiplier="1.1" />
	</vocation>
	<vocation id="10" clientid="1" name="Berserk Knight" description="an berserk knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" manamultiplier="3.0" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="4">
		<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
		<skill id="0" multiplier="1.1" />
		<skill id="1" multiplier="1.1" />
		<skill id="2" multiplier="1.1" />
		<skill id="3" multiplier="1.1" />
		<skill id="4" multiplier="1.4" />
		<skill id="5" multiplier="1.1" />
		<skill id="6" multiplier="1.1" />
	</vocation>
</vocations>

 

Certo. Ai para cada vocação (Mage, Knight e Paladin) criei um NPC, no qual apenas funcionou para o Knight ter as 2 promos

King warrior.xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="King Warrior" script="promotionKina.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100" />
	<look type="133" head="20" body="39" legs="45" feet="7" addons="0" />
	<parameters>
        <parameter key="module_travel" value="1"/>
	<parameter key="message_greet" value="Olá |PLAYERNAME|. Eu Vendo Promotions Quer comprar alguma {promotion} ?" />
	</parameters>
</npc>

promotionKina.lua

-- config by uotl£
config = {[4] = { -- [coloca vocation que tem que ser antes de escolher]
lvl = 35, -- level tem que ser maior que 50
id_da_vocation = 8,nome_da_vocation = "Guardian Knight", -- id da primeira vocation que pode compra e o nome dela
id_da_vocation2 = 10,nome_da_vocation2 = "Berserk Knight"} -- id da segunda vocation que pode compra e o nome dela
}
local fala_do_npc = "Desculpe, mas voce esta falando com a pessoa errada." -- fala do npc se ja tiver comprado e se não for vocation certa
local preco = 0 -- preço por platinum  100 que e igual 1 crystal
-- config by uotl£

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
voc = config[getPlayerVocation(cid)]
if(msgcontains(msg, 'promotion') or msgcontains(msg, 'promotions')) then
       check (cid,talkUser)
    elseif (msgcontains(msg, voc.nome_da_vocation) and talkState[talkUser] == 1) then
       talkState[talkUser] = 2
          selfSay("tem certeza que voce quer ser [ "..voc.nome_da_vocation.." ] ? [yes] ou [no]", cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
        v1_check (cid,talkUser,numero_s)
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 2) then
       talkState[talkUser] = 0
        selfSay("ate mais volte quando decidir", cid)
    elseif (msgcontains(msg, voc.nome_da_vocation2) and talkState[talkUser] == 1) then
        talkState[talkUser] = 3
         selfSay("tem certeza que voce quer ser ["..voc.nome_da_vocation2.."] ? [yes] ou [no]", cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
        v2_check (cid,talkUser,numero_s)
        talkState[talkUser] = 0
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 3) then
        talkState[talkUser] = 0
        selfSay("ate mais volte quando decidir", cid)
    end
end

function check (cid,talkUser)
    if voc then
        if getPlayerLevel(cid) >= voc.lvl then
		talkState[talkUser] = 1
		selfSay('Posso lhe conceder a promocao [ '..voc.nome_da_vocation..' ] OU ['..voc.nome_da_vocation2..'] ao atingir level 35', cid)
        else
            selfSay('volta aqui quando pegar level '..voc.lvl..'', cid)
			talkState[talkUser] = 0
        end
    else
        selfSay(fala_do_npc, cid)
		talkState[talkUser] = 0
        return true
    end
end

function v1_check (cid,talkUser)
    if(doPlayerRemoveMoney(cid, (preco*100)) == true)  then
        doPlayerSetVocation(cid, voc.id_da_vocation)
        selfSay("parabens agora voce e "..voc.nome_da_vocation.."", cid)
        talkState[talkUser] = 0
    else
        selfSay('volta aqui quando tiver dinheiro '..preco..' moedas de platinum', cid)
        talkState[talkUser] = 0
    end
    return true
end

function v2_check (cid,talkUser)
    if(doPlayerRemoveMoney(cid, (preco*100)) == true) then
        doPlayerSetVocation(cid, voc.id_da_vocation2)
        selfSay("parabens agora voce e "..voc.nome_da_vocation2.."", cid)
        talkState[talkUser] = 0
    else
        selfSay('volta aqui quando tiver dinheiro '..preco..' moedas de platinum', cid)
        talkState[talkUser] = 0
    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Já testei e está funcionando. Tive que tirar do login.lua uma parte do script de promotion para funcionar.

login.lua

function onLogin(player)
	local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"
	if player:getLastLoginSaved() <= 0 then
		loginStr = loginStr .. " Please choose your outfit."
		player:sendOutfitWindow()
	else
		if loginStr ~= "" then
			player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
		end

		loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
	end
	player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

	-- Stamina
	nextUseStaminaTime[player.uid] = 0

	-- Promotion
	local vocation = player:getVocation()
	--local promotion = vocation:getPromotion()
	--if player:isPremium() then
	--	local value = player:getStorageValue(STORAGEVALUE_PROMOTION)
	--	if not promotion and value ~= 1 then
	--		player:setStorageValue(STORAGEVALUE_PROMOTION, 1)
	--	elseif value == 1 then
	--		player:setVocation(promotion)
	--	end
	--elseif not promotion then
	--	player:setVocation(vocation:getDemotion())
	--end -->
	

	-- Events
	player:registerEvent("PlayerDeath")
	player:registerEvent("DropLoot")
	
	
	return true
end

 

Porém com ou sem essa alteração no login.lua

 

O NPC para promoções de pally e mage não estão reconhecendo a vocação do personagem... quero dizer, eles falam a parte do script como se não fosse a voc correta.

Segue

 

NPC King Wizard.xml

	<?xml version="1.0" encoding="UTF-8"?>
<npc name="King Wizard" script="promotionMage.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100" />
	<look type="133" head="20" body="39" legs="45" feet="7" addons="0" />
	<parameters>
        <parameter key="module_travel" value="1"/>
	<parameter key="message_greet" value="Olá |PLAYERNAME|. Eu Vendo Promotions Quer comprar alguma {promotion} ?" />
	</parameters>
</npc>

 

promotionMage.lua

-- config by uotl£
config = {[2] = { -- [coloca vocation que tem que ser antes de escolher]
lvl = 35, -- level tem que ser maior que 50
id_da_vocation = 5,nome_da_vocation = "Master Wizard", -- id da primeira vocation que pode compra e o nome dela
id_da_vocation2 = 6,nome_da_vocation2 = "Elder Wizard"} -- id da segunda vocation que pode compra e o nome dela
}
local fala_do_npc = "Desculpe, mas voce esta falando com a pessoa errada." -- fala do npc se ja tiver comprado e se não for vocation certa
local preco = 0 -- preço por platinum  100 que e igual 1 crystal
-- config by uotl£

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
voc = config[getPlayerVocation(cid)]
if(msgcontains(msg, 'promotion') or msgcontains(msg, 'promotions')) then
       check (cid,talkUser)
    elseif (msgcontains(msg, voc.nome_da_vocation) and talkState[talkUser] == 1) then
       talkState[talkUser] = 2
          selfSay("tem certeza que voce quer ser [ "..voc.nome_da_vocation.." ] ? [yes] ou [no]", cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
        v1_check (cid,talkUser,numero_s)
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 2) then
       talkState[talkUser] = 0
        selfSay("ate mais volte quando decidir", cid)
    elseif (msgcontains(msg, voc.nome_da_vocation2) and talkState[talkUser] == 1) then
        talkState[talkUser] = 3
         selfSay("tem certeza que voce quer ser ["..voc.nome_da_vocation2.."] ? [yes] ou [no]", cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
        v2_check (cid,talkUser,numero_s)
        talkState[talkUser] = 0
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 3) then
        talkState[talkUser] = 0
        selfSay("ate mais volte quando decidir", cid)
    end
end

function check (cid,talkUser)
    if voc then
        if getPlayerLevel(cid) >= voc.lvl then
		talkState[talkUser] = 1
		selfSay('Posso lhe conceder a promocao [ '..voc.nome_da_vocation..' ] OU ['..voc.nome_da_vocation2..'] ao atingir level 35', cid)
        else
            selfSay('volta aqui quando pegar level '..voc.lvl..'', cid)
			talkState[talkUser] = 0
        end
    else
        selfSay(fala_do_npc, cid)
		talkState[talkUser] = 0
        return true
    end
end

function v1_check (cid,talkUser)
    if(doPlayerRemoveMoney(cid, (preco*100)) == true)  then
        doPlayerSetVocation(cid, voc.id_da_vocation)
        selfSay("parabens agora voce e "..voc.nome_da_vocation.."", cid)
        talkState[talkUser] = 0
    else
        selfSay('volta aqui quando tiver dinheiro '..preco..' moedas de platinum', cid)
        talkState[talkUser] = 0
    end
    return true
end

function v2_check (cid,talkUser)
    if(doPlayerRemoveMoney(cid, (preco*100)) == true) then
        doPlayerSetVocation(cid, voc.id_da_vocation2)
        selfSay("parabens agora voce e "..voc.nome_da_vocation2.."", cid)
        talkState[talkUser] = 0
    else
        selfSay('volta aqui quando tiver dinheiro '..preco..' moedas de platinum', cid)
        talkState[talkUser] = 0
    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

NPC King Archer.xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="King Archer" script="promotionPally.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100" />
	<look type="133" head="20" body="39" legs="45" feet="7" addons="0" />
	<parameters>
        <parameter key="module_travel" value="1"/>
	<parameter key="message_greet" value="Olá |PLAYERNAME|. Eu Vendo Promotions Quer comprar alguma {promotion} ?" />
	</parameters>
</npc>

promotionPally.lua

-- config by uotl£
config = {[3] = { -- [coloca vocation que tem que ser antes de escolher]
lvl = 35, -- level tem que ser maior que 50
id_da_vocation = 7,nome_da_vocation = "Swift Paladin", -- id da primeira vocation que pode compra e o nome dela
id_da_vocation2 = 9,nome_da_vocation2 = "Heavy Paladin"} -- id da segunda vocation que pode compra e o nome dela
}
local fala_do_npc = "Desculpe, mas voce esta falando com a pessoa errada." -- fala do npc se ja tiver comprado e se não for vocation certa
local preco = 0 -- preço por platinum  100 que e igual 1 crystal
-- config by uotl£

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
voc = config[getPlayerVocation(cid)]
if(msgcontains(msg, 'promotion') or msgcontains(msg, 'promotions')) then
       check (cid,talkUser)
    elseif (msgcontains(msg, voc.nome_da_vocation) and talkState[talkUser] == 1) then
       talkState[talkUser] = 2
          selfSay("tem certeza que voce quer ser [ "..voc.nome_da_vocation.." ] ? [yes] ou [no]", cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
        v1_check (cid,talkUser,numero_s)
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 2) then
       talkState[talkUser] = 0
        selfSay("ate mais volte quando decidir", cid)
    elseif (msgcontains(msg, voc.nome_da_vocation2) and talkState[talkUser] == 1) then
        talkState[talkUser] = 3
         selfSay("tem certeza que voce quer ser ["..voc.nome_da_vocation2.."] ? [yes] ou [no]", cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
        v2_check (cid,talkUser,numero_s)
        talkState[talkUser] = 0
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 3) then
        talkState[talkUser] = 0
        selfSay("ate mais volte quando decidir", cid)
    end
end

function check (cid,talkUser)
    if voc then
        if getPlayerLevel(cid) >= voc.lvl then
		talkState[talkUser] = 1
		selfSay('Posso lhe conceder a promocao [ '..voc.nome_da_vocation..' ] OU ['..voc.nome_da_vocation2..'] ao atingir level 35', cid)
        else
            selfSay('volta aqui quando pegar level '..voc.lvl..'', cid)
			talkState[talkUser] = 0
        end
    else
        selfSay(fala_do_npc, cid)
		talkState[talkUser] = 0
        return true
    end
end

function v1_check (cid,talkUser)
    if(doPlayerRemoveMoney(cid, (preco*100)) == true)  then
        doPlayerSetVocation(cid, voc.id_da_vocation)
        selfSay("parabens agora voce e "..voc.nome_da_vocation.."", cid)
        talkState[talkUser] = 0
    else
        selfSay('volta aqui quando tiver dinheiro '..preco..' moedas de platinum', cid)
        talkState[talkUser] = 0
    end
    return true
end

function v2_check (cid,talkUser)
    if(doPlayerRemoveMoney(cid, (preco*100)) == true) then
        doPlayerSetVocation(cid, voc.id_da_vocation2)
        selfSay("parabens agora voce e "..voc.nome_da_vocation2.."", cid)
        talkState[talkUser] = 0
    else
        selfSay('volta aqui quando tiver dinheiro '..preco..' moedas de platinum', cid)
        talkState[talkUser] = 0
    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Obrigado desde já! é de grande importância arrumar isso, não sei pq o Knight consegue promover para Berserk ou Guardian mas quando falo sendo Mage no NPC King Mage ou Paladin no NPC King Archer aparece a frase do script "Desculpe, mas voce esta falando com a pessoa errada."

 

Segue uma imagem que da na distro quando sou Mage Voc 2  e tento comprar promotion 

 

1.png

Editado por lucasprimolemos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
5 horas atrás, RobotTurto disse:

Verificou no banco de dados as vocations?

Os samples estão normais padrão, só modifiquei o sorc para vocation 2 e druid tb voc 2, o sorc em si fica inútil então nao interfere...seria mais para cadastro do site.

 

 

Eu to testando direto no admin, eu modifico apenas o player admin que estou usando, então creio que não tenha a ver com o BD nesse primeiro momento

Link para o post
Compartilhar em outros sites
1 hora atrás, lucasprimolemos disse:

Os samples estão normais padrão, só modifiquei o sorc para vocation 2 e druid tb voc 2, o sorc em si fica inútil então nao interfere...seria mais para cadastro do site.

 

 

Eu to testando direto no admin, eu modifico apenas o player admin que estou usando, então creio que não tenha a ver com o BD nesse primeiro momento

Quando falo verificou na BD quero dizer se verificou na BD a voc do char em que está sendo testado.

Link para o post
Compartilhar em outros sites
30 minutos atrás, RobotTurto disse:

Quando falo verificou na BD quero dizer se verificou na BD a voc do char em que está sendo testado.

A sim perdão @RobotTurto, então, eu verifiquei inclusive fico mexendo nele para testar os NPC's

 

Quando eu coloco voc 4 e ele vira kina, falo com o npc King Warrior e consigo me promover para berserk ou guardian,

 

mas quando coloco voc 3 de pally e falo com NPC King Archer ou voc 2 de mage e falo com NPC King Wizard não da certo, ele manda a msg "desculpe mas vc está falando com a pessoa errada" que é o ELSEIF quando ele não compreende a voc, ou a voc não é correspondente com a definida no arquivo lua

Link para o post
Compartilhar em outros sites
3 horas atrás, lucasprimolemos disse:

A sim perdão @RobotTurto, então, eu verifiquei inclusive fico mexendo nele para testar os NPC's

 

Quando eu coloco voc 4 e ele vira kina, falo com o npc King Warrior e consigo me promover para berserk ou guardian,

 

mas quando coloco voc 3 de pally e falo com NPC King Archer ou voc 2 de mage e falo com NPC King Wizard não da certo, ele manda a msg "desculpe mas vc está falando com a pessoa errada" que é o ELSEIF quando ele não compreende a voc, ou a voc não é correspondente com a definida no arquivo lua

Agora estou no PC vou fazer testes.

Link para o post
Compartilhar em outros sites
1 hora atrás, RobotTurto disse:

Estive com problemas com meus servidores não consegui fazer os devidos testes.

Porém os códigos não estão com nenhuma irregularidade ao meu ver.

 

Entendo...Obrigado de qualquer maneira!!!

 

Bom fico no aguardo de uma boa alma que possa ajudar rsrs

Link para o post
Compartilhar em outros sites

Fiz esse script para promotion de arqueiro.

Teste:

local msgHi = "Quer uma {promotion}?"
local msgBye = "Ja vai?!"
local msgDis = "Tchau!"

local vocation = 3			-- ID da vocação

local custo1 = 20000		-- Custo da primeira Promotion
local vocation2 = 7			-- Primeira Promotion

local custo2 = 40000		-- Custo da segunda Promotion
local vocation3 = 9			-- Segunda Promotion

local focuses = {}
local function isFocused(cid)
	for i, v in pairs(focuses) do
		if(v == cid) then
			return true
		end
	end
	return false
end

local function addFocus(cid)
	if(not isFocused(cid)) then
		table.insert(focuses, cid)
	end
end
local function removeFocus(cid)
	for i, v in pairs(focuses) do
		if(v == cid) then
			table.remove(focuses, i)
			break
		end
	end
end
local function lookAtFocus()
	for i, v in pairs(focuses) do
		if(isPlayer(v)) then
			doNpcSetCreatureFocus(v)
			return
		end
	end
	doNpcSetCreatureFocus(0)
end

function onCreatureAppear(cid)
end

function onCreatureDisappear(cid)
	if(isFocused(cid)) then
		selfSay("Tchau ".. getPlayerName(cid) ..".")
		removeFocus(cid)
		if(isPlayer(cid)) then
			closeShopWindow(cid)
		end
	end
end

function onCreatureSay(cid, type, msg)
	if msg == "hi" or msg == "hello" and not isFocused(cid) then
		selfSay(msgHi, cid)
		addFocus(cid)
	elseif isFocused(cid) and msg == "promotion" or msg == "promote" then
		selfSay("Quer ser promovido? Ira te custar ".. custo1 .." moedas de ouro.", cid)
		promo = 1
		elseif isFocused(cid) and msg == "yes" and promo == 1 then
			promo = 0
			if getPlayerVocation(cid) == vocation then
				if getPlayerMoney(cid) >= custo1 then
					doPlayerRemoveMoney(cid, custo1)
					doPlayerSetVocation(cid, vocation2)
					selfSay("Parabens! Voce ainda pode receber {mais uma promotion}.", cid)
				else
					selfSay("Voce nao tem ".. custo1 ..".", cid)
				end
			else
				selfSay("Apenas arqueiros.", cid)
			end
		elseif isFocused(cid) and msg == "no" and promo == 1 then
			promo = 0
			selfSay("Ok!", cid)
	elseif isFocused(cid) and msg == "mais uma promotion" then
		selfSay("Quer ser promovido novamente? Ira te custar ".. custo2 .." moedas de ouro.", cid)
		promo = 2
		elseif isFocused(cid) and msg == "yes" and promo == 2 then
			promo = 0
			if getPlayerVocation(cid) == vocation2 then
				if getPlayerMoney(cid) >= custo2 then
					doPlayerRemoveMoney(cid, custo2)
					doPlayerSetVocation(cid, vocation3)
					selfSay("Parabens!", cid)
				else
					selfSay("Voce nao tem ".. custo1 ..".", cid)
				end
			else
				selfSay("Apenas arqueiros.", cid)
			end
		elseif isFocused(cid) and msg == "no" and promo == 2 then
			promo = 0
			selfSay("Ok!", cid)
	elseif((isFocused(cid)) and (msg == "bye" or msg == "tchau" or msg == "xau")) then
		selfSay(msgBye)
		closeShopWindow(cid)
		removeFocus(cid)
	end
end

function onPlayerCloseChannel(cid)
	if(isFocused(cid)) then
		selfSay("Humm.")
		closeShopWindow(cid)
		removeFocus(cid)
	end
end

function onThink()
	for i, focus in pairs(focuses) do
		if(not isCreature(focus)) then
			removeFocus(focus)
		else
			local distance = getDistanceTo(focus) or -1
			if((distance > 4) or (distance == -1)) then
				doCreatureSay(getNpcCid(), msgDis, TALKTYPE_YELL)
				closeShopWindow(focus)
				removeFocus(focus)
			end
		end
	end
	lookAtFocus()
end

 

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

Eternera Tibia Server - RPG

Link para o post
Compartilhar em outros sites
50 minutos atrás, anderkrox disse:

Fiz esse script para promotion de arqueiro.

Teste:


local msgHi = "Quer uma {promotion}?"
local msgBye = "Ja vai?!"
local msgDis = "Tchau!"

local vocation = 3			-- ID da vocação

local custo1 = 20000		-- Custo da primeira Promotion
local vocation2 = 7			-- Primeira Promotion

local custo2 = 40000		-- Custo da segunda Promotion
local vocation3 = 9			-- Segunda Promotion

local focuses = {}
local function isFocused(cid)
	for i, v in pairs(focuses) do
		if(v == cid) then
			return true
		end
	end
	return false
end

local function addFocus(cid)
	if(not isFocused(cid)) then
		table.insert(focuses, cid)
	end
end
local function removeFocus(cid)
	for i, v in pairs(focuses) do
		if(v == cid) then
			table.remove(focuses, i)
			break
		end
	end
end
local function lookAtFocus()
	for i, v in pairs(focuses) do
		if(isPlayer(v)) then
			doNpcSetCreatureFocus(v)
			return
		end
	end
	doNpcSetCreatureFocus(0)
end

function onCreatureAppear(cid)
end

function onCreatureDisappear(cid)
	if(isFocused(cid)) then
		selfSay("Tchau ".. getPlayerName(cid) ..".")
		removeFocus(cid)
		if(isPlayer(cid)) then --Be sure he's online
			closeShopWindow(cid)
		end
	end
end

function onCreatureSay(cid, type, msg)
	if msg == "hi" or msg == "hello" and not isFocused(cid) then
		selfSay(msgHi, cid)
		addFocus(cid)
	elseif isFocused(cid) and msg == "promotion" or msg == "promote" then
		selfSay("Quer ser promovido? Ira te custar ".. custo1 .." moedas de ouro.", cid)
		promo = 1
		elseif isFocused(cid) and msg == "yes" and promo == 1 then
			promo = 0
			if getPlayerVocation(cid) == vocation then
				if getPlayerMoney(cid) >= custo1 then
					doPlayerRemoveMoney(cid, custo1)
					doPlayerSetVocation(cid, vocation2)
					selfSay("Parabens! Voce ainda pode receber {mais uma promotion}.", cid)
				else
					selfSay("Voce nao tem ".. custo1 ..".", cid)
				end
			else
				selfSay("Apenas arqueiros.", cid)
			end
		elseif isFocused(cid) and msg == "no" and promo == 1 then
			promo = 0
			selfSay("Ok!", cid)
	elseif isFocused(cid) and msg == "mais uma promotion" then
		selfSay("Quer ser promovido novamente? Ira te custar ".. custo2 .." moedas de ouro.", cid)
		promo = 2
		elseif isFocused(cid) and msg == "yes" and promo == 2 then
			promo = 0
			if getPlayerVocation(cid) == vocation2 then
				if getPlayerMoney(cid) >= custo2 then
					doPlayerRemoveMoney(cid, custo2)
					doPlayerSetVocation(cid, vocation3)
					selfSay("Parabens!", cid)
				else
					selfSay("Voce nao tem ".. custo1 ..".", cid)
				end
			else
				selfSay("Apenas arqueiros.", cid)
			end
		elseif isFocused(cid) and msg == "no" and promo == 2 then
			promo = 0
			selfSay("Ok!", cid)
	elseif((isFocused(cid)) and (msg == "bye" or msg == "tchau" or msg == "xau")) then
		selfSay(msgBye)
		closeShopWindow(cid)
		removeFocus(cid)
	end
end

function onPlayerCloseChannel(cid)
	if(isFocused(cid)) then
		selfSay("Humm.")
		closeShopWindow(cid)
		removeFocus(cid)
	end
end

function onThink()
	for i, focus in pairs(focuses) do
		if(not isCreature(focus)) then
			removeFocus(focus)
		else
			local distance = getDistanceTo(focus) or -1
			if((distance > 4) or (distance == -1)) then
				doCreatureSay(getNpcCid(), msgDis, TALKTYPE_YELL)
				closeShopWindow(focus)
				removeFocus(focus)
			end
		end
	end
	lookAtFocus()
end

 

 

Opa! fiz o teste e deu um errinho, creio que referente ao Focus e Distance do personagem e NPC, vc deve entender melhor, veja

 

123.png

Link para o post
Compartilhar em outros sites
6 minutos atrás, lucasprimolemos disse:

 

Opa! fiz o teste e deu um errinho, creio que referente ao Focus e Distance do personagem e NPC, vc deve entender melhor, veja

 

123.png

Estranho, testei aqui e funcionou.

Qual servidor está usando?

Eternera Tibia Server - RPG

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo