Ir para conteúdo

mane stick

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Você Tentou
    mane stick recebeu reputação de Mateus Robeerto em Estou com um problema com as skillss   
    estou com um problema nas skills, tenho um script de comprar skill
    ek e rp o maximo que era pra ser 350 de skill mas o meu script ta bugado e fica passando o skill fica bugadao,
    o ed e ms ta certinho coloquei limite de ml 200 e ta tudo certo só as skills sword,axe,club,distance,first que estão bugados
     
    é um revscript tfs 1.3 otg
     
     
     
     
  2. Curtir
    mane stick deu reputação a Mateus Robeerto em talkaction !comprar skill tfs 1.4   
    Esse script que eu postei é apenas para TFS 1x+, funcionando sem modificações no OTX/OTG misturado, e está tudo funcionando normalmente. O usuário @mane stick me procurou pelo Discord e, depois de pensar sobre isso, aceitei. Fiz as alterações necessárias para torná-lo compatível com OTX/OTG, e agora está funcionando perfeitamente. Ele disse que está tudo ok após os testes.
     
     
    data/scripts
    -- Definição das habilidades e suas características 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 = {1, 10}, voc_msg= "Somente Drunous podem comprar skill de club.", lim = 350, lim_msg = "Você não pode ter skill club acima de 350.", price= 1, incre = 1, skill = SKILL_CLUB}, ["skillsword"] = {vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de sword.", lim = 350, lim_msg = "Você não pode ter skill sword acima de 350.", price= 1, incre = 1, skill = SKILL_SWORD}, ["skillaxe"] = {vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de axe.", lim = 350, lim_msg = "Você não pode ter skill axe acima de 350.", price= 1, incre = 1, skill = SKILL_AXE}, ["skilldistance"] = {vocations = {3, 7}, voc_msg= "Somente Paladins podem comprar skill de distance.", lim = 350, lim_msg = "Você não pode ter skill distance acima de 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}, ["magiclevel5"] = {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 pode ter magic level acima de 200.", price= 15, incre = 5, skill = SKILL_MAGLEVEL}, ["skillclub10"] = {vocations = {9, 10}, voc_msg= "Somente Drunous podem comprar skill de club.", lim = 350, lim_msg = "Você não pode ter skill club acima de 350.", price= 10, incre = 10, skill = SKILL_CLUB}, ["skillsword10"] = {vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de sword.", lim = 350, lim_msg = "Você não pode ter skill sword acima de 350.", price= 10, incre = 10, skill = SKILL_SWORD}, ["skillaxe10"] = {vocations = {4, 8}, voc_msg= "Somente Knights podem comprar skill de axe.", lim = 350, lim_msg = "Você não pode ter skill axe acima de 350.", price= 10, incre = 10, skill = SKILL_AXE}, ["skilldistance10"] = {vocations = {3, 7}, voc_msg= "Somente Paladins podem comprar skill de distance.", lim = 350, lim_msg = "Você não pode ter skill distance acima de 350.", price= 10, incre = 10, skill = SKILL_DISTANCE}, ["skillshielding10"] = {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= 10, incre = 10, skill = SKILL_SHIELD}, } -- Função para obter o nome da habilidade com base no ID local function getPlayerSkillName(skillId) local skillNames = { [SKILL_CLUB] = "Club", [SKILL_SWORD] = "Sword", [SKILL_AXE] = "Axe", [SKILL_DISTANCE] = "Distance", [SKILL_SHIELD] = "Shielding", [SKILL_MAGLEVEL] = "Magic Level" } return skillNames[skillId] or "Unknown" end local function buySkill(player, skillData) local coinID = 9971 -- ID da moeda utilizada para compra local storage = 45611 -- Valor de armazenamento para controle de tempo if player:getItemCount(coinID) < skillData.price then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Você não possui a quantidade necessária para comprar.") return false end local skillId = skillData.skill local skillName = getPlayerSkillName(skillId) local currentSkill if skillId == SKILL_MAGLEVEL then currentSkill = player:getMagicLevel() else currentSkill = player:getSkillLevel(skillId) end if currentSkill == nil then player:sendCancelMessage("Você não possui essa habilidade.") return false end if skillId == SKILL_MAGLEVEL then local newMagLevel = currentSkill + skillData.incre if newMagLevel > skillData.lim then player:sendCancelMessage(skillData.lim_msg) return false end local target = player target:addManaSpent(target:getVocation():getRequiredManaSpent(target:getBaseMagicLevel() + 1) - target:getManaSpent()) print("Player: " .. player:getName() .. " adquiriu " .. skillData.incre .. " níveis de magic level. Novo magic level: " .. newMagLevel) else local target = player target:addSkillTries(skillId, target:getVocation():getRequiredSkillTries(skillId, target:getSkillLevel(skillId) + 1) - target:getSkillTries(skillId)) print("Player: " .. player:getName() .. " adquiriu " .. skillData.incre .. " níveis em " .. skillName) end if not isInArray(skillData.vocations, player:getVocation():getId()) then player:sendCancelMessage(skillData.voc_msg) return false end player:removeItem(coinID, skillData.price) player:setStorageValue(storage, os.time() + 1) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou " .. skillData.incre .. " níveis em " .. skillName .. " por " .. skillData.price .. " moedas.") return true end local buyComprar = TalkAction("!comprar") function buyComprar.onSay(player, words, param) local param = param:lower() local tile = player:getTile() if not tile or not tile:hasFlag(TILESTATE_PROTECTIONZONE) then player:sendCancelMessage("Você precisa estar em área protegida para utilizar este comando.") return false end local storage = 45611 -- Valor de armazenamento para controle de tempo 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 false end if param == "" or not skills[param] then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Comando inválido ou habilidade não encontrada. Use !comprar <habilidade> para comprar.") return false end local skillData = skills[param] local playerVocation = player:getVocation():getId() if not isInArray(skillData.vocations, playerVocation) then player:sendCancelMessage("Sua vocação não pode comprar essa habilidade.") return false end return buySkill(player, skillData) end buyComprar:separator(" ") buyComprar:register()  
  3. Você Tentou
    mane stick recebeu reputação de Mateus Robeerto em talkaction !comprar skill tfs 1.4   
    Estou com o mesmo problema😐
    Conseguiu resolver?
  4. Obrigado
    x64.rar
     
    para quem precisa das soucers compilada esta ai
  5. Curtir
    tem como você enviar dnvo o link compilado em 64bits, pliz
    pq esse link aparece essa msg 
    {"message":"Artifact not found or access denied."}
  6. Obrigado
    mane stick deu reputação a Mateus Robeerto em (Resolvido)Reset Look Database   
    Revscriptsys é uma nova forma alternativa de registrar scripts para que você não precise fazer isso via XML. Você só precisa colocar seus scripts lua dentro data/scripts/ou em qualquer subpasta dele, se desejar. Os scripts Monster são, no entanto, colocados em um caminho diferente: data/monster/(ou em qualquer subpasta dele, como antes). Este sistema suporta a utilização de diferentes metatabelas no mesmo script (Actions, MoveEvents, GlobalEvents...).
     
    Fica na pasta 'data/scripts"
    Creio que o OtservBR não suporta o 'EventCallback', porque simplesmente colocar na pasta 'data/scripts' já funciona na hora, hahaha.
     
     
    #Edited
     
    O problema foi resolvido via Discord. Para quem quer resets o look por DB, aqui está um exemplo.
    if thing:isCreature() and thing:isPlayer() then local playerGuid = thing:getGuid() local query = db.storeQuery("SELECT `resets` FROM `players` WHERE `id` = " .. playerGuid) if query then local playerResets = result.getDataString(query, "resets") description = string.format("%s\n[ Resets: %s ]", description, playerResets) result.free(query) else print(string.format("[Player ID: %s] Falha na consulta ao banco de dados", playerGuid)) end end Depende da sintaxe Lua e do seu arquivo player.lua. Pegue e veja se está correto, ajuste e teste. Boa sorte!
  7. Obrigado
    mane stick deu reputação a Mateus Robeerto em (Resolvido)Reset Look Database   
    Ok, fácil então... Procure essa linha
    function Player:onLook(thing, position, distance) É só prosseguir com cuidado, ok?
    function Player:onLook(thing, position, distance) local description = 'You see ' if thing:isItem() then if thing.actionid == 5640 then description = description .. 'a honeyflower patch.' elseif thing.actionid == 5641 then description = description .. 'a banana palm.' else description = description .. thing:getDescription(distance) end local itemType = thing:getType() if (itemType and itemType:getImbuingSlots() > 0) then local imbuingSlots = "Imbuements: (" for i = 1, itemType:getImbuingSlots() do local specialAttr = thing:getSpecialAttribute(i) local time = 0 if (thing:getSpecialAttribute(i+3)) then time = getTime(thing:getSpecialAttribute(i+3)) end if (specialAttr) then if (i ~= itemType:getImbuingSlots()) then imbuingSlots = imbuingSlots.. "" ..specialAttr.." " ..time..", " else imbuingSlots = imbuingSlots.. "" ..specialAttr.." " ..time..")." end else if (i ~= itemType:getImbuingSlots()) then imbuingSlots = imbuingSlots.. "Empty Slot, " else imbuingSlots = imbuingSlots.. "Empty Slot)." end end end description = string.gsub(description, "It weighs", imbuingSlots.. "\nIt weighs") end --[[-- KD look if thing:isCreature() and thing:isPlayer() then description = string.format("%s\n [PVP Kills: %d] \n [PVP Deaths: %d] \n", description, math.max(0, thing:getStorageValue(167912)), math.max(0, thing:getStorageValue(167913))) end end--]] --[[-- MARRY if LOOK_MARRIAGE_DESCR and thing:isCreature() then if thing:isPlayer() then description = description .. self:getMarriageDescription(thing) end end--]] elseif thing:isPlayer() then local playerGuid = thing:getGuid() local query = db.storeQuery("SELECT `resets` FROM `players` WHERE `id` = " .. playerGuid) if query then local playerDescription = result.getDataString(query, "resets") description = string.format("%s\n[ Resets: %s ]", description, playerDescription) print(string.format("[Player ID: %s] Resets: %s", playerGuid, playerDescription)) else print(string.format("[Player ID: %s] Falha na consulta ao banco de dados", playerGuid)) end else description = description .. thing:getDescription(distance) end -- KD look if thing:isCreature() and thing:isPlayer() then description = string.format("%s\n [PVP Kills: %d] \n [PVP Deaths: %d] \n", description, math.max(0, thing:getStorageValue(167912)), math.max(0, thing:getStorageValue(167913))) end -- MARRY if LOOK_MARRIAGE_DESCR and thing:isCreature() then if thing:isPlayer() then description = description .. self:getMarriageDescription(thing) end end if self:getGroup():getAccess() then if thing:isItem() then description = string.format('%s\nItem ID: %d', description, thing.itemid) local actionId = thing.actionid if actionId ~= 0 then description = string.format('%s, Action ID: %d', description, actionId) end local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID) if uniqueId > 0 and uniqueId < 65536 then description = string.format('%s, Unique ID: %d', description, uniqueId) end description = description .. '.' local itemType = thing:getType() local transformEquipId = itemType:getTransformEquipId() local transformDeEquipId = itemType:getTransformDeEquipId() if transformEquipId ~= 0 then description = string.format('%s\nTransforms to: %d (onEquip)', description, transformEquipId) elseif transformDeEquipId ~= 0 then description = string.format('%s\nTransforms to: %d (onDeEquip)', description, transformDeEquipId) end local decayId = itemType:getDecayId() if decayId ~= -1 then description = string.format('%s\nDecays to: %d', description, decayId) end elseif thing:isCreature() then local title = getTitle(thing.uid) if title then description = description .. title .. " of Relembra." end local str = '%s\nHealth: %d / %d' if thing:getMaxMana() > 0 then str = string.format('%s, Mana: %d / %d', str, thing:getMana(), thing:getMaxMana()) end description = string.format(str, description, thing:getHealth(), thing:getMaxHealth()) .. '.' end local position = thing:getPosition() description = string.format( '%s\nPosition: %d, %d, %d', description, position.x, position.y, position.z ) if thing:isCreature() and thing:isPlayer() then description = string.format('%s\nIP: %s.', description, Game.convertIpToString(thing:getIp())) end end self:sendTextMessage(MESSAGE_INFO_DESCR, description) end  

Informação Importante

Confirmação de Termo