Jump to content

Vitorelias

Member
  • Content Count

    103
  • Joined

  • Last visited

Posts posted by Vitorelias

  1. 6 minutos atrás, Sun disse:

    estes icons são skulls cara!

    você precisa achar o correto.

    Ah sim agora entendi, obrigado cara vou tentar procurar saber quais são se eu souber vou postar aqui possa ser que mais pessoas esteja procurando por isso obrigado mesmo.

     

  2. 5 minutos atrás, Sun disse:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Addoner" script="Addon.lua" walkinterval="0" floorchange="0" skull="green">
       <health now="100" max="100"/>
       <look type="540"/>
    <parameters>
    	<parameter key="module_shop" value="1" />
    	</parameters>
    </npc> 

    @Vitorelias

    cara deu certo mais no caso fico uma skull no NPC e no caso não é isso o que eu quero eu quero que apareça esse icon.

    Balao_NPC_Trade.png.33641089cd7403e8a3990e670a986e54.pngBalao_NPC_Quest.png.a0be3513421ac9569d5b632750ac48b9.pngBalao_NPC_General.png.dbd7ba9dbc0893e98b7ae45e083f3440.png

  3. Agora, Sun disse:

    colocando skull no script dele

    @Vitorelias

    como assim poderia me da essa força ai? 

     

    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Addoner" script="Addon.lua" walkinterval="0" floorchange="0">
       <health now="100" max="100"/>
       <look type="540"/>
    <parameters>
    	<parameter key="module_shop" value="1" />
    	</parameters>
    
    </npc> 

     

  4. .Qual servidor ou website você utiliza como base? 

    OTX Versão 12.00

    Qual o motivo deste tópico? 

    Boa noite não sei se estou na área correta mais gostaria de saber como que faz pra colocar essa balão nos NPC

    se for possível alguém me da uma força ai agradeço.

     

     

    image.png.6e35e0b01ff6ba0056e67be7fee5bbcb.png

     

  5. 9 horas atrás, Shiuns disse:
    
    SKILL_CLUB = "skill_club"
    SKILL_DISTANCE = "skill_dist"
    SKILL_SHIELD = "skill_shielding"
    SKILL_MAGLEVEL = "maglevel"
    SKILL_SWORD = "skill_sword"
    SKILL_AXE = "skill_axe"
    local storage = 45611
    local coinID = 9971 -- moeda para comprar skills
    
    local runas = {
    	["sd"] = {bag = 5926, item= 2268, bag_quant = 2, price= 50, msg= "Parabéns você comprou 4k de SD com sucesso."},
    	["uh"] = {bag = 2002, item= 2273, bag_quant = 3, price= 30, msg= "Parabéns você comprou 6k de UH com sucesso."},
    	["explo"] = {bag = 2001, item= 2313, bag_quant = 3, price= 10, msg= "Parabéns você comprou 6k de Explosion com sucesso."}
    }
    local itens = {
    	["super divine axe"] = {item = 8926, price= 60, msg= "Você comprou um super divine axe com sucesso."},
    	["super divine staff"] = {item = 8922, price= 60, msg= "Você comprou um super divine staff com sucesso."},
    	["super divine club"] = {item = 7423, price= 60, msg= "Você comprou um super divine club com sucesso."},
    	["super divine sword"] = {item = 7403, price= 60, msg= "Você comprou um super divine sword com sucesso."},
    	["super divine crossbow"] = {item = 8851, price= 60, msg= "Você comprou um super divine crossbow com sucesso."},
    	["livro nivel 6"] = {item = 8921, price= 60, msg= "Você comprou um livro nivel 6 com sucesso."}
    }
    local vip = {
    	["vip10"] = {days= 10, price= 5},
    	["vip30"] = {ays= 30, price= 10}
    }
    local skills = {
    	["magiclevel"] = {vocations = {1, 5, 2, 6, 11, 12}, voc_msg= "Somente Sorcerers, Druids e Infernalists podem comprar magic level.", lim = 200, lim_msg = "Você não pode ter magic level acima de 200.", price= 3, incre = 1, skill = SKILL_MAGLEVEL},
    	["skillclub"] = {vocations = {9, 10}, voc_msg= "Somente Drunous podem comprar skill de club.", lim = 350, price= 1, incre = 1, skill = SKILL_CLUB},
    	["skillsword"] = {vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de sword.", lim = 350, price= 1, incre = 1, skill = SKILL_SWORD},
    	["skillaxe"] = {vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de axe.", lim = 350, price= 1, incre = 1, skill = SKILL_AXE},
    	["skilldistance"] = {vocations = {3, 7}, voc_msg= "Somente Paladins podem comprar skill de distance.", lim = 350, price= 1, incre = 1, skill = SKILL_DISTANCE},
    	["skillshielding"] = {vocations = {3, 7, 4, 8, 9, 10}, voc_msg= "Somente Paladins, Knights e Drunous podem comprar skill de shield.", lim = 350, lim_msg = "Você não pode ter skill shielding acima de 350.", price= 1, incre = 1, skill = SKILL_SHIELD},
    }
    
    local frags = {
    	["removerfrag"] = {t= 6, price= 10}
    }
    
    function onSay(player, words, param)
    	local player = Player(player)
    	local pid = player:getGuid()
    	local tile = player:getTile()
    	local param = param:lower()	
    	if not tile:hasFlag(TILESTATE_PROTECTIONZONE) then
    		player:sendCancelMessage("Você precisa está em área protegida para utilizar este comando.")
    		return true
    	end	
    	if player:getStorageValue(storage) >= os.time() then
    		player:sendCancelMessage("Por medidas de segurança você só pode utilizar este comando em " .. player:getStorageValue(storage)-os.time() .. " segundos.")
    		return true
    	end
    	if param == "" then
    		player:popupFYI("Para comprar digite !comprar (nome do item)\nOpcoes:\nsd = 4000 em SD por 50 barras.\nuh = 6000 em UH por 40 barras.\nexplo = 6000 em explosion por 10 barras.\nvip10 = 10 dias de vip por 5 barras.\nvip30 = 30 dias de vip por 10 barras.\ndivine staff = divine staff por 30 barras.\ndivine axe = divine axe por 30 barras.\nlivro nivel 6 = livro nivel 6 por 60 barras.\ndivine club = divine club por 30 barras.\ndivine sword = divine sword por 30 barras.\ndivine crossbow = divine crossbow por 30 barras.\nlivro nivel 5 = livro nivel 5 por 30 barras.\nsuper divine axe = super divine axe por 60 barras.\nsuper divine club = super divine club por 60 barras.\nsuper divine sword = super divine sword por 60 barras.\nsuper divine staff = super divine staff por 60 barras.\nsuper divine crossbow = super divine crossbow por 60 barras.\nskillclub = adiciona 1 skill club por 1 barras.\nskillsword = adiciona 1 skill sword por 1 barras.\nskillaxe = adiciona 1 skill axe por 1 barras.\nskilldistance = adiciona 1 skill distance por 1 barras.\nskillshielding = adiciona 1 skill shielding por 1 barras.\nmagiclevel = adiciona 1 magic level por 3 barras.\nmagiclevel5 = adiciona 5 magic level por 15 barras.\nskillclub10 = adiciona 10 skills club por 10 barras.\nskillsword10 = adiciona 10 skills sword por 10 barras.\nskillaxe10 = adiciona 10 skills axe por 10 barras.\nskilldistance10 = adiciona 10 skill distance por 10 barras.\nskillshielding10 = adiciona 10 skill shielding por 10 barras.\nremoverfrag = remove todos frags por 100k.\nO Item desejado não existe em nosso stock. Veja a cima os detalhes dos items disponíveis.")
    		return true
    	end
    	if runas[param] then
    		local v = runas[param]
    		if player:getItemCount(coinID) >= v.price then
    			local item_quant = (v.bag_quant * 2000)/100
    			for x = 1, v.bag_quant do
    				local bag = player:addItem(v.bag, 1)
    				for i = 1, item_quant do
    					bag:addItem(v.item, 100)
    				end
    			end
    			player:removeItem(coinID, v.price)
    			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, v.msg)
    			player:setStorageValue(storage, os.time()+1)
    		else
    			player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    		end
    		return true
    	end
    	if itens[param] then
    		local v = itens[param]
    		if player:getItemCount(coinID) >= v.price then
    			item = player:addItem(v.item, 1)
    			item:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "Este item pode ser adquirido através do shopping. Adquirido dia " .. os.date("%d/%m/%Y - %X") .." por ".. player:getName() ..". Serial: ".. player:getGuid() ..".")
    			player:removeItem(coinID, v.price)
    			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, v.msg)
    			player:setStorageValue(storage, os.time()+1)
    		else
    			player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    		end
    		return true
    	end
    	if vip[param] then
    		local v = vip[param]
    		if player:getItemCount(coinID) >= v.price then
    			player:addPremiumDays(v.days)
    			player:removeItem(coinID, v.price)
    			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou " .. v.days .. " dias de vip com sucesso.")
    			player:setStorageValue(storage, os.time()+1)
    		else
    			player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    		end
    		return true
    	end	
    	if skills[param] then
    		local v = skills[param]
    		if param == "magiclevel" and player:getBaseMagicLevel() >= v.lim or (player:getBaseMagicLevel() + v.incre ) >= v.lim then
    			player:sendCancelMessage(v.lim_msg) return true
    		elseif player:getSkillLevel(v.skill) >= v.lim or (player:getSkillLevel(v.skill) + v.incre ) >= v.lim then
    			player:sendCancelMessage(v.lim_msg) return true			
    		end
    		if not isInArray(v.vocations, player:getVocation():getId()) then
    			player:sendCancelMessage(v.voc_msg)
    			return true
    		end
    		if player:getItemCount(coinID) >= v.price then
    			player:removeItem(coinID, v.price)
    			player:setStorageValue(storage, os.time()+1)
    			player:remove()
    			db.query("UPDATE players SET ".. v.skill .. " = " .. v.skill .. " + " .. v.incre .. " WHERE id = ".. pid)
    		else
    			player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    		end
    		return true
    	end
    	if frags[param] then
    		local v = frags[param]
    		if player:getItemCount(2160) >= v.price then
    			player:removeItem(2160, v.price)
    			player:setSkull(SKULL_NONE)
    			player:setSkullTime(0)
    			player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
    			player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your skull and frags has been removed!")
    			player:setStorageValue(storage, os.time()+1)
    			db.query("UPDATE player_deaths SET unjustified = 0 WHERE unjustified = 1 AND killed_by = " .. db.escapeString(player:getName()))
    		else
    			player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    		end
    		return true
    	end
    	return true
    end

     

    Obrigado em man sem palavras deu certo! 

  6. .Qual servidor ou website você utiliza como base? 

     

    OTX 3.1

     

    Qual o motivo deste tópico? 

     

    Tenho um sistema de compra de skills porem não esta limitando o comando e o player consegue comprar skills acima do permitido.

    obs  quando usa o comando !comprar magiclevel funciona perfeito e limita os skills agora quando usa !comprar skillaxe, sword , club etc não esta limitando.

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

     

     

    Você tem o código disponível? Se tiver publique-o aqui: 

    SKILL_CLUB = "skill_club"
    SKILL_DISTANCE = "skill_dist"
    SKILL_SHIELD = "skill_shielding"
    SKILL_MAGLEVEL = "maglevel"
    SKILL_SWORD = "skill_sword"
    SKILL_AXE = "skill_axe"
    local coinID = 9971 -- moeda para comprar skills
    local tb = {
    ["sd"] = {t= 1, bag = 5926, item= 2268, bag_quant = 2, price= 50, msg= "Parabéns você comprou 4k de SD com sucesso."},
    ["uh"] = {t= 1, bag = 2002, item= 2273, bag_quant = 3, price= 30, msg= "Parabéns você comprou 6k de UH com sucesso."},
    ["explo"] = {t= 1, bag = 2001, item= 2313, bag_quant = 3, price= 10, msg= "Parabéns você comprou 6k de Explosion com sucesso."},
    ["super divine axe"] = {t= 2, item = 8926, price= 60, msg= "Você comprou um super divine axe com sucesso."},
    ["super divine staff"] = {t= 2, item = 8922, price= 60, msg= "Você comprou um super divine staff com sucesso."},
    ["super divine club"] = {t= 2, item = 7423, price= 60, msg= "Você comprou um super divine club com sucesso."},
    ["super divine sword"] = {t= 2, item = 7403, price= 60, msg= "Você comprou um super divine sword com sucesso."},
    ["super divine crossbow"] = {t= 2, item = 8851, price= 60, msg= "Você comprou um super divine crossbow com sucesso."},
    ["livro nivel 6"] = {t= 2, item = 8921, price= 60, msg= "Você comprou um livro nivel 6 com sucesso."},
    ["vip10"] = {t= 3, days= 10, price= 5},
    ["vip30"] = {t= 3, days= 30, price= 10},
    ["magiclevel"] = {t= 4, vocations = {1, 5, 2, 6, 11, 12}, voc_msg= "Somente Sorcerers, Druids e Infernalists podem comprar magic level.", lim = 200, lim_msg = "Você não pode ter magic level acima de 200.", price= 3, incre = 1, skill = SKILL_MAGLEVEL},
    ["skillclub"] = {t= 5, vocations = {9, 10}, voc_msg= "Somente Drunous podem comprar skill de club.", lim = 350, price= 1, incre = 1, skill = SKILL_CLUB},
    ["skillsword"] = {t= 5, vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de sword.", lim = 350, price= 1, incre = 1, skill = SKILL_SWORD},
    ["skillaxe"] = {t=5 , vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de axe.", lim = 350, price= 1, incre = 1, skill = SKILL_AXE},
    ["skilldistance"] = {t= 5, vocations = {3, 7}, voc_msg= "Somente Paladins podem comprar skill de distance.", lim = 350, price= 1, incre = 1, skill = SKILL_DISTANCE},
    ["skillshielding"] = {t= 5, vocations = {3, 7, 4, 8, 9, 10}, voc_msg= "Somente Paladins, Knights e Drunous podem comprar skill de shield.", lim = 350, lim_msg = "Você não pode ter skill shielding acima de 350.", price= 1, incre = 1, skill = SKILL_SHIELD},
    ["magiclevel5"] = {t= 4, vocations = {1, 5, 2, 6, 11, 12}, voc_msg= "Somente Sorcerers, Druids e Infernalists podem comprar magic level.", lim = 200, lim_msg = "Você não pode ter magic level acima de 200.", price= 15, incre = 5, skill = SKILL_MAGLEVEL},
    ["skillclub10"] = {t= 5, vocations = {9, 10}, voc_msg= "Somente Drunous podem comprar skill de club.", lim = 350, price= 10, incre = 10, skill = SKILL_CLUB},
    ["skillsword10"] = {t= 5, vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de sword.", lim = 350, price= 10, incre = 10, skill = SKILL_SWORD},
    ["skillaxe10"] = {t=5 , vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de axe.", lim = 350, price= 10, incre = 10, skill = SKILL_AXE},
    ["skilldistance10"] = {t= 5, vocations = {3, 7}, voc_msg= "Somente Paladins podem comprar skill de distance.", lim = 350, price= 10, incre = 10, skill = SKILL_DISTANCE},
    ["skillshielding10"] = {t= 5, vocations = {3, 7, 4, 8, 9, 10}, voc_msg= "Somente Paladins, Knights e Drunous podem comprar skill de shield.", lim = 341, lim_msg = "Você não pode ter skill shielding acima de 350.", price= 10, incre = 10, skill = SKILL_SHIELD},
    ["removerfrag"] = {t= 6, price= 10},
    }
    local storage = 45611
    function onSay(player, words, param)
    local player = Player(player)
    local pid = player:getGuid()
    local tile = player:getTile()
    local param = param:lower()
    if not tile:hasFlag(TILESTATE_PROTECTIONZONE) then
    player:sendCancelMessage("Você precisa está em área protegida para utilizar este comando.")
    return true
    end
    if player:getStorageValue(storage) >= os.time() then
    player:sendCancelMessage("Por medidas de segurança você só pode utilizar este comando em " .. player:getStorageValue(storage)-os.time() .. " segundos.")
    return true
    end

    if param == "" then
    player:popupFYI("Para comprar digite !comprar (nome do item)\nOpcoes:\nsd = 4000 em SD por 50 barras.\nuh = 6000 em UH por 40 barras.\nexplo = 6000 em explosion por 10 barras.\nvip10 = 10 dias de vip por 5 barras.\nvip30 = 30 dias de vip por 10 barras.\ndivine staff = divine staff por 30 barras.\ndivine axe = divine axe por 30 barras.\nlivro nivel 6 = livro nivel 6 por 60 barras.\ndivine club = divine club por 30 barras.\ndivine sword = divine sword por 30 barras.\ndivine crossbow = divine crossbow por 30 barras.\nlivro nivel 5 = livro nivel 5 por 30 barras.\nsuper divine axe = super divine axe por 60 barras.\nsuper divine club = super divine club por 60 barras.\nsuper divine sword = super divine sword por 60 barras.\nsuper divine staff = super divine staff por 60 barras.\nsuper divine crossbow = super divine crossbow por 60 barras.\nskillclub = adiciona 1 skill club por 1 barras.\nskillsword = adiciona 1 skill sword por 1 barras.\nskillaxe = adiciona 1 skill axe por 1 barras.\nskilldistance = adiciona 1 skill distance por 1 barras.\nskillshielding = adiciona 1 skill shielding por 1 barras.\nmagiclevel = adiciona 1 magic level por 3 barras.\nmagiclevel5 = adiciona 5 magic level por 15 barras.\nskillclub10 = adiciona 10 skills club por 10 barras.\nskillsword10 = adiciona 10 skills sword por 10 barras.\nskillaxe10 = adiciona 10 skills axe por 10 barras.\nskilldistance10 = adiciona 10 skill distance por 10 barras.\nskillshielding10 = adiciona 10 skill shielding por 10 barras.\nremoverfrag = remove todos frags por 100k.\nO Item desejado não existe em nosso stock. Veja a cima os detalhes dos items disponíveis.")
    return true
    end

    for f, v in pairs(tb) do
    if param == f then
    if v.t == 1 then
    if player:getItemCount(coinID) >= v.price then
    local item_quant = (v.bag_quant * 2000)/100
    for x = 1, v.bag_quant do
    local bag = player:addItem(v.bag, 1)
    for i = 1, item_quant do
    bag:addItem(v.item, 100)
    end
    end
    player:removeItem(coinID, v.price)
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, v.msg)
    player:setStorageValue(storage, os.time()+1)
    break
    else
    player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    end
    elseif v.t == 2 then
    if player:getItemCount(coinID) >= v.price then
    item = player:addItem(v.item, 1)
    item:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "Este item pode ser adquirido através do shopping. Adquirido dia " .. os.date("%d/%m/%Y - %X") .." por ".. player:getName() ..". Serial: ".. player:getGuid() ..".")
    player:removeItem(coinID, v.price)
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, v.msg)
    player:setStorageValue(storage, os.time()+1)
    break
    else
    player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    end
    elseif v.t == 3 then
    if player:getItemCount(coinID) >= v.price then
    player:addPremiumDays(v.days)
    player:removeItem(coinID, v.price)
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou " .. v.days .. " dias de vip com sucesso.")
    player:setStorageValue(storage, os.time()+1)
    break
    else
    player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    end
    elseif v.t == 4 then
    if player:getBaseMagicLevel() >= v.lim then
    player:sendCancelMessage(v.lim_msg)
    return true
    end
    if not isInArray(v.vocations, player:getVocation():getId()) then
    player:sendCancelMessage(v.voc_msg)
    return true
    end
    if player:getItemCount(coinID) >= v.price then
    player:removeItem(coinID, v.price)
    player:setStorageValue(storage, os.time()+1)
    player:remove()
    db.query("UPDATE `players` SET `".. v.skill .. "` = `" .. v.skill .. "` + " .. v.incre .. " WHERE `id` = ".. pid)
    else
    player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    end
    elseif v.t == 5 then
    if not isInArray(v.vocations, player:getVocation():getId()) then
    player:sendCancelMessage(v.voc_msg) return false
    end
    if player:getSkillLevel(v.skill) >= v.lim then
    player:sendCancelMessage("Você não pode comprar esse skill.") return false
    end
    if player:getItemCount(coinID) >= v.price then
    player:removeItem(coinID, v.price)
    player:setStorageValue(storage, os.time()+1)
    player:remove()
    db.query("UPDATE `players` SET `".. v.skill .. "` = `" .. v.skill .. "` + " .. v.incre .. " WHERE `id` = ".. pid)
    return true
    else
    player:sendCancelMessage("Você não possui a quantidade necessária para comprar.") return false
    end
    elseif v.t == 6 then
    if player:getItemCount(2160) >= v.price then
    player:removeItem(2160, v.price)
    player:setSkull(SKULL_NONE)
    player:setSkullTime(0)
    player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your skull and frags has been removed!")
    player:setStorageValue(storage, os.time()+1)
    db.query("UPDATE `player_deaths` SET `unjustified` = 0 WHERE `unjustified` = 1 AND `killed_by` = " .. db.escapeString(player:getName()))
    else
    player:sendCancelMessage("Você não possui a quantidade necessária para comprar.")
    end
    end
    end
    end

    return false
    end

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    .

  7. .Qual servidor ou website você utiliza como base? 

    The OTX Server Global - Version: (3.10)

    Qual o motivo deste tópico? 

    No meu servidor a vida e mana esta travada no 65535 não passa disso mesmo que o player pegue mais level. Coloquei um comando de ver a vida e fiz alguns teste e mana e vida fica assim

    107005 se alguém puder me da essa força tenho as sources do servidor.

     

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    image.png.72d5b37382e2cad38df548ecb2bff4bb.png

     

    protocolgame.cpp não consegui colocar por que é muito grande vou hospedar no mediafire se precisar de mais alguma informação eu adiciono.

    Você tem o código disponível? Se tiver publique-o aqui: 

    https://www.mediafire.com/file/qekq15qtxyphyey/protocolgame.cpp/file

     

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

     

  8. Em 26/12/2020 em 11:57, Vitorelias disse:

    .Qual servidor ou website você utiliza como base? 

     

    OTX Version 3.10

     

    Qual o motivo deste tópico? 

    Tenho um comando TFS 0.4 gostaria de passar ele para OTX  eu consegui fazer alguns ajuste quando o Player usa o comando !comprar funciona porem

    quando o player usa !comprar skillclub ou qualquer comando não acontece nada.

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

     

    comprar.lua

    Você tem o código disponível? Se tiver publique-o aqui: 

    function onSay(cid, words, param, channel)

    if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa está em área protegida para utilizar este comando.")
    return TRUE
    end

    if(param ~= "") and (param ~= "skillclub") and (param ~= "skillsword") and (param ~= "skillaxe") and (param ~= "skilldistance") and (param ~= "skillshielding") and (param ~= "magiclevel") and (param ~= "magiclevel5") and (param ~= "skillclub10") and (param ~= "skillsword10") and (param ~= "skillaxe10") and (param ~= "skilldistance10") and (param ~= "skillshielding10") then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Para comprar digite !comprar (nome do item)\nOpcoes:\nskillclub = adiciona 1 skill club por 1 barras.\nskillsword = adiciona 1 skill sword por 1 barras.\nskillaxe = adiciona 1 skill axe por 1 barras.\nskilldistance = adiciona 1 skill distance por 1 barras.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillshielding = adiciona 1 skill shielding por 1 barras.\nmagiclevel = adiciona 1 magic level por 3 barras.\nmagiclevel5 = adiciona 5 magic level por 15 barras.\nskillclub10 = adiciona 10 skills club por 10 barras.\nskillsword10 = adiciona 10 skills sword por 10 barras.\nskillaxe10 = adiciona 10 skills axe por 10 barras.\nskilldistance10 = adiciona 10 skill distance por 10 barras.\nskillshielding10 = adiciona 10 skill shielding por 10 barras.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O Item desejado não existe em nosso stock. Veja a cima os detalhes dos items disponíveis.")
    return TRUE
    end

    if(param == "") then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Para comprar digite !comprar (nome do item)\nOpcoes:\n.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillclub = adiciona 1 skill club por 1 barras.\nskillsword = adiciona 1 skill sword por 1 barras.\nskillaxe = adiciona 1 skill axe por 1 barras.\nskilldistance = adiciona 1 skill distance por 1 barras.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillshielding = adiciona 1 skill shielding por 1 barras.\nmagiclevel = adiciona 1 magic level por 3 barras.\nmagiclevel5 = adiciona 5 magic level por 15 barras.\nskillclub10 = adiciona 10 skills club por 10 barras.\nskillsword10 = adiciona 10 skills sword por 10 barras.\nskillaxe10 = adiciona 10 skills axe por 10 barras.\nskilldistance10 = adiciona 10 skill distance por 10 barras.\nskillshielding10 = adiciona 10 skill shielding por 10 barras.")
    return TRUE
    end


    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "magiclevel") then
    if getPlayerMagLevel(cid) >= 200 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter magic level acima de 200.")
    return TRUE
    end
    if(not isSorcerer(cid) and not isDruid(cid) and not isInfernalist(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Sorcerers, Druids e Infernalists podem comprar magic level.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 3 then
    local pid = getPlayerGUID(cid) 
    doPlayerRemoveItem(cid, 9971, 3)
    doRemoveCreature(cid, true)
    db.query("UPDATE `players` SET `maglevel` = `maglevel` + 1 WHERE `id` = "..pid)
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillclub") then
    if getPlayerSkillLevel(cid, SKILL_CLUB) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isDrunou(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Drunous podem comprar skill de club.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local club = getPlayerSkillLevel(cid, SKILL_CLUB) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (club + 1) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillsword") then
    if getPlayerSkillLevel(cid, SKILL_SWORD) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de sword.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local sword = getPlayerSkillLevel(cid, SKILL_SWORD) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (sword + 1) .. ", `count` = 0 WHERE `skillid` = 2 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillaxe") then
    if getPlayerSkillLevel(cid, SKILL_AXE) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de axe.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local axe = getPlayerSkillLevel(cid, SKILL_AXE) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (axe + 1) .. ", `count` = 0 WHERE `skillid` = 3 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skilldistance") then
    if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isPaladin(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins podem comprar skill de distance.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local distance = getPlayerSkillLevel(cid, SKILL_DISTANCE) 
    doPlayerRemoveItem(cid, 9971, 1)
    setPlayerStorageValue(cid,11548,os.time()+0)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (distance + 1) .. ", `count` = 0 WHERE `skillid` = 4 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillshielding") then
    if getPlayerSkillLevel(cid, SKILL_SHIELD) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if(not isPaladin(cid) and not isKnight(cid) and not isDrunou(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins, Knights e Drunous podem comprar skill de shield.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local shield = getPlayerSkillLevel(cid, SKILL_SHIELD) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (shield + 1) .. ", `count` = 0 WHERE `skillid` = 5 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "magiclevel5") then
    if getPlayerMagLevel(cid) >= 196 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter magic level acima de 200.")
    return TRUE
    end
    if(not isSorcerer(cid) and not isDruid(cid) and not isInfernalist(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Sorcerers, Druids e Infernalists podem comprar magic level.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 15 then
    local pid = getPlayerGUID(cid) 
    doPlayerRemoveItem(cid, 9971, 15)
    doRemoveCreature(cid, true)
    db.query("UPDATE `players` SET `maglevel` = `maglevel` + 5 WHERE `id` = "..pid)
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillclub10") then
    if getPlayerSkillLevel(cid, SKILL_CLUB) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isDrunou(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Drunous podem comprar skill de club.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local club = getPlayerSkillLevel(cid, SKILL_CLUB) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (club + 10) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillsword10") then
    if getPlayerSkillLevel(cid, SKILL_SWORD) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de sword.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local sword = getPlayerSkillLevel(cid, SKILL_SWORD) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (sword + 10) .. ", `count` = 0 WHERE `skillid` = 2 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillaxe10") then
    if getPlayerSkillLevel(cid, SKILL_AXE) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de axe.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local axe = getPlayerSkillLevel(cid, SKILL_AXE) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (axe + 10) .. ", `count` = 0 WHERE `skillid` = 3 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skilldistance10") then
    if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isPaladin(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins podem comprar skill de distance.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local distance = getPlayerSkillLevel(cid, SKILL_DISTANCE) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (distance + 10) .. ", `count` = 0 WHERE `skillid` = 4 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillshielding10") then
    if getPlayerSkillLevel(cid, SKILL_SHIELD) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if(not isPaladin(cid) and not isKnight(cid) and not isDrunou(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins, Knights e Drunous podem comprar skill de shield.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local shield = getPlayerSkillLevel(cid, SKILL_SHIELD) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (shield + 10) .. ", `count` = 0 WHERE `skillid` = 5 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    end
    end
    return TRUE
    end
     

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    image.png.7555654d116b51fe33e21997779c6741.png

     

    Quando o player usa o comando !comprar eu consegui ajustar aparece o que o player pode comprar, porem quando o player usa o !comprar e skillclub ou qualquer outro não acontece nada.

     

    Alguém consegue me passar uma lista de funções OTX pra min tentar ajustar o script pelo menos?

  9. .Qual servidor ou website você utiliza como base? 

     

    OTX Version 3.10

     

    Qual o motivo deste tópico? 

    Tenho um comando TFS 0.4 gostaria de passar ele para OTX  eu consegui fazer alguns ajuste quando o Player usa o comando !comprar funciona porem

    quando o player usa !comprar skillclub ou qualquer comando não acontece nada.

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    Não aparece nenhum erro no distro

     

    comprar.lua

    Você tem o código disponível? Se tiver publique-o aqui: 

    function onSay(cid, words, param, channel)

    if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa está em área protegida para utilizar este comando.")
    return TRUE
    end

    if(param ~= "") and (param ~= "skillclub") and (param ~= "skillsword") and (param ~= "skillaxe") and (param ~= "skilldistance") and (param ~= "skillshielding") and (param ~= "magiclevel") and (param ~= "magiclevel5") and (param ~= "skillclub10") and (param ~= "skillsword10") and (param ~= "skillaxe10") and (param ~= "skilldistance10") and (param ~= "skillshielding10") then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Para comprar digite !comprar (nome do item)\nOpcoes:\nskillclub = adiciona 1 skill club por 1 barras.\nskillsword = adiciona 1 skill sword por 1 barras.\nskillaxe = adiciona 1 skill axe por 1 barras.\nskilldistance = adiciona 1 skill distance por 1 barras.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillshielding = adiciona 1 skill shielding por 1 barras.\nmagiclevel = adiciona 1 magic level por 3 barras.\nmagiclevel5 = adiciona 5 magic level por 15 barras.\nskillclub10 = adiciona 10 skills club por 10 barras.\nskillsword10 = adiciona 10 skills sword por 10 barras.\nskillaxe10 = adiciona 10 skills axe por 10 barras.\nskilldistance10 = adiciona 10 skill distance por 10 barras.\nskillshielding10 = adiciona 10 skill shielding por 10 barras.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O Item desejado não existe em nosso stock. Veja a cima os detalhes dos items disponíveis.")
    return TRUE
    end

    if(param == "") then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Para comprar digite !comprar (nome do item)\nOpcoes:\n.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillclub = adiciona 1 skill club por 1 barras.\nskillsword = adiciona 1 skill sword por 1 barras.\nskillaxe = adiciona 1 skill axe por 1 barras.\nskilldistance = adiciona 1 skill distance por 1 barras.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillshielding = adiciona 1 skill shielding por 1 barras.\nmagiclevel = adiciona 1 magic level por 3 barras.\nmagiclevel5 = adiciona 5 magic level por 15 barras.\nskillclub10 = adiciona 10 skills club por 10 barras.\nskillsword10 = adiciona 10 skills sword por 10 barras.\nskillaxe10 = adiciona 10 skills axe por 10 barras.\nskilldistance10 = adiciona 10 skill distance por 10 barras.\nskillshielding10 = adiciona 10 skill shielding por 10 barras.")
    return TRUE
    end


    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "magiclevel") then
    if getPlayerMagLevel(cid) >= 200 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter magic level acima de 200.")
    return TRUE
    end
    if(not isSorcerer(cid) and not isDruid(cid) and not isInfernalist(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Sorcerers, Druids e Infernalists podem comprar magic level.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 3 then
    local pid = getPlayerGUID(cid) 
    doPlayerRemoveItem(cid, 9971, 3)
    doRemoveCreature(cid, true)
    db.query("UPDATE `players` SET `maglevel` = `maglevel` + 1 WHERE `id` = "..pid)
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillclub") then
    if getPlayerSkillLevel(cid, SKILL_CLUB) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isDrunou(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Drunous podem comprar skill de club.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local club = getPlayerSkillLevel(cid, SKILL_CLUB) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (club + 1) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillsword") then
    if getPlayerSkillLevel(cid, SKILL_SWORD) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de sword.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local sword = getPlayerSkillLevel(cid, SKILL_SWORD) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (sword + 1) .. ", `count` = 0 WHERE `skillid` = 2 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillaxe") then
    if getPlayerSkillLevel(cid, SKILL_AXE) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de axe.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local axe = getPlayerSkillLevel(cid, SKILL_AXE) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (axe + 1) .. ", `count` = 0 WHERE `skillid` = 3 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skilldistance") then
    if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isPaladin(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins podem comprar skill de distance.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local distance = getPlayerSkillLevel(cid, SKILL_DISTANCE) 
    doPlayerRemoveItem(cid, 9971, 1)
    setPlayerStorageValue(cid,11548,os.time()+0)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (distance + 1) .. ", `count` = 0 WHERE `skillid` = 4 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillshielding") then
    if getPlayerSkillLevel(cid, SKILL_SHIELD) >= 350 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if(not isPaladin(cid) and not isKnight(cid) and not isDrunou(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins, Knights e Drunous podem comprar skill de shield.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 1 then
    local pid = getPlayerGUID(cid)
    local shield = getPlayerSkillLevel(cid, SKILL_SHIELD) 
    doPlayerRemoveItem(cid, 9971, 1)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (shield + 1) .. ", `count` = 0 WHERE `skillid` = 5 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "magiclevel5") then
    if getPlayerMagLevel(cid) >= 196 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter magic level acima de 200.")
    return TRUE
    end
    if(not isSorcerer(cid) and not isDruid(cid) and not isInfernalist(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Sorcerers, Druids e Infernalists podem comprar magic level.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 15 then
    local pid = getPlayerGUID(cid) 
    doPlayerRemoveItem(cid, 9971, 15)
    doRemoveCreature(cid, true)
    db.query("UPDATE `players` SET `maglevel` = `maglevel` + 5 WHERE `id` = "..pid)
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillclub10") then
    if getPlayerSkillLevel(cid, SKILL_CLUB) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isDrunou(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Drunous podem comprar skill de club.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local club = getPlayerSkillLevel(cid, SKILL_CLUB) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (club + 10) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillsword10") then
    if getPlayerSkillLevel(cid, SKILL_SWORD) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de sword.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local sword = getPlayerSkillLevel(cid, SKILL_SWORD) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (sword + 10) .. ", `count` = 0 WHERE `skillid` = 2 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillaxe10") then
    if getPlayerSkillLevel(cid, SKILL_AXE) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isKnight(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de axe.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local axe = getPlayerSkillLevel(cid, SKILL_AXE) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (axe + 10) .. ", `count` = 0 WHERE `skillid` = 3 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skilldistance10") then
    if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if not isPaladin(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins podem comprar skill de distance.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local distance = getPlayerSkillLevel(cid, SKILL_DISTANCE) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (distance + 10) .. ", `count` = 0 WHERE `skillid` = 4 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    return TRUE
    end
    end

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    if(param == "skillshielding10") then
    if getPlayerSkillLevel(cid, SKILL_SHIELD) >= 341 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.")
    return TRUE
    end
    if(not isPaladin(cid) and not isKnight(cid) and not isDrunou(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins, Knights e Drunous podem comprar skill de shield.")
    return TRUE
    end
    if getPlayerItemCount(cid, 9971) >= 10 then
    local pid = getPlayerGUID(cid)
    local shield = getPlayerSkillLevel(cid, SKILL_SHIELD) 
    doPlayerRemoveItem(cid, 9971, 10)
    doRemoveCreature(cid, true)
    db.query("UPDATE `player_skills` SET `value` = " .. (shield + 10) .. ", `count` = 0 WHERE `skillid` = 5 and `player_id` = " .. pid .. ";")
    return TRUE
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.")
    end
    end
    return TRUE
    end
     

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    image.png.7555654d116b51fe33e21997779c6741.png

     

    Quando o player usa o comando !comprar eu consegui ajustar aparece o que o player pode comprar, porem quando o player usa o !comprar e skillclub ou qualquer outro não acontece nada.

  10. .Qual servidor ou website você utiliza como base? 

    The OTX Server Global - Version: (3.10)

    Qual o motivo deste tópico? 

    Olá bom dia peguei um servidor Global e no site não tinha opção de vocação o player começava sem vocação, ai eu acabei colocando as vocação no site, porem quando 

    o player cria conta e loga, fica com speed 7 e o player fica bugado não consegue andar, se alguém conseguir me da uma luz do que eu possa fazer pra corrigir obrigado.

     

    Feliz natal!

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    image.png.22382190ec07a7d2b8c6722aa5a97c21.png

     

     

  11. Em 07/12/2020 em 13:42, Naze disse:

    Essa é a action da wall, so configura as posições, nome, storage e tempo

    
    local cfg = {
        stor = 55555,
        pos_player = {x = 130, y = 68, z = 7},
        pos_mob = {x = 131, y = 69, z = 7},
        name_mob = "Demon",
        time = 10,
    }
    
    function teleportAndSpawn(cid)
        doTeleportThing(cid, cfg.pos_player)
        while cfg.time >= 1 do
            addEvent(doSendAnimatedText, (cfg.time*1000), cfg.pos_mob, -(cfg.time-11), math.random(1,255))
            cfg.time = cfg.time - 1
        end
        addEvent(doSummonCreature, 10000, cfg.name_mob, cfg.pos_mob)
    end
    
    function onUse(cid, item, frompos, item2, topos)
        if getPlayerStorageValue(cid, cfg.stor) < 1 then
            doPlayerSendTextMessage(cid, 22, "Você não tem permissão!")
            return false
        end
            teleportAndSpawn(cid)
            doPlayerSendTextMessage(cid, 22, "Em 10 segundos o Boss aparecera.")
        return true
    end

     

    em creaturescripts.xml adiciona esse tag

    
    <event type="death" name="DeathTaskBoss" event="script" value="nomedoscript.lua"/>

    Em creaturescripts/scripts cria esse script e configura o nomedoscritps e stor e msgs.

    
    local name_boss = "Demon"
    local stor = 55555
    function onDeath(cid, corpse, deathList)
    	if getCreatureName(cid) == name_boss then
    		if getPlayerStorageValue(deathList[1], stor) >= 1 then
    			setPlayerStorageValue(deathList[1], stor, 0)
    			doPlayerSendTextMessage(deathList[1], 22,"Você derrotou o Boss Parabéns!")
    		end
    	end
        return true
    end

     

    por ultimo para funciona vai no boss e adiciona esse tag antes do </monster>

    
    <script> <event name="DeathTaskBoss"/> </script> 

     

    Faça tudo correto que vai funcionar já testei.

    Deu certo será que se consegue fazer uns ajuste? no caso se mata o boss e você continua na sala teria como colocar uma mensagem "Você matou o getCreatureName você será removido da sala em 1 minuto" 

  12. .Qual servidor ou website você utiliza como base? 

    TFS 0.4 8.6

    Qual o motivo deste tópico? 

    action ao dar use em uma alavanca remove Wall, e aparece um baú e um determina posição ex 542.542.7 só que nesse baú tem que vim com uma storage já só o player da use no bau e ganhar o item de Quest.

     

     

    Você tem o código disponível? Se tiver publique-o aqui: 

     

    Esse meu script já esta funcionando uma parte, ele já remove a Wall no caso só precisaria fazer com que apareça um baú em determinada posição e nesse bau o player ao da use pegue o item. Obrigado

     

    function onUse(cid, item, frompos, item2, topos)
    piece1pos = {x=1424, y=1062, z=7, stackpos=1}
    getpiece1 = getThingfromPos(piece1pos)
    
    if item.uid == 10831 and item.itemid == 1946 then 
    doRemoveItem(getpiece1.uid,1)
    else
    doPlayerSendTextMessage(cid,22,"Desculpe, não é possível.")
    return true
    end
    end  

     

     

  13. 2 horas atrás, Rogex Joyz disse:

    Eu recomendo você usar o sistema de task do Vodkart, eu testei em tfs 0.4 e foi perfeitamente funcional. O sistema conta com uma janela pop-up para as tasks, você acompanha em tempo real no seu default o andamento da task atual, há um rank de players das tasks falando !task rank e ainda há um prêmio para o player que completar todas as tasks (tudo configurável). Sinceramente, não consigo imaginar um sistema de task melhor que este. Caso queira dar uma olhada, clique aqui.

    Podem fechar o topico, já foi resolvido :) Vodkart já me ajudo.

  14. Em 18/11/2020 em 19:24, FlameArcixt disse:

    Não sou programador mas talvez seja assim, quem souber, me corrija

     

    Script Wall: 

      Ocultar conteúdo

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if getPlayerStorageValue(cid,STO,1) then
    doTeleportThing(cid,POS)
    addEvent(doSendAnimatedText,1000,POS1,"1",COR)
    addEvent(doSendAnimatedText,2000,POS1,"2",COR)
    addEvent(doSendAnimatedText,3000,POS1,"3",COR)
    addEvent(doSendAnimatedText,4000,POS1,"4",COR)
    addEvent(doSendAnimatedText,5000,POS1,"5",COR)
    addEvent(doSendAnimatedText,6000,POS1,"6",COR)
    addEvent(doSendAnimatedText,7000,POS1,"7",COR)
    addEvent(doSendAnimatedText,8000,POS1,"8",COR)
    addEvent(doSendAnimatedText,9000,POS1,"9",COR)
    addEvent(doSendAnimatedText,10000,POS1,"10",COR)
    addEvent(doSummonCreature,10000,NOMECRIATURA,POSSPAWN)
    else
    doPlayerSendTextMessage(cid, 18, "Edite a mensagem")
    end
    end

    Mensagem ao matar o monstro: Mensagem death

     

    Não entendi essa parte do script doTeleportThing(cid,POS)  no POS no caso eu tenho que colocar a position que o player será teletransportado? esse sistema eu vi em um otserv vou postar o video para melhor entender mas obrigado ai vareu 

     

     

    1 minuto atrás, Vitorelias disse:

    Não entendi essa parte do script doTeleportThing(cid,POS)  no POS no caso eu tenho que colocar a position que o player será teletransportado? esse sistema eu vi em um otserv vou postar o video para melhor entender mas obrigado ai vareu 

    No caso também o Player vai poder ter varias storage, por que ele pode fazer várias task  de criaturas .

     

    1 minuto atrás, Vitorelias disse:

     

     

  15. .Qual servidor ou website você utiliza como base? 

    TFS 0.4 8.60

     

    Boa tarde, gostaria de um script que o Player precisasse de uma Storage para clicar em um Wall e após clicar na Wall ele será teleportado para uma posição X ex; 542, 542, 7.

    e se por acaso o Player clicar na Wall sem ter a Storage aparece uma mensagem pra ele (Você precisa de uma permissão).

     

    Após o player cai na posição 542,542,7 preciso que apareça uma criatura em uma outra posição exemplo pos = 543, 544, 7 só que antes da criatura spawnar preciso que conte 10 segundos que nem na imagem > image.png.9c72017259cfc3a75118369e3a513ff9.png  após passar esses 10 segundos a criatura aparece ex: Apocalypse. e logo ao matar o Apocalypse preciso que apareça uma mensagem para o Player. Parabéns você matou Apocalypse você será removido em 1 minuto da arena BOSS. 

     

    OBS: Esqueci de um detalhe quando a criatura Demon morrer preciso que a storage seja removida do Player.

     

    A ideia é o Player fazer a Task e quando ele concluir a task, a recompensa será uma storage que será preciso para acessar a sala do BOSS.

    OBS. O meu NPC já esta tudo certo já esta entregando a Storage para o Player.

    Obrigado!!!

     

     

     

  16. .Qual servidor ou website você utiliza como base? 

    TFS 0.4 8.6

    Qual o motivo deste tópico? 

    Olá boa noite, tenho um script de NPC de Task funciona porem esta com alguns erro, e precisa fazer algumas modificações.

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    n ta contando a task e tem outra coisa quando vai fazer a task so ta dando pra pegar 1 task por semana era pra poder pegar todas elas exemplo se eu quiser pegar todas as task dragon,dragon,lord etc eu poderia porem dps de terminha exemplo a de dragon so dps de 1 semana que eu posso fazer a de dragons denovo más se eu não tive feito a de dragon guardian eu posso fazer ou seja cada task teria o seu devido prazo pra fazer separadamente.
    edit pra pode pegar todas as task se quiser acho que voce vai ter que colocar pra cada task ter uma storage propria exemplo o dragon ter a sua storage e a do dragon lord outra e pah dai não haveria problema se o player quise-se fazer varias task

     

    Você tem o código disponível? Se tiver publique-o aqui: 

    1* creaturescripts/scripts/DragonsTask.lua

     

      Ocultar conteúdo

    local function isSummon(cid)

    if getCreatureMaster(cid) ~= cid then

    return true

    end

    return false

    end

     

    function onDeath(cid, corpse, deathList)

     

    local stoTime = 96588

    local stoKill = 96589

    local stoName = 96590

    local task = {

    ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000},

    ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000},

    ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000},

    ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000},

    ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000},

    ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000},

    ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000},

    }

     

    for a = 1, #deathList do

    local pk = deathList[a]

    local myTask = task[string.lower(getPlayerStorageValue(pk, stoName))]

    local left = math.ceil((getPlayerStorageValue(pk, stoTime) - os.time())/(24 * 60 * 60))

     

    if myTask and getCreatureName(cid) == getPlayerStorageValue(pk, stoName) and not isSummon(cid) then

    if left > 0 and getPlayerStorageValue(pk, stoKill) > 0 then

    setPlayerStorageValue(pk, stoKill, getPlayerStorageValue(pk, stoKill) - 1)

    local sto = getPlayerStorageValue(pk, stoKill)

    local jaMatou = math.abs(getPlayerStorageValue(pk, stoKill)-myTask.qnt)

     

    if sto == 0 then

    doPlayerSendTextMessage(pk, 20, "["..myTask.kill.." Task Finalizada] ("..myTask.qnt.."/"..myTask.qnt..")")

    else

    doPlayerSendTextMessage(pk, 20, "["..myTask.kill.." Task] ("..jaMatou.."/"..myTask.qnt..")")

    end

    end

    end

    end

    return true

    end

     

     

    creaturescripts/scripts/login.lua

     

    registerCreatureEvent(cid, "DragonsTask")
     

     

     

    creaturescripts/creaturescripts.xml

     

    <event type="death" name="DragonsTask" event="script" value="DragonsTask.lua"/>
     

     

     

    monster/ em todos os dragoes da quest...

     

    <script>
    <event name="DragonsTask"/>
    </script>
     

     

     

    npc/scripts/NpcDragonsTask.lua

     

      Ocultar conteúdo

    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

    local stoTime = 96588

    local stoKill = 96589

    local stoName = 96590

    ----

    local msg = string.lower(msg)

    local left = math.ceil((getPlayerStorageValue(cid, stoTime) - os.time())/(24 * 60 * 60)) --nao mexe!

    local task = {

    ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000},

    ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000},

    ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000},

    ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000},

    ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000},

    ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000},

    ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000},

    }

    local myTask = task[string.lower(getPlayerStorageValue(cid, stoName))] or {}

     

     

    if (msgcontains(msg, 'dragoes') or msgcontains(msg, 'missao')) then

    if getPlayerStorageValue(cid, stoTime) ~= -1 and left > 0 and getPlayerStorageValue(cid, stoKill) > 0 then

    local faltaMatar = getPlayerStorageValue(cid, stoKill)

    local jaMatou = math.abs(getPlayerStorageValue(cid, stoKill)-myTask.qnt)

    local prazo = os.date("%d/%m/%y %X", getPlayerStorageValue(cid, stoTime))

    selfSay("Você ainda não matou os "..myTask.qnt.." "..myTask.kill..", atualmente você matou ".. (jaMatou)..", resta "..faltaMatar..". Seu prazo é de até "..prazo..".", cid)

    talkState[talkUser] = 0

    return true

    elseif getPlayerStorageValue(cid, stoTime) ~= -1 and left <= 0 and getPlayerStorageValue(cid, stoKill) ~= -1 then

    selfSay("Infelismente você não matou os "..myTask.qnt.." "..myTask.kill.." a tempo. Se você quiser, você pode tentar fazer denovo a missao.", cid)

    setPlayerStorageValue(cid, stoTime, -1)

    setPlayerStorageValue(cid, stoKill, -1)

    setPlayerStorageValue(cid, stoName, -1)

    talkState[talkUser] = 0

    return true

    elseif getPlayerStorageValue(cid, stoTime) ~= -1 and left > 0 and getPlayerStorageValue(cid, stoKill) == -1 then

    local prazo = os.date("%d/%m/%y %X", getPlayerStorageValue(cid, stoTime))

    selfSay("Você tem que esperar pelo menos 1 semana para poder pegar essa tarefa denovo. O prazo acaba dia ".. prazo..".", cid)

    talkState[talkUser] = 0

    return true

    elseif getPlayerStorageValue(cid, stoTime) ~= -1 and left > 0 and getPlayerStorageValue(cid, stoKill) == 0 then

    selfSay("Obrigado! você matou os "..myTask.qnt.." "..myTask.kill.." em menos de 1 semana. Aqui esta sua recompensa! Lembre-se que você pode fazer esta task quantas vezes quiser,desde que tenha concluído 1 semana contado a partir do dia de inicio.", cid)

    doPlayerAddExp(cid, myTask.exp) --premio

    setPlayerStorageValue(cid, stoKill, -1)

    setPlayerStorageValue(cid, stoName, -1)

    talkState[talkUser] = 0

    return true

    else

    if getPlayerStorageValue(cid, stoTime) ~= -1 and getPlayerStorageValue(cid, stoKill) == -1 then

    setPlayerStorageValue(cid, stoTime, -1) --soh pra evitar problemas...

    end

    selfSay("Eu caço vários tipos, como dragon, dragon lord, hydra, frost dragon, dragon guardian, thunder dragon e demodras. Você quer me ajudar a caçar um deles? Qual?", cid)

    talkState[talkUser] = 1

    end

     

    elseif task[msg] and talkState[talkUser] == 1 then

    setPlayerStorageValue(cid, stoName, task[msg].kill)

    myTask = task[string.lower(getPlayerStorageValue(cid, stoName))]

    selfSay("Ótimo! Você precisa matar pelo menos "..myTask.qnt.." "..myTask.kill.." em um prazo de 1 semana para te dar recompensa. Aceita?", cid)

    talkState[talkUser] = 2

     

    elseif (msgcontains(msg, 'no') or msgcontains(msg, 'nao')) and talkState[talkUser] == 2 then

    selfSay("Ok então, fale comigo denovo quando você quiser me ajudar a matar esses malditos dragões!", cid)

    talkState[talkUser] = 0

     

    elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 2 then

    local semana = 7 * 24 * 60 * 60

    setPlayerStorageValue(cid, stoTime, os.time()+semana)

    setPlayerStorageValue(cid, stoKill, myTask.qnt)

    setPlayerStorageValue(cid, stoName, myTask.kill)

    local sto = getPlayerStorageValue(cid, stoTime)

    selfSay("Você já pode começar a matar os ".. (myTask.kill) ..", mas cuidado! É uma criatura muito forte. Volte aqui quando matar ".. (myTask.qnt) .." ".. (myTask.kill) .." para ser recompensado. O prazo é até ".. os.date("%d/%m/%y %X", sto) ..".", cid)

     

    end

     

    return true

    end

     

    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

    npcHandler:addModule(FocusModule:new())

     

     

    npc/Arthas.xml

     

      Ocultar conteúdo

    <?xml version="1.0" encoding="UTF-8"?>

     

    <npc name="Arthas" script="NpcDragonsTask.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">

     

    <health now="150" max="150"/>

     

    <look type="640" head="91" body="114" legs="86" feet="0"/>

     

    <parameters>

     

    <parameter key="message_greet" value="Ola |PLAYERNAME|. Meu nome é Arthas, sou caçador de {dragoes}."/>

     

    </parameters>

     

    </npc>

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

     

  17. .Qual servidor ou website você utiliza como base? 

     

    Qual o motivo deste tópico? 

    No meu RME quando eu abro o mapa as walls que coloquei na house esta certo porem quando logo no servidor as walls que coloquei estão diferente segue abaixo as Imagens.

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

      image.png.646813b72c0be04e8395362057f7ed27.png      < No servidor      image.png.65fca5c662765720132633ac94864115.png No RME

     

    Não sei por que isso acontece, já tentei deletar a house e criar novamente porém o erro persiste, agora se eu colocar a porta em outro lugar funciona.

     

  18. 41 minutos atrás, Naze disse:

    ve se em sua lib/ tem algum arquivo exhaustion.lua se nao tiver algo assim ou parecido, cria e adiciona isso.

    
    exhaustion =
    {
    	check = function (cid, storage)
    		if(getPlayerFlagValue(cid, PLAYERFLAG_HASNOEXHAUSTION)) then
    			return false
    		end
    
    		return getPlayerStorageValue(cid, storage) >= os.time(t)
    	end,
    
    	get = function (cid, storage)
    		if(getPlayerFlagValue(cid, PLAYERFLAG_HASNOEXHAUSTION)) then
    			return false
    		end
    
    		local exhaust = getPlayerStorageValue(cid, storage)
    		if(exhaust > 0) then
    			local left = exhaust - os.time(t)
    			if(left >= 0) then
    				return left
    			end
    		end
    
    		return false
    	end,
    
    	set = function (cid, storage, time)
    		setPlayerStorageValue(cid, storage, os.time(t) + time)
    	end,
    
    	make = function (cid, storage, time)
    		local exhaust = exhaustion.get(cid, storage)
    		if(not exhaust) then
    			exhaustion.set(cid, storage, time)
    			return true
    		end
    
    		return false
    	end
    }
    
    exhaust =
    {
    	check = function (cid, storage)
    		if getPlayerStorageValue(cid, storage) - os.time(t) > 0 then
    		 return true
    		end
    	 return false
    	end,
    
    	get = function (cid, storage)
    		local exhaust = (getPlayerStorageValue(cid, storage) - os.time(t))
    		return exhaust
    	end,
    
    	set = function (cid, storage, time)
    		setPlayerStorageValue(cid, storage, os.time(t) + time)
    	end,
    
    	make = function (cid, storage, time)
    		local exhaust = exhaustion.get(cid, storage)
    		if exhaust == 0 then
    			exhaustion.set(cid, storage, time)
    			return true
    		end
    		return false
    	end,
    	
    	time = function (cid, storage)
    	 return convertTime(getPlayerStorageValue(cid, storage) - os.time())
    	end
    }

     

    Boa noite, na lib não tinha o arquivo exhaustion.lua eu criei e joguei o script dentro porem não funcionou eu peguei do meu otserv 8.6 também que estava funcionando não deu certo.

    agora que mudei de versão coloquei cliente 10 e 11.90 os script que tenho no 8.6 a maioria não funciona kk to bem chateado :(

     

    Lua Script Error: [TalkAction Interface]
    data/talkactions/scripts/reset.lua:onSay
    data/talkactions/scripts/reset.lua:29: attempt to index global 'exhaustion' (a nil value)
    stack traceback:
            [C]: in function '__index'
            data/talkactions/scripts/reset.lua:29: in function <data/talkactions/scripts/reset.lua:27>

  19. .Qual servidor ou website você utiliza como base? 

    OTX Server Global - Versão: (3.10)

    Qual o motivo deste tópico? 

    Estou tentando instalar o sistema de Reset nesse global porém quando o player usa o !resetar não funciona e o /installreset também não funciona.

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    image.thumb.png.11326f06927e59ff6e31bcc854fafed8.png

     

    Você tem o código disponível? Se tiver publique-o aqui: 

    --[[ <(Advanced Reset System 2.0)>
                                       Autor: Juniior Cwb ;*. Contato: (Juniior_Cwb@hotmail.com)
                                       Versão: 2.0
                                       Testado em: 8.50 e 8.60
                                       TFS: 0.3.6 and 0.4.0
                                       Atenção , Se Achar Esse Sistema em outro site ou forum favor comunicar Eu ( Juniior Cwb ) Juniior_Cwb@hotmail.com )
                       -=[Características]=-
                                ~( Versão 2.0 )~
                       - Resets agora Armazenados na DataBase; (Sem Valor de Storage)
                       - Instala o System e cria a Tabela de Resets com o comando "/installreset";
                       - Resets no Look do jogador ex: 22:10 You see Marcello [Reset 2] (Level 8). He is an elder druid.;
                       - [STAGES] para "Premium Account" e "Free Account";  ]]
    --=[Functions]=--
    -- installReset()'                                                                        [Instala o Sistema.]
    -- tableResetInstall()'                             [Verifica Se o Sistema ja foi instaladao.]
    -- nowReseting()'                                                                           [Verifica, retorna o erro ou reseta.]
    -- getPlayerReset(cid)'                             [Pega numero de resets do player.]
    -- checLevelStageReset(cid)'                      [Verifica o Level para Resetar.]
    -- newReset(cid)'                                                                           [Verifica todas as Condições de Reset.]
    -- addValue(value)'                                                         [Adiciona numero de resets.]
    --=[Comandos de Jogadores]=--
    --  "!resetar"            -- Para Resetar.
     
    local exhaustionMinutes = 1 -- exausted em segundos
    local storageUse = 34538 -- storage usado no exausted.
     
    function onSay(cid, words, param)
    if words =="!resetar" then
    if(exhaustion.check(cid, storageUse) == TRUE) then
       if (exhaustion.get(cid, storageUse) >= 5) then
       doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, storageUse) / 5 + 1) .."] Segundos.")
       end
        if (exhaustion.get(cid, storageUse) <= 5) then
        doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, storageUse).."] segundos.")
        end
    return TRUE
    end
    exhaustion.set(cid, storageUse, exhaustionMinutes*5)
    --[ Condições de Reset ] --
    local coNdConf = {
    needPz = false,                                              -- Precisa estar em Pz pra resetar?                                   [false, false]
    needPa = false,                                           -- Precisa ser Premium Account Pra resetar?      [true, false]
    withe = false,                                              -- Players com Pk Withe podem resetar?                                          [false, false]
    red = true,                                                                      -- Players com Pk Red pode resetar?                                        [false, false]
    battle = true,                                           -- Players precisão estar sem battle pra resetar? [true, true]
    teleport = false,                                                          -- Teleportar Player para o templo após resetar?  [false, false]
    look = true,                                                       -- Aparecer Resets no Look do Player?                                                 [true, true]
    pid = getPlayerGUID(cid),                 -- Não Mexer.
     
    --[ Configurações do Reset ] --
    resetConf = {
    Level = 350,                                                                -- Level Necessário para Resetar.                                                                                       [Valor]
    backLvl = 25,                                                                -- Level que voltará após o Reset.                                                                                    [Valor]
    time = 0,                                                                                 -- Tempo para o Player deslogar ao resetar, em segundos.  [Valor]
      },
    }
                                      --[[>> STAGES <<]]--
    x=true;X=true -- Não Mexer.
    local stage = {Abilitar = {x}, Desabilitar = {},                 --<< Abilitar Stages?? >>--                                [{x};{}]
    --          [RESETS]      |  [PREMMY]  |   [FREE]
    stage1= {resets= 1,  premmy= 330, free= 330},
    stage2= {resets= 5,  premmy= 355, free= 355},    -- EXPLICANDO e Configurando stages. (Se estiver Abilitado [Abilitar = {x}])
    stage3= {resets= 10, premmy= 360, free= 360},    -- resets = Número de resets para o Stage;
    stage4= {resets= 15, premmy= 365, free= 365},    -- premmy = Level necessário para Premium Accounts;
    stage5= {resets= 20, premmy= 380, free= 380},    -- free            = Level necessário para Free Accounts;
    stage6= {resets= 25, premmy= 390, free= 390},     -- Coloque em Ordem...
    stage7= {resets= 30, premmy= 410, free= 410},    -- [OBS: MARQUE UM "X" PARA ABILITAR OU DESABILITAR OS STAGES]
    stage8= {resets= 35, premmy= 430, free= 430},    -- EX: para desabilitar mude: Abilitar = {}, Desabilitar = {x}
    stage9= {resets= 40, premmy= 450, free= 450},
    stage10={resets= 45, premmy= 480, free= 480},
    stage11={resets= 50, premmy= 510, free= 510},
    stage12={resets= 55, premmy= 550, free= 550},
    stage13={resets= 60, premmy= 610, free= 610},
    stage14={resets= 65, premmy= 750, free= 750},
    stage15={resets= 70, premmy= 760, free= 760},
    stage16={resets= 75, premmy= 900, free= 900},
    stage17={resets= 80, premmy= 1000, free= 1000},
    stage18={resets= 85, premmy= 1300, free= 1300},
    stage19={resets= 90, premmy= 1500, free= 1500},
    stage20={resets= 95, premmy= 3000, free= 3000},
    stage21={resets= 100, premmy= 2800, free= 2800},
    stage22={resets= 105, premmy= 2900, free= 2900},
    stage23={resets= 110, premmy= 3200, free= 3200},
    stage24={resets= 115, premmy= 3500, free= 3500},
    stage25={resets= 120, premmy= 4300, free= 4300},
    stage26={resets= 125, premmy= 4500, free= 4500},
    stage27={resets= 130, premmy= 99500, free= 99500},
     
    }
                                --[[>> FIM STAGES <<]]--
    --=[Pega Valor de Resets]=--
    function getPlayerReset(cid)
    local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";")
    rss = qr:getDataInt("reset", coNdConf.pid)
    if rss < 0 then
    rss = 0
    end
    return rss
    end
    local success = "                                                                 ~~ Sucesso! ~~ \nVocê tem agora "..(getPlayerReset(cid)+1).." resets. \nVocê será deslogado em "..coNdConf.resetConf.time.." segundos." ;err = doPlayerSendTextMessage
    local qrt = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";");rss_db = qrt:getDataInt("reset", coNdConf.pid)
    local lvl_query = "UPDATE `players` SET `level` = "..(coNdConf.resetConf.backLvl)..", `experience` = 0 WHERE `id`= " .. coNdConf.pid .. ";"
    local reset_query = "UPDATE `players` SET `reset` = "..(getPlayerReset(cid)+(1)).." WHERE `id`= " .. coNdConf.pid .. ";"
    local nolook_query = "UPDATE `players` SET `description` = '' WHERE `players`.`id`= " .. coNdConf.pid .. ";"
    local look_query = "UPDATE `players` SET `description` = ' [Reset "..(getPlayerReset(cid)+(1)).."]' WHERE `players`.`id`= " .. coNdConf.pid .. ";"
    --=[Reseta]=--
    function addValue(value)
    if coNdConf.look == false then
      doRemoveCreature(cid)
    db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(nolook_query)
    else
      doRemoveCreature(cid)
       db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(look_query)
      return LUA_NO_ERROR
    end
    end
    function nowReseting()
    if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -")
      return true
    end
    if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then
                      doPlayerPopupFYI(cid, success)
                      addEvent(addValue, coNdConf.resetConf.time*1, value)
                else
                      doPlayerPopupFYI(cid, success)
                      addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid)))
                      addEvent(addValue, coNdConf.resetConf.time*1000, value)
      return true
    end
    end
    --[STAGES Nao mexer em nada.]--
    function checkLevelStageReset(cid)
    local stages = {
                {resets= stage.stage1.resets, premmy= stage.stage1.premmy, free= stage.stage1.free},
                {resets= stage.stage2.resets, premmy= stage.stage2.premmy, free= stage.stage2.free},
                {resets= stage.stage3.resets, premmy= stage.stage3.premmy, free= stage.stage3.free},
                {resets= stage.stage4.resets, premmy= stage.stage4.premmy, free= stage.stage4.free},
                {resets= stage.stage5.resets, premmy= stage.stage5.premmy, free= stage.stage5.free},
                {resets= stage.stage6.resets, premmy= stage.stage6.premmy, free= stage.stage6.free},
                {resets= stage.stage7.resets, premmy= stage.stage7.premmy, free= stage.stage7.free},
                {resets= stage.stage8.resets, premmy= stage.stage8.premmy, free= stage.stage8.free},
                {resets= stage.stage9.resets, premmy= stage.stage9.premmy, free= stage.stage9.free},
                {resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free},
                {resets=stage.stage11.resets, premmy=stage.stage11.premmy, free=stage.stage11.free},
                {resets=stage.stage12.resets, premmy=stage.stage12.premmy, free=stage.stage12.free},
                {resets=stage.stage13.resets, premmy=stage.stage13.premmy, free=stage.stage13.free},
                {resets=stage.stage14.resets, premmy=stage.stage14.premmy, free=stage.stage14.free},
                {resets=stage.stage15.resets, premmy=stage.stage15.premmy, free=stage.stage15.free},
                {resets=stage.stage16.resets, premmy=stage.stage16.premmy, free=stage.stage16.free},
                {resets=stage.stage17.resets, premmy=stage.stage17.premmy, free=stage.stage17.free},
                {resets=stage.stage18.resets, premmy=stage.stage18.premmy, free=stage.stage18.free},
                {resets=stage.stage19.resets, premmy=stage.stage19.premmy, free=stage.stage19.free},
                {resets=stage.stage20.resets, premmy=stage.stage20.premmy, free=stage.stage20.free},
                {resets=stage.stage21.resets, premmy=stage.stage21.premmy, free=stage.stage21.free},
                {resets=stage.stage22.resets, premmy=stage.stage22.premmy, free=stage.stage22.free},
                {resets=stage.stage23.resets, premmy=stage.stage23.premmy, free=stage.stage23.free},
                {resets=stage.stage24.resets, premmy=stage.stage24.premmy, free=stage.stage24.free},
                {resets=stage.stage25.resets, premmy=stage.stage25.premmy, free=stage.stage25.free},
                {resets=stage.stage26.resets, premmy=stage.stage26.premmy, free=stage.stage26.free},
       {resets=stage.stage27.resets, premmy=stage.stage27.premmy, free=stage.stage27.free},
     
    }
                local resets = getPlayerReset(cid)
                                for i, tab in ipairs(stages) do
                                                if resets <= tab.resets then
                                                                coNdConf.resetConf.Level = isPremium(cid) and tab.premmy or tab.free
                                                                break
                                                end
                                end
    if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then
    err(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -")
    return TRUE
    end
      if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then
                     doPlayerPopupFYI(cid, success)
                     addEvent(addValue, coNdConf.resetConf.time*1000, value)
       else
       doPlayerPopupFYI(cid, success)
       addEvent(addValue, coNdConf.resetConf.time*1000, value)
       addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid)))
                return true
      end
    end
                function newReset(cid)
                if(coNdConf.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == LUA_ERROR) then
                     err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return TRUE end
                if(coNdConf.needPa == true) and not isPremium(cid) then
                     err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return TRUE end
                if(coNdConf.withe == false) and (getCreatureSkullType(cid) == 3) then
                     err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Withe. -") return TRUE end
                if(coNdConf.red == false) and (getCreatureSkullType(cid) == 4) then
                     err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return TRUE end
                if(coNdConf.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
                     err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return TRUE end
    local xy = {true,false}
    table.insert(stage.Abilitar, false)
    table.insert(stage.Desabilitar, false)
    if stage.Abilitar[1] == xy[1] and stage.Desabilitar[1] == xy[2] then
    checkLevelStageReset(cid)
    elseif stage.Abilitar[1] == xy[2] and stage.Desabilitar[1] == xy[1] then
    nowReseting()
    else
    doPlayerPopupFYI(cid, "LUA_ERROR; Configure corretamente o Sistema de STAGES!")
    end
    return true
    end
                function tableResetInstall()
                     print(not rss_db  and LUA_ERROR or "Tabela de Resets: Instalada ... [success] ")
                     addEvent(newReset, 1000, cid)
                     return false
                     end
                if tableResetInstall() then
      end
    end
                --=[Install System]=--
                       function installReset()
                                if db.executeQuery("ALTER TABLE `players` ADD reset INT(11) NOT NULL DEFAULT 0;") then
                                                                print("[MarcelloMkez] -= Advanced Reset System 2.0 por DataBase =- Instalado com sucesso!")
                                                                return TRUE
                                end
                                print('[Advanced Reset System/MarcelloMkez] Não foi possível instalar o Sistema.')
                                return FALSE
                     end
                                local tt = {
                                       "Preparando Instalação...",
                                       "Instalando: TableReset Db...",
                                       "Instalando: getPlayerReset()...",
                                       "Instalando: addValue()...",
                                       "Instalando: checkLevelStageReset()...",
                                       "Instalando: newReset() and nowReseting()...",
                                       "Finalizando Instalação...",
                                       "...",
                                       success = {
                                       "Iniciando...",
                                       "function: TableReset Db...  [success]",
                                       "function: getPlayerReset()...          [success]",
                                       "function: addValue(value)...                   [success]",
                                       "function: checkLevelStageReset()... [success]",
                                       "function: newReset() and nowReseting()...    [success]",
                                       "Fim da Instalação.  ",
                                       "by: ~~ MarcelloMkez ~~                                          \nContato: marcello_dirt@hotmail.com",
                                       inst = {"MarcelloMkez","Advanced Reset System 2.0 por DataBase"
                                       },
                                     },
                                }
                     if words == "/installresetguiizeera" and getPlayerAccess(cid) >= 3 then
                                                function install()
                                                if installReset() then
                                                                print(""..tt.success[7].."")
                                                                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,""..tt.success[8].."")
                                                                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] -="..tt.success.inst[2].."=- Instalado com sucesso!")
                                       else
                                                                print("["..tt.success.inst[1].."]  FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].")
                                                                      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].")
                                                end
                                                return 1
                                end
                                      function concl(cid)
                                                local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[7].."")
                                                                     print(""..tt[8].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[7].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt[8].."")
                                                                addEvent(install, 1000,cid)
                                                end
                                                function finall(cid)
                                                                local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[6].."")
                                                                print(""..tt[7].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[6].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt[7].."")
                                                                addEvent(concl, 3000,cid)
                                                end
                                                     function installDd(cid)
                                                       local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[5].."")
                                                                print(""..tt[6].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[5].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt[6].."")
                                                                addEvent(finall, 1000,cid)
                                                end
                                                function installCc(cid)
                                                       local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[4].."")
                                                                print(""..tt[5].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[4].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt[5].."")
                                                      addEvent(installDd, 1000,cid)
                                                end
                                                function installBb(cid)
                                                       local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[3].."")
                                                                print(""..tt[4].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[3].."")
                                                      doPlayerSendTextMessage(cid, typetx,""..tt[4].."")
                                                addEvent(installCc, 1000,cid)
                                                end
                                                function installAa(cid)
                                                      local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[2].."")
                                                                print(""..tt[3].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[2].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt[3].."")
                                                                addEvent(installBb, 1000,cid)
                                                end
                                                function toInstall()
                                                      local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                                print(""..tt.success[1].."")
                                                                print(""..tt[2].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt.success[1].."")
                                                                doPlayerSendTextMessage(cid, typetx,""..tt[2].."")
                                                       addEvent(installAa, 1000,cid)
                                                      end
                                                function preparation()
                                                      local typetx = MESSAGE_STATUS_CONSOLE_BLUE
                                                       print(""..tt[1].."")
                                                     doPlayerSendTextMessage(cid, typetx,""..tt[1].."")
                                                addEvent(toInstall, 3000,cid)
                                end
                                                if preparation() then
                                                end
                                end
    return 1
    end
    --=[By: Juniior Cwb ;* ]=--

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

     

  20. 6 minutos atrás, Celulose disse:

    @Vitorelias 

    
    CREATE TABLE `player_preytimes` (
      `player_id` int(11) NOT NULL,
      `bonus_type1` int(11) NOT NULL,
      `bonus_value1` int(11) NOT NULL,
      `bonus_name1` varchar(50) NOT NULL,
      `bonus_type2` int(11) NOT NULL,
      `bonus_value2` int(11) NOT NULL,
      `bonus_name2` varchar(50) NOT NULL,
      `bonus_type3` int(11) NOT NULL,
      `bonus_value3` int(11) NOT NULL,
      `bonus_name3` varchar(50) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

     

    Muito obrigado deu certo u-u

  21. Qual o motivo deste tópico? 

    Ao criar conta no site, apos loga a conta na parte de adicionar nome, e sexo o site não da opção de escolher as vocation.

     

     

    Config.PHP

     

    Citar

    <?PHP
    if ( ! function_exists('is_https'))
    {
        function is_https()
        {
            if ( ! empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
            {
                return TRUE;
            }
            elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) === 'https')
            {
                return TRUE;
            }
            elseif ( ! empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off')
            {
                return TRUE;
            }

            return FALSE;
        }
    }

    $is_https = is_https();

    if ($is_https) {
        $base_url = "https://" . $_SERVER['HTTP_HOST'];
        $base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
    } else {
        $base_url = "http://" . $_SERVER['HTTP_HOST'];
        $base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);
    }

    $config['base_url'] = $base_url;
    $config['site']['base_url'] = $base_url;

    # Info Bar Config
    $config['site']['info_bar_active'] = true;

    # Using Ajax Field Validation, this is important if you want to use ajax check in your create account.
    $config['site']['sqlHost'] = "localhost";
    $config['site']['sqlUser'] = "root";
    $config['site']['sqlPass'] = "";
    $config['site']['sqlBD'] = "";

    # Config Shop
    $outfits_list = array();
    $loyalty_title = array(
        50 => 'Scout',
        100 => 'Sentinel',
        200 => 'Steward',
        400 => 'Warden',
        1000 => 'Squire',
        2000 => 'Warrior',
        3000 => 'Keeper',
        4000 => 'Guardian',
        5000 => 'Sage
    ');
    $config['shop']['newitemdays'] = 1;

    # Social Networks
    $config['social']['facebook'] = "https://www.facebook.com/tibia";
    $config['social']['discord'] = "";

    # Character Former name, time in days to show the former names
    $config['site']['formerNames'] = 10;
    $config['site']['formerNames_amount'] = 10;

    # PAGE: characters.php
    $config['site']['quests'] = array(
        "Demon Helmet" => 2213,
        "In Service of Yalahar" => 12279,
        "Pits Of Inferno" => 10544,
        "The Ancient Tombs" => 50220,
        "The Annihilator" => 2215,
        "The Demon Oak" => 1010,
        "Wrath Of The Emperor" => 12374
    );

    # PAGE: whoisonline.php
    $config['site']['private-servlist.com_server_id'] = 0;

    # Account Maker Config
    $config['site']['serverPath'] = "C:/Legend/";
    $config['site']['encryptionType'] = 'sha1';
    $config['site']['useServerConfigCache'] = false;
    $towns_list = array(
        1 => 'Wisland',
        2 => 'Thais',
        3 => 'Kazordoon',
        4 => 'Carlin',
        5 => 'Ab\'Dendriel',
        6 => 'Rookgaard',
        7 => 'Liberty Bay',
        8 => 'Port Hope',
        9 => 'Ankrahmun',
        10 => 'Darashia',
        11 => 'Edron',
        12 => 'Svargrond',
        13 => 'Yalahar',
        14 => 'Farmine',
        28 => 'Gray Beach',
        29 => 'Roshamuul',
        33 => 'Rathleton',
        34 => 'Krailos',
        51 => 'Dawnport',
        52 => 'Feyrist'
    );

    # Create Account Options
    $config['site']['one_email'] = true;
    $config['site']['create_account_verify_mail'] = false;
    $config['site']['verify_code'] = true;
    $config['site']['email_days_to_change'] = 3;
    $config['site']['newaccount_premdays'] = 0;
    $config['site']['send_register_email'] = true;
    $config['site']['flash_client_enabled'] = false;

    # Create Character Options
    $config['site']['newchar_vocations'] = array(0 => 'Rook Sample'); // if you wan't use rook, put (1 => 'Sorcerer Sample', 2 => 'Druid Sample', 3 => 'Paladin Sample', 4 => 'Knight Sample');
    $config['site']['newchar_towns'] = array(1);
    $config['site']['max_players_per_account'] = 7;

    # Emails Config
    $config['site']['send_emails'] = true;
    $config['site']['mail_address'] = "";
    $config['site']['mail_senderName'] = "";
    $config['site']['smtp_enabled'] = true;
    $config['site']['smtp_host'] = "ssl://smtp.gmail.com";
    $config['site']['smtp_port'] = 465;
    $config['site']['smtp_auth'] = true;
    $config['site']['smtp_user'] = "";
    $config['site']['smtp_pass'] = "";
    $config['site']['smtp_secure'] = true;

    # PAGE: accountmanagement.php
    $config['site']['send_mail_when_change_password'] = true;
    $config['site']['send_mail_when_generate_reckey'] = true;
    $config['site']['email_time_change'] = 7;
    $config['site']['daystodelete'] = 7;

    # PAGE: guilds.php
    $config['site']['guild_need_level'] = 1;
    $config['site']['guild_need_pacc'] = false;
    $config['site']['guild_image_size_kb'] = 50;
    $config['site']['guild_description_chars_limit'] = 2000;
    $config['site']['guild_description_lines_limit'] = 6;
    $config['site']['guild_motd_chars_limit'] = 250;

    # PAGE: adminpanel.php
    $config['site']['access_admin_panel'] = 99999;

    # PAGE: latestnews.php
    $config['site']['news_limit'] = 6;

    # PAGE: killstatistics.php
    $config['site']['last_deaths_limit'] = 40;

    # PAGE: team.php
    $config['site']['groups_support'] = array(2, 3, 4, 5, 6);

    # PAGE: highscores.php
    $config['site']['groups_hidden'] = array(3, 4, 5, 6);
    $config['site']['accounts_hidden'] = array(1);

    # PAGE: lostaccount.php
    $config['site']['email_lai_sec_interval'] = 180;

    # Layout Config
    $config['site']['layout'] = 'tibiacom';
    $config['site']['vdarkborder'] = '#505050';
    $config['site']['darkborder'] = '#D4C0A1';
    $config['site']['lightborder'] = '#F1E0C6';

    ############################
    ## PagSeguro/Paypal Email ##
    ############################
    $config['pagseguro']['email'] = 'johncore@hotmail.com'; ## EMAIL PAGSEGURO ##
    $config['paypal']['email'] = 'johncore@hotmail.com'; ## EMAIL PAYPAL ##

    ## Formas de pagamento [1 = ativo | 0 = inativo] ##
    $config['site']['pagseguro'] = 1;
    $config['site']['paypal'] = 1;
    $config['site']['caixa'] = 1;
    $config['site']['picpay'] = 1;
    $config['site']['santander'] = 0;
    $config['site']['nubank'] = 0;
    $config['site']['mercadopago'] = 0;

    #####################
    ## Nome do Produto ##
    #####################
    $config['pagseguro']['produtoNome'] = 'Tibia Coins';

    #####################
    ## PICPAY ##
    #####################

    $config['site']['nomepicpay'] = '@johncore';
    $config['site']['linkqr'] = '<p style="text-align: center;"><img src="https://imgur.com/2rP2Os6.png" alt="" width="158" height="158" /></p></p>';

    #############################
    ######### C A I X A ########
    #############################
    #! Informações do pagamento com caixa economica federal !#
    $config['site']['CaixaCont'] = "
    Conta Poupanca 013: 00000000-0
    Ag: 0000
    Favorecido: Johncore Otgeriano   

    "; 

     

    As sample já estão adicionadas na database

    image.thumb.png.21942221d5e9dcaa7dcd7f3a2b8f0766.png

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    image.thumb.png.9ea97ddbf7d5c123f0b4a4e2c34aabcd.png

  22. .Qual servidor ou website você utiliza como base? 

     

    Qual o motivo deste tópico? 

    Toda vez que o Player logar no Servidor da esse erro no distro preciso executar uma Query na Database porem não sei o código para executar.

    Citar

    [Error - mysql_real_query] Query: SELECT `player_id`, `bonus_type1`, `bonus_value1`, `bonus_name1`, `bonus_type2`, `bonus_value2`, `bonus_name2`, `bonus_type3`, `bonus_value3`, `bonus_name3` FROM `player_preytimes` WHERE `player_id` = 6
    Message: Table 'database.player_preytimes' doesn't exist
    [Error - mysql_store_result] Query: SELECT `player_id`, `bonus_type1`, `bonus_value1`, `bonus_name1`, `bonus_type2`, `bonus_value2`, `bonus_name2`, `bonus_type3`, `bonus_value3`, `bonus_name3` FROM `player_preytimes` WHERE `player_id` = 6
    Message: Table 'database.player_preytimes' doesn't exist

     

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    image.thumb.png.00a608cfdd43771c5e5830a41889c34e.png

  23. Olá boa tarde gostaria de fazer algumas alteração na parte de monsters do meu otserv

    quando da spawn da criatura e se não tem player na tela a criatura fica parada gostaria, de saber se tem algum script

    que mesmo sem o player na tela a criatura fica se mexendo.

×
×
  • Create New...

Important Information

Confirmação de Termo