Ir para conteúdo

Beeki

Herói
  • Total de itens

    1900
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Histórico de Reputação

  1. Upvote
    Beeki deu reputação a KUNGLOW em [Arquivado]Entrevista Caotic   
    KungLow:Olá Xtibianos, estou aqui para minha 1° entrevista!!! Desta vez, exclusiva, com o Colaborador Caotic. Caotic, antes de começarmos gostaria de dizer algo?
    Caotic:Bem primeiramente agradecer ao Thiago(Vodkart),LordFire,Beeki,Stevan(KungLow) e o Demobholder.Porque sem eles nunca estaria aqui eles foram peças muito importante para mim e para o Xtibia.
     
    KungLow:Nos fale seu nome, enderço, fax, cep, identidade... entre outros ;s
    Caotic:Sou Tiago Moro no Interior de Minas Gerais em uma pequena cidade
     
    KungLow:Tiago(Caotic), como foi que você conheceu o Xtibia? Foi por algum motivo especial?
    Caotic:Meu primeiro contanto com Tibia foi por pura pesquisa minha tive alguns amigos que ja jogavam tibia mais nunca sabia. Depois de um tempo me aventurei em PokeTibia(Pokemon) que realmente a porta para a entrada para o xtibia.
    Caotic:Bem depois que descobri a possibilidade de ter um servidor pokemon eu achei o xtibia para encontrar informaçoes então não demorou para eu descobrir coisas novos em otservs até decidi me aventurar a estudar Lua em diversos websites e principalmente no Xtibia.Faz mais ou menos 2 realizando scripts Lua e uns 3 anos no Xtibia
     
    KungLow:Qual foi assim o seu script assim possamos dizer o mais complicado de se fazer? E o mais fácil?
    Caotic:Bem sempre tem script que realmente tem uma coisinha que irrita bem o pior mesmo foi um que usava hora.E o mais facil não me recordo
     
    KungLow:Quais dicas você tem a dar para quem está querendo entrar no ramo da criação de scripts?
    Caotic:Nunca desistir,sempre buscar maneiras de inovaçoes,Desconsiderar sua Idade,Se esforçar muito e sempre pensar que e capaz.
     
    KungLow:Quais os maiores problemas que você encontrou na sua função, antes de chegar a ser colaborador?
    Caotic:Foi temer a minha capacidade pensar que nunca chegaria a ser um coloborador este foi o maior desafio meu tive que acabar com este pensamento tive que levantar a cabeça e esforçar muito.
     
    KungLow:Dentro da equipe do Xtibia, há alguém que você não se da bem? Sempre tem uma pessoa que não combinamos. Há essa pessoa dentro da equipe do Xtibia?
    Caotic:Realmente no forum xtibia teve membros que não gostaram da minha presença mais depois que foi me descobrindo hoje nos me damos bem em relação a equipe nunca tive um usuario que não gostava de min sempre me dei bem com eles.
     
    KungLow:Vamos falar sobre o tibia global agora?
    Caotic:Ok.
     
    KungLow:Você prefere qual estilo de mundos para se jogar? Non-PvP, Enforced ou PvP?
    Caotic:No-PvP
     
    KungLow:Você é mais da paz né.. rsrs... Na sua humilde opinião qual o melhor mundo hoje em dia para se jogar?
    Caotic:Realmente para mim isto não faz diferença se colocar esforco no personagem você vai consiguir
     
    KungLow:Vamos falar um pouco então sobre ots pokemons.
    Caotic:Ok. Vamos lá.
     
    KungLow:Quando foi o seu primeiro contato com estes digamos "inusitados servidores de tibia"?
    Caotic:Foi no Beta do Pokemon Adventure onde apenas existia ainda suas contas por account manager este foi uns dos melhores momentos tibianos que eu joguei.
     
    KungLow:Como foi seu primeiro contato com esses servidores? Digo, que havia novos comandos, novas sprites..
    Caotic:Realmente otservs poketibianos eu realmente passei por varios muitas pessoas podem me conhecer com este nick "Hero Naruto" ou "Hero Caotic" por isso que lembrar os meus primeiros contato seria um pouco dificil de lembrar.
     
    KungLow:Qual foi seu primeiro pokemon? Como foi sua experiência com eles?
    Caotic:KK, este pergunta me faz rir naquela epoca tudo mundo sonhava ter o grouup id 6(God) então realmente eu fiz um servidor em busca disto e como era novato dava god até para deus kk. O primeiro Pokemon Me recordo nome do servidor acho que era (Nome do Servidor) depois foi o pokemon diamond e depois o pokemon battle.Teve outros mais que eu me recorde são estes
     
    KungLow:Já teve alguma decepção na vida tibiana/poketibiana? Digo achar que um char era mulher e dar um item tal e depois descobre e fica decepcionado?
    Caotic:Nunca tive isto mais tenho decpeçoes por perder amigos e até hoje ja tentei procurar alguns(Males ou Male(Este participo do comandopokemon) e GM Dix(Poke Online)
     
    KungLow:O que você faria se fosse promovido a moderador do Xtibia agora?
    Caotic:Daria o Maximo de Min porque espero todos os dias esta promoção para eu monstrar minha capacidade ainda mais. Pretendo dar tudo que tenho quando for promovido.E jamais abondanar o xtibia porque esta chance eu espero desde do primeiro dia que entrei no xtibia
     
    KungLow:Por suas "viajadas" no fórum, já tem alguém em vista para que possa ser um futuro membro do Xtibia?
    Caotic:Realmente confio muito que o Stevan(KunLow) vai brilhar no Xtibia. Quando o conheci sempre vi que ele era uma pessoa esforçada que buscava as coisas e espero que ele evolua e que fique sempre no xtibia
     
    KungLow:Obrigado Tiago(Caotic). Quando você me ajudou com meu 1° script, vi que você era uma pessoa não só para tirar dúvidas mas sim para ter uma amizade.
    Caotic:Obrigado
     
    KungLow:Estamos no fim de nossa entrevista, gostaria de dizer algo para fecharmos com chave de ouro?
    Caotic:Obrigado Aos Xtibianos e aos membros citados a cima.



  2. Upvote
    Beeki recebeu reputação de xxmiguel em [Encerrado] [Erro] Guild_Wars   
    Muda seu servidor para mysql e execute esse comando!
     
    CREATE TABLE IF NOT EXISTS `guild_wars` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `enemy_id` INT NOT NULL, `begin` BIGINT NOT NULL DEFAULT '0', `end` BIGINT NOT NULL DEFAULT '0', `frags` INT UNSIGNED NOT NULL DEFAULT '0', `payment` BIGINT UNSIGNED NOT NULL DEFAULT '0', `guild_kills` INT UNSIGNED NOT NULL DEFAULT '0', `enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0', `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `status` (`status`), KEY `guild_id` (`guild_id`), KEY `enemy_id` (`enemy_id`) ) ENGINE=InnoDB; ALTER TABLE `guild_wars` ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`; CREATE TABLE IF NOT EXISTS `guild_kills` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `guild_id` INT NOT NULL, `war_id` INT NOT NULL, `death_id` INT NOT NULL ) ENGINE = InnoDB; ALTER TABLE `guild_kills` ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE; ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0;
  3. Upvote
    Beeki recebeu reputação de Arroiszezenia em [Npc] Banker   
    Bem venho aqui trazer um sistema de Npc Bank, eu não testei ele ainda.. mais vou disponibilizar o script aqui, espero que ter ajudado, até!
     
    npc_bank.lua
     

    local config = { pin = false, -- players can protect their money with pin code (like in cash machines) (true/false) pinMinLength = 4, -- minimum pin length pinMaxLength = 4, -- maximum pin length pinStorage = 3006, -- only if pin enabled (used to store player pin) transferDisabledVocations = {0} -- disable non vocation characters } local talkState = {} local count = {} local transfer = {} local pin = {} local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 if(config.pin) then bank_pin = { get = function(cid) return getPlayerStorageValue(cid, config.pinStorage) end, set = function(cid, code) return setPlayerStorageValue(cid, config.pinStorage, code) end, logged = function(cid) return pin[cid] == bank_pin.get(cid) end, validate = function(code) if(not isNumber(code)) then return false end local length = tostring(code):len() return (length >= config.pinMinLength and length <= config.pinMaxLength) end } end if(not getPlayerBalance) then getPlayerBalance = function(cid) local result = db.getResult("SELECT `balance` FROM `players` WHERE `id` = " .. getPlayerGUID(cid)) if(result:getID() == -1) then return false end local value = tonumber(result:getDataString("balance")) result:free() return value end doPlayerSetBalance = function(cid, balance) db.executeQuery("UPDATE `players` SET `balance` = " .. balance .. " WHERE `id` = " .. getPlayerGUID(cid)) return true end doPlayerWithdrawMoney = function(cid, amount) local balance = getPlayerBalance(cid) if(amount > balance or not doPlayerAddMoney(cid, amount)) then return false end doPlayerSetBalance(cid, balance - amount) return true end doPlayerDepositMoney = function(cid, amount) if(not doPlayerRemoveMoney(cid, amount)) then return false end doPlayerSetBalance(cid, getPlayerBalance(cid) + amount) return true end doPlayerTransferMoneyTo = function(cid, target, amount) local balance = getPlayerBalance(cid) if(amount > balance) then return false end local tid = getPlayerByName(target) if(tid > 0) then doPlayerSetBalance(tid, getPlayerBalance(tid) + amount) else if(playerExists(target) == FALSE) then return false end db.executeQuery("UPDATE `player_storage` SET `value` = `value` + '" .. amount .. "' WHERE `player_id` = (SELECT `id` FROM `players` WHERE `name` = '" .. escapeString(player) .. "') AND `key` = '" .. balance_storage .. "'") end doPlayerSetBalance(cid, getPlayerBalance(cid) - amount) return true end end if(not doPlayerSave) then local function doPlayerSave(cid) return true end end local function getPlayerVocationByName(name) local result = db.getResult("SELECT `vocation` FROM `players` WHERE `name` = " .. db.escapeString(name)) if(result:getID() == -1) then return false end local value = result:getDataString("vocation") result:free() return value end local function isValidMoney(money) return (isNumber(money) and money > 0 and money < 4294967296) end local function getCount(string) local b, e = string:find("%d+") local money = b and e and tonumber(string:sub(b, e)) or -1 if(isValidMoney(money)) then return money end return -1 end function greetCallback(cid) talkState[cid], count[cid], transfer[cid], pin[cid] = 0, nil, nil, nil return true end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end ---------------------------- pin ------------------------- if(config.pin) then if(talkState[cid] == "verify-pin") then talkState[cid] = 0 pin[cid] = getCount(msg) if(not bank_pin.logged(cid)) then selfSay("Invalid pin code entered. Please try again.", cid) return true end selfSay("You have been successfully logged in.", cid) elseif(talkState[cid] == "new-pin") then talkState[cid] = 0 if(bank_pin.get(cid) ~= -1 and not bank_pin.logged(cid)) then selfSay("Please login before attempting to change your pin code.", cid) talkState[cid] = "verify-pin" return true end if(msgcontains(msg, 'reset') or msgcontains(msg, 'remove') or msgcontains(msg, 'clear')) then selfSay("Pin code has been removed.", cid) pin[cid] = nil bank_pin.set(cid, -1) return true end pin[cid] = getCount(msg) if(bank_pin.validate(pin[cid])) then selfSay("Pin code successfully changed.", cid) bank_pin.set(cid, pin[cid]) else local str = "" if(config.pinMinLength ~= config.pinMaxLength) then str = config.pinMinLength .. " - " .. config.pinMaxLength else str = config.pinMinLength end selfSay("Invalid pin code entered. Your pin should contain " .. str .. " digits", cid) end return true elseif(msgcontains(msg, 'balance') or msgcontains(msg, 'deposit') or msgcontains(msg, 'withdraw') or msgcontains(msg, 'transfer')) then if(bank_pin.get(cid) ~= -1 and not bank_pin.logged(cid)) then selfSay("Please tell me your bank pin code before making any transactions.", cid) talkState[cid] = "verify-pin" return true end talkState[cid] = 0 elseif(msgcontains(msg, 'login')) then talkState[cid] = "verify-pin" return true elseif(msgcontains(msg, 'pin')) then selfSay("Please tell me your new pin code.", cid) talkState[cid] = "new-pin" return true end end ---------------------------- help ------------------------ if msgcontains(msg, 'advanced') then if isInArray(config.transferDisabledVocations, getPlayerVocation(cid)) then selfSay("Once you are on the Tibian mainland, you can access new functions of your bank account, such as transferring money to other players safely or taking part in house auctions.", cid) else selfSay("Renting a house has never been this easy. Simply make a bid for an auction. We will check immediately if you have enough money.", cid) end talkState[cid] = 0 elseif msgcontains(msg, 'help') or msgcontains(msg, 'functions') then selfSay("You can check the {balance} of your bank account, {deposit} money or {withdraw} it. You can also {transfer} money to other characters, provided that they have a vocation.", cid) talkState[cid] = 0 elseif msgcontains(msg, 'bank') then npcHandler:say("We can change money for you. You can also access your bank account.", cid) talkState[cid] = 0 elseif msgcontains(msg, 'job') then npcHandler:say("I work in this bank. I can change money for you and help you with your bank account.", cid) talkState[cid] = 0 ---------------------------- balance --------------------- elseif msgcontains(msg, 'balance') then selfSay("Your account balance is " .. getPlayerBalance(cid) .. " gold.", cid) talkState[cid] = 0 ---------------------------- deposit --------------------- elseif msgcontains(msg, 'deposit all') and getPlayerMoney(cid) > 0 then count[cid] = getPlayerMoney(cid) if not isValidMoney(count[cid]) then selfSay("Sorry, but you can't deposit that much.", cid) talkState[cid] = 0 return false end if count[cid] < 1 then selfSay("You don't have any money to deposit in you inventory..", cid) talkState[cid] = 0 else selfSay("Would you really like to deposit " .. count[cid] .. " gold?", cid) talkState[cid] = 2 end elseif msgcontains(msg, 'deposit') then selfSay("Please tell me how much gold it is you would like to deposit.", cid) talkState[cid] = 1 elseif talkState[cid] == 1 then count[cid] = getCount(msg) if isValidMoney(count[cid]) then selfSay("Would you really like to deposit " .. count[cid] .. " gold?", cid) talkState[cid] = 2 else selfSay("Is isnt valid amount of gold to deposit.", cid) talkState[cid] = 0 end elseif talkState[cid] == 2 then if msgcontains(msg, 'yes') then if not doPlayerDepositMoney(cid, count[cid]) then selfSay("You don\'t have enough gold.", cid) else selfSay("Alright, we have added the amount of " .. count[cid] .. " gold to your balance. You can withdraw your money anytime you want to. Your account balance is " .. getPlayerBalance(cid) .. ".", cid) doPlayerSave(cid) end elseif msgcontains(msg, 'no') then selfSay("As you wish. Is there something else I can do for you?", cid) end talkState[cid] = 0 ---------------------------- withdraw -------------------- elseif msgcontains(msg, 'withdraw') then selfSay("Please tell me how much gold you would like to withdraw.", cid) talkState[cid] = 6 elseif talkState[cid] == 6 then count[cid] = getCount(msg) if isValidMoney(count[cid]) then selfSay("Are you sure you wish to withdraw " .. count[cid] .. " gold from your bank account?", cid) talkState[cid] = 7 else selfSay("Is isnt valid amount of gold to withdraw.", cid) talkState[cid] = 0 end elseif talkState[cid] == 7 then if msgcontains(msg, 'yes') then if not doPlayerWithdrawMoney(cid, count[cid]) then selfSay("There is not enough gold on your account. Your account balance is " .. getPlayerBalance(cid) .. ". Please tell me the amount of gold coins you would like to withdraw.", cid) talkState[cid] = 0 else selfSay("Here you are, " .. count[cid] .. " gold. Please let me know if there is something else I can do for you.", cid) talkState[cid] = 0 doPlayerSave(cid) end elseif msgcontains(msg, 'no') then selfSay("As you wish. Is there something else I can do for you?", cid) talkState[cid] = 0 end ---------------------------- transfer -------------------- elseif msgcontains(msg, 'transfer') then selfSay("Please tell me the amount of gold you would like to transfer.", cid) talkState[cid] = 11 elseif talkState[cid] == 11 then count[cid] = getCount(msg) if getPlayerBalance(cid) < count[cid] then selfSay("You dont have enough money on your bank account.", cid) talkState[cid] = 0 return true end if isValidMoney(count[cid]) then selfSay("Who would you like transfer " .. count[cid] .. " gold to?", cid) talkState[cid] = 12 else selfSay("Is isnt valid amount of gold to transfer.", cid) talkState[cid] = 0 end elseif talkState[cid] == 12 then transfer[cid] = msg if getCreatureName(cid) == transfer[cid] then selfSay("Ekhm, You want transfer money to yourself? Its impossible!", cid) talkState[cid] = 0 return true end if isInArray(config.transferDisabledVocations, getPlayerVocation(cid)) then selfSay("Your vocation cannot transfer money.", cid) talkState[cid] = 0 end if playerExists(transfer[cid]) then selfSay("So you would like to transfer " .. count[cid] .. " gold to \"" .. transfer[cid] .. "\" ?", cid) talkState[cid] = 13 else selfSay("Player with name \"" .. transfer[cid] .. "\" doesnt exist.", cid) talkState[cid] = 0 end elseif talkState[cid] == 13 then if msgcontains(msg, 'yes') then local targetVocation = getPlayerVocationByName(transfer[cid]) if not targetVocation or isInArray(config.transferDisabledVocations, targetVocation) or not doPlayerTransferMoneyTo(cid, transfer[cid], count[cid]) then selfSay("This player does not exist on this world or have no vocation.", cid) else selfSay("You have transferred " .. count[cid] .. " gold to \"" .. transfer[cid] .."\".", cid) transfer[cid] = nil doPlayerSave(cid) end elseif msgcontains(msg, 'no') then selfSay("As you wish. Is there something else I can do for you?", cid) end talkState[cid] = 0 ---------------------------- money exchange -------------- elseif msgcontains(msg, 'change gold') then npcHandler:say("How many platinum coins would you like to get?", cid) talkState[cid] = 14 elseif talkState[cid] == 14 then if getCount(msg) == -1 or getCount(msg) == 0 then npcHandler:say("Hmm, can I help you with something else?", cid) talkState[cid] = 0 else count[cid] = getCount(msg) npcHandler:say("So you would like me to change " .. count[cid] * 100 .. " of your gold coins into " .. count[cid] .. " platinum coins?", cid) talkState[cid] = 15 end elseif talkState[cid] == 15 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2148, count[cid] * 100) then doPlayerAddItem(cid, 2152, count[cid]) npcHandler:say("Here you are.", cid) else npcHandler:say("Sorry, you do not have enough gold coins.", cid) end else npcHandler:say("Well, can I help you with something else?", cid) end talkState[cid] = 0 elseif msgcontains(msg, 'change platinum') then npcHandler:say("Would you like to change your platinum coins into gold or crystal?", cid) talkState[cid] = 16 elseif talkState[cid] == 16 then if msgcontains(msg, 'gold') then npcHandler:say("How many platinum coins would you like to change into gold?", cid) talkState[cid] = 17 elseif msgcontains(msg, 'crystal') then npcHandler:say("How many crystal coins would you like to get?", cid) talkState[cid] = 19 else npcHandler:say("Well, can I help you with something else?", cid) talkState[cid] = 0 end elseif talkState[cid] == 17 then if getCount(msg) == -1 or getCount(msg) == 0 then npcHandler:say("Hmm, can I help you with something else?", cid) talkState[cid] = 0 else count[cid] = getCount(msg) npcHandler:say("So you would like me to change " .. count[cid] .. " of your platinum coins into " .. count[cid] * 100 .. " gold coins for you?", cid) talkState[cid] = 18 end elseif talkState[cid] == 18 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, count[cid]) then npcHandler:say("Here you are.", cid) doPlayerAddItem(cid, 2148, count[cid] * 100) else npcHandler:say("Sorry, you do not have enough platinum coins.", cid) end else npcHandler:say("Well, can I help you with something else?", cid) end talkState[cid] = 0 elseif talkState[cid] == 19 then if getCount(msg) == -1 or getCount(msg) == 0 then npcHandler:say("Hmm, can I help you with something else?", cid) talkState[cid] = 0 else count[cid] = getCount(msg) npcHandler:say("So you would like me to change " .. count[cid] * 100 .. " of your platinum coins into " .. count[cid] .. " crystal coins for you?", cid) talkState[cid] = 20 end elseif talkState[cid] == 20 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, count[cid] * 100) then npcHandler:say("Here you are.", cid) doPlayerAddItem(cid, 2160, count[cid]) else npcHandler:say("Sorry, you do not have enough platinum coins.", cid) end else npcHandler:say("Well, can I help you with something else?", cid) end talkState[cid] = 0 elseif msgcontains(msg, 'change crystal') then npcHandler:say("How many crystal coins would you like to change into platinum?", cid) talkState[cid] = 21 elseif talkState[cid] == 21 then if getCount(msg) == -1 or getCount(msg) == 0 then npcHandler:say("Hmm, can I help you with something else?", cid) talkState[cid] = 0 else count[cid] = getCount(msg) npcHandler:say("So you would like me to change " .. count[cid] .. " of your crystal coins into " .. count[cid] * 100 .. " platinum coins for you?", cid) talkState[cid] = 22 end elseif talkState[cid] == 22 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2160, count[cid]) then npcHandler:say("Here you are.", cid) doPlayerAddItem(cid, 2152, count[cid] * 100) else npcHandler:say("Sorry, you do not have enough crystal coins.", cid) end else npcHandler:say("Well, can I help you with something else?", cid) end talkState[cid] = 0 elseif msgcontains(msg, 'change') then npcHandler:say("There are three different coin types in Tibia: 100 gold coins equal 1 platinum coin, 100 platinum coins equal 1 crystal coin. So if you'd like to change 100 gold into 1 platinum, simply say '{change gold}' and then '1 platinum'.", cid) talkState[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
     
    Bank.xml
     

    <?xml version="1.0" encoding="UTF-8"?> <npc name="Banker" script="data/npc/scripts/bank.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="97" body="21" legs="76" feet="19" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Welcome |PLAYERNAME|. What can I do for you? {Deposit}, {withdraw}, check {balance} or {transfer}? I can also {change} gold for you." /> </parameters> </npc>
  4. Upvote
    Beeki deu reputação a Andre Miles em 6.305 Contas Foram Deletadas Hoje   
    25/07 - É galera, mais uma vez nossos amigos sem braço foram deletados por uso de softwares ilegais. Se você sobreviveu ao massacre e usa bots e afins, é melhor começar a pensar em parar. Afinal, qual é a graça né gente?
     

     
    Agora se me derem licença deixa eu entrar na minha conta pra verificar se meu char ainda existe... KKK
     
    Mas isso sempre me leva a pensar, será que usar esses softwares deixa o Tibia tão mais legal assim? Ou o que será que vai na cabeça do amigo que foi deletado por uso dos mesmos?
  5. Upvote
    Beeki recebeu reputação de BananaFight em The Forgotten Server R5663   
    Oi amigos.
     
    Estou aqui liberando para você a versão mais atual do TheForgottenServer, estou sujeito a tomar ban por isso na OTland, mais eu sempre tomo que que tem né? rsrs
     
    Sources:
     

    http://www.mediafire.com/?hknr7as2lzs47nv
     
    Distro Compilado:
     

    http://www.mediafire.com/?42nib293iecgy1j
     
    Scans:
     
    https://www.virustot...sis/1338095474/
     
    https://www.virustot...sis/1338095729/
     
     
    Créditos:
     
    OTLand e TheForgottenServer Developers.
  6. Upvote
    Beeki recebeu reputação de makita456 em The Forgotten Server R5663   
    Oi amigos.
     
    Estou aqui liberando para você a versão mais atual do TheForgottenServer, estou sujeito a tomar ban por isso na OTland, mais eu sempre tomo que que tem né? rsrs
     
    Sources:
     

    http://www.mediafire.com/?hknr7as2lzs47nv
     
    Distro Compilado:
     

    http://www.mediafire.com/?42nib293iecgy1j
     
    Scans:
     
    https://www.virustot...sis/1338095474/
     
    https://www.virustot...sis/1338095729/
     
     
    Créditos:
     
    OTLand e TheForgottenServer Developers.
  7. Upvote
    Beeki recebeu reputação de Nyco em Baixa De Preços Em Golds De Tibia!   
    Podem começar a dar gold de graça que eu não quero! Tibia já está no fim.
     
     
    @Gus
     
    vou te denunciar por botting rpz.
     
    bjks
  8. Upvote
    Beeki recebeu reputação de alldakie em [Arquivado][Discussão] Rme Final Release.   
    HAUOPA XTibianos!
     
    Recentemente recebi a noticia de que o nosso atual map editor "RME" foi atualizado para a versão final do Tibia "9.60" em prol desse acontecimento venho criar uma discussão com a finalidade de que vocês possam expor suas opiniões sobre tal acontecimento e também peço-lhes que testem o tool e postem suas opiniões e ideias.
     
    Link do chagenlog: http://remeresmapedi...r.php?changelog
    Link do download: http://remeresmapedi...RME-win-2.2.msi
  9. Upvote
    Beeki recebeu reputação de juliojr em [Tutorial] Otb Item Editor   
    Bem a pedido de um amigo DuuhCarvalho estarei elaborando esse tutorial de como criar um novo item usando o OTB Item editor.

    Primeiramente baixe o Item Editor:
    http://www.mediafire.com/?ly576216h4pdx7j Após baixar o Item editor é necessario que você o configure, pegue o Tibia.dat e Tibia.spr e coloque na pasta data e os renomeie da seguinte forma. Tibia.spr = Tibia860.spr / Tibia.dat = Tibia860.dat

    Feito isso siga a vídeo Aula (:






    - Aqui estarei explicando como por o novo item no items.xml

    Bem como foi uma sword, usaremos essa tag.

    <item id="12620" article="a" name="rapier">
    <attribute key="weight" value="1500" />
    <attribute key="defense" value="8" />
    <attribute key="attack" value="10" />
    <attribute key="weaponType" value="sword" />
    <attribute key="extradef" value="1" />
    </item>12620 = ID do Item que criamos na video aula. Weight = o Peso em oz do item. Defense = defesa que o item dará. attack = será o valor em ataque do item. weaponType = é onde definimos o que item será, como no caso é uma sword, usamos o type "sword" extraDef = a defesa adicional que o item dará
  10. Upvote
    Beeki recebeu reputação de mysticChem em Como Fazer Pra Ter Duas Soft No Ot, Uma Que Acabe E Outra Que Naum Acabe?   
    Eu não devia lhe ajudar, mas porem como sou um ótimo Membro eu irei.
     
    Substitua isso aqui no seu items.xml
     

    <item id="2358" name="boots of waterwalking"> <attribute key="weight" value="800" /> <attribute key="slotType" value="feet" /> <attribute key="speed" value="40" /> <attribute key="duration" value="14400" /> <attribute key="healthGain" value="25" /> <attribute key="healthTicks" value="2000" /> <attribute key="manaGain" value="40" /> <attribute key="manaTicks" value="1000" /> <attribute key="showattributes" value="1" /> </item>
     
    Depois vá no movements.xml e cole isso lá dentro.
     

    <movevent type="DeEquip" itemid="2358" slot="feet" event="function" value="onDeEquipItem"/> <movevent type="Equip" itemid="2358" slot="feet" event="function" value="onEquipItem">
  11. Upvote
    Beeki recebeu reputação de raphmann em The Forgotten Server R5663   
    Obrigado vilden (:
  12. Upvote
    Beeki recebeu reputação de joseanpereira em Preciso Do Ot Iten Editor 8.54 E 8.6 E Saber Como Usalo   
    Tenta usar esse aqui, acabei de uploadar na minha ACC do 4Shared, seajudei agradece ai, falow!
     
    http://www.4shared.com/rar/2R3OTlvW/OTitemeEditor.html
  13. Upvote
    Beeki deu reputação a caotic em Card Sytem   
    Bem eu resolvi criar um pet sytem diferente nomeado "Card sytem" por que considero os pets como cartas de invocar.
    Na realidade o maior proposito e as funçoes lib que criei porque nelas ficara bem mais facil "se quiser" criar outros sistema relacionados como um por exemplo um npc que da uma card.
    O sistema foi construido para ediçao facil e mesmo grande e de facil entendimento.
     
     
     
     
    Agora vá em talkactions e abra talkactions.xml e coloque estas tags:

    <talkaction words="/invocarcard" event="script" value="card.lua"/> <talkaction words="/removecard" event="script" value="removecard.lua"/> <talkaction words="/buycard" event="script" value="buycard.lua"/>
     
    Para usar o sistema e facil
    Para comprar Cards e so dizer /buycard(Nome da Card)
    Para Invocar Cards e so dizer /invocarcard(Nome da Card)
    Para remover Cards e so dizer /removecard
     
     
    -----Configuraçao do sistema---
    O sistema e configurado em cardsytem.lua e de facil configuraçao
     
    ["Bug"] = {"bug", 50001, 1}
     
    Verde(Bug) ----- E o nome da card
    Vermelho(bug) ------Creature da card que vai ser invocada
    Cyan(5001) ------ Este numero deve ser sempre aumentado por mais a cada card exemplo nesta e 5001 na debaixo sera 5002
    Azul(1) ------- Level Necessario para usar a card
     
     
     

    ----------------------------Funçoes----------------------------------------- Se voce pretende ultilizar as funçoes para outro sistema ou para o seu propio card sytem bem tanto faz..... Eu vou explicar cada funçao. doPlayerStartCards(cid, namecard, pos) ---- Invoca a card(cid, nome da card, posiçao que sera invocado) doShowTextDialgListCards(cid, itemid) ----Monstra a tabela de Cards em uma Lista(cid, que item aparecera na lista) getPlayerCard(cid, namecard) ---------Verifica se o Player tem a card(cid, nome da card) doPlayerAddNewCards(cid, namecard) ----Adciona uma nova card ao player(cid, nome da card) getLevelCard(namecard) --- Verifica o level da card(nome da card) getCardprice(namecard) ----Verifica dando uma deduçao do preço da Crad(Nome da Card) getCardId(namecard) ------ Verifica o id da card(nome da card) getPlayerPositionPz(cid) -------Verifica se o player esta em pz(cid) getCardStorage(namecard) ------ Verifica a storage da card(Nome da Card) getExistNameCard(namecard) ----- Verifica se existe a Card(Nome da Card)
  14. Upvote
    Beeki recebeu reputação de HisashiitYamaguti em Banner De Discussões   
    usa o meu oficial do XT.
     

  15. Upvote
    Beeki recebeu reputação de luskinha77 em [9.44] Subwat Oficial 04/03/2012   
    Ótimo mapa subwat, porém não irei dar rep agora não, só quando o servidor estiver 100% ou seja tirar os erros do Console, até!
  16. Upvote
    Beeki recebeu reputação de Vilden em [Tutorial] Mini Tuto Importando Database   
    Hello XTibianos, vim esinar para você algo super ultra mega boss fácil que é importar o banco de dados caso você queira restaurar um backup ou transferir o servidor de maquina; segue os passos.
     
     
    Logue na sua maquina linux pelo cliente SSH.
     
    Após logado na maquina digite o seguinte comando para loga no MYSQL pelo terminal.
     

    mysql -uroot -p
     
    Depois de executado vai pedir a password do mysql.
     
    Caso você queira criar um novo banco de dados é só utilizar o seguinte comando.
     

    CREATE DATABASE otserver;
     
    Ali onde está o nome otserver é o nome do banco de dados que será criado.
     
    Agora para importar um backup.sql já existente utilize esse seguinte comando.
     

    mysql -uroot -p otserver < schemas/mysql.sql
     
    Ali onde está otserver é o nome do banco de dados em que o backup irá ser restaurado, onde está <schemas/mysql.sql é o diretório de onde está o backup.sql!
     
    Tutorial simples, útil e de fácil entendimento;
     
    Abraços.
     
    Aqui está um tutorial meu também ensinando a usaro SQL Front que é um ótimo tool para a administração remota de banco de dados mysql, uso ele para não usar o PhpMyAdmin.
     
    http://www.xtibia.co...banco-de-dados/
  17. Upvote
    Beeki deu reputação a dragonfight em Comando Goto Que Nao Funcione Em Npc   
    Então pessoal eu pedi esse script porque ele é muito útil para tutores, pois alguns tutores abusam dando goto pra npcs de quest , e etc.
     
    Eu usei o script padrão, apenas removendo a parte que voce pode dar goto em npc ou em determinada coordenada.
     
     
    Vá no talkactions.xml e coloque:
     
     

    <talkaction log="yes" words="/got" access="1" event="script" value="got.lua" /> <talkaction log="yes" words="/ccc" access="1" event="script" value="puxando.lua" />
     
     
    Lembrando que você pode editar o nome do comando a seu gosto. No caso ali o "/got" é um /goto só que ele nao funciona em npc. E o /ccc é o comando de "puxar" só que não puxa npcs.
     
     
     
    Nos scripts crie um arquivo got.lua e cole:
     
     

    function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local creature = getCreatureByName(param) local player = getPlayerByNameWildcard(param) local waypoint = getWaypointPosition(param) local tile = string.explode(param, ",") local pos = {x = 0, y = 0, z = 0} if(player ~= nil and (not isPlayerGhost(player) or getPlayerGhostAccess(player) <= getPlayerGhostAccess(cid))) then pos = getCreaturePosition(player) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local tmp = getCreaturePosition(cid) if(doTeleportThing(cid, pos, true) and not isPlayerGhost(cid)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end
     
     
     
     
    Depois crie um arquivo chamado puxando.lua e cole:
     
     

    function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local target = getPlayerByNameWildcard(param) if(not target) then target = getPlayerByName(param) if(not target) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Creature not found.") return true end end if(isPlayerGhost(target) and getPlayerGhostAccess(target) > getPlayerGhostAccess(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Creature not found.") return true end local pos = getClosestFreeTile(target, getCreaturePosition(cid), false, false) if(not pos or isInArray({pos.x, pos.y}, 0)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Cannot perform action.") return true end local tmp = getCreaturePosition(target) if(doTeleportThing(target, pos, true) and not isPlayerGhost(target)) then doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end
     
     
     
    É isso ai pessoal, espero que ajude a todos.
  18. Upvote
    Beeki recebeu reputação de leykhan em Preciso Do Ot Iten Editor 8.54 E 8.6 E Saber Como Usalo   
    Tenta usar esse aqui, acabei de uploadar na minha ACC do 4Shared, seajudei agradece ai, falow!
     
    http://www.4shared.com/rar/2R3OTlvW/OTitemeEditor.html
  19. Upvote
    Beeki recebeu reputação de oktober15 em Acesso E Compilaçao De Otserver Em Linux   
    1: Você usa o SSH Cliente.
    2: Você usa o FileZilla cliente.
    3: você usa o comando ./autogen.sh depois ./configure --enable-mysq, e depois digita make.
    4: para fechar seu servidor, digite o comando ps - aux, depois procure pelo processo do seu tfs e de acordo com o numero do mesmo, digite kill -9 22464
    5: para transferir a database, é só por ela numa pasta de sua escolha no dedicado e digitar o seguinte comando. mysql -uroot -p NOME DA DB < local/nome.sql
  20. Upvote
    Beeki deu reputação a pessoa93 em Trocar 1Kk Por Gold Ingot   
    Função: Trocar 1kk por 1 Gold Ingot.
    Por que? Para evitar varias e varias BP'S de KK's aonde gold ingot vai servir de comercio no servidor.
     
    //--
    Crie um arquivo chamado gold.lua e copie isso lá dentro:
     

    function onSay(cid, words, param) if doPlayerRemoveMoney(cid, 1000000) then doPlayerAddItem(cid, 9971, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "1kk transformado em Gold Ingot") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem 1kk") end return true end
    Abra talkactions.xml e cole isso:

    <talkaction words="!1kk" event="script" value="gold.lua"/>
     
    --//
     
     
    Créditos : Pess0a // Meu primeiro script *_*
  21. Upvote
    Beeki deu reputação a Oneshot em Perfect Upgrade System   
    Nome: Perfect Upgrade System
    Tipo: Biblioteca, Action, Sistema
    Autor: Oneshot
     

     
    Essa é a versão final do Perfect Refine System ou Perfect Upgrade System criado por mim.
     
    É um sistema construído em cima de funções em POO (orientação a objetos), o que o torna muito versátil, possibilitando a outros programadores/scripters criarem seus próprios sistemas com base na biblioteca.
     
    A função do sistema é simples. Não passa de um sistema de refino, presente em todos os servidores, onde você usa um item em um equipamento e este fica mais forte e ganha um nome caracterizando o nível de força - bem clichê - mas muito interessante.
     
    Meu sistema é um pouco diferente dos outros, pois possui algumas características exclusivas, listadas abaixo:
    O nível máximo configurável é praticamente ilimitado
    O sistema funciona com armas de combate corpo-a-corpo, bows e crossbows.
    O refino pode falhar, não acontecendo nada, regredindo o nível ou resetando ele.
    Há um sistema nativo de broadcasts, que são enviados quando um jogador consegue refinar um equipamento até um certo nível ou maior.
    As chances são configuradas manualmente e sua randomização é muito precisa.


     
    Há dois modos de instalar o sistema em seu servidor, o primeiro é baixar a pasta com os scripts necessários e apenas copiar as chaves nos arquivos XMLs ou então seguir o curto tutorial de instalação.
     
     
    Crie um arquivo chamado upgradesystem.lua na pasta data/lib e copie o conteúdo abaixo:
     

    --[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, broadcast = 7, attributes = { ["attack"] = 2, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if(self.levels[self.item.level][3] == true and (self:chance().erase * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.erase:format(self.item.name)) self:setItemName(self.item.name) for key, value in pairs(self.attributes) do if self.item[key] > 0 then doItemSetAttribute(self.item.uid, key, self.item[key]) end end elseif(self.levels[self.item.level][2] == true and (self:chance().downgrade * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.downgrade:format(self.item.name, (self.item.level - 1))) self:setItemName((self.item.level == 1 and self.item.name or self:getItemName():gsub("%+(%d+)", "+".. (self.item.level - 1)))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item[key] + value * (self.item.level - 1))) end end else doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.fail:format(self.item.name, (self.item.level + 1))) end return "fail" end end
     
    Crie um arquivo chamado upgrade.lua em data/actions/scripts e cole o conteúdo abaixo:
     

    function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local obj = UpgradeHandler:new(itemEx) if(obj == false) then return doPlayerSendCancel(cid, UpgradeHandler.message.notupgradeable) end local status = obj:refine(cid, item) if status == "success" then --doSendAnimatedText(toPosition, "Success!", COLOR_GREEN) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) elseif status == "fail" then --doSendAnimatedText(toPosition, "Fail!", COLOR_RED) doSendMagicEffect(toPosition, CONST_ME_POFF) else doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end
     
    No arquivo actions.xml, cole a seguinte linha:
     

    <action itemid="8306" event="script" value="upgrade.lua"/>
     
    Para adicionar mais níveis de refino no sistema, edite a seguinte tabela:
     

    levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true} },
     
    Por padrão, ela já está configurado como na maioria dos MMORPGs, 10 níveis de refino, com chances de sucesso, regressão e "quebra".
     
    Mas se você quiser, por exemplo, adicionar mais dois níveis, siga o modelo, sempre colocando uma vírgula no final com exceção da última linha da tabela:
     

    levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} },
     
    O primeiro valor é chance de sucesso, o segundo se o item pode regredir na tentativa e o terceiro é se o item para "quebrar" (perder todo o nível de refino).
     
    Para criar novas ferramentas (itens) de refinar, configure a tabela abaixo:
     

    tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, },
     
    Seguindo o mesmo esquema da tabela anterior, vírgulas em todas as linhas com exceção da última, seguindo o modelo abaixo.
     
    Por exemplo, uma ferramenta de ID 8303 que refine do level +6 ao +10, que dê 10% de chance bônus e que seja finita, eu faço assim:
     

    tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8310] = {range = {6, 10}, info = {chance = 10, removeable = true}} },
     

     
    Em breve vídeo de demonstração com sistema em funcionamento.
    Perfect Upgrade System.rar
  22. Upvote
    Beeki recebeu reputação de giovani8520 em Dúvida Atulizando Ot // Rep+   
    Faça o backup do seu banco de dados.
     
    Insira o TFS 9.10 no seu servidor, atualizando juntamento as libs e scripts, e depois só iniciar, se tiver alguma tabela/coluna nova o próprio tfs a introduz.
     
    Abraços.
  23. Upvote
    Beeki deu reputação a Gabriel Couto em [Arquivado]Mdm #1 - Iniciativa De Mapping   
    Matéria e Discussão de Mapping #1 - Iniciativa de Mapping



    por AnyurCT.


     
     



     
     
    Fala galerinha do XTibia.com, vamos iniciar hoje um novo projeto meu, que é o "quadro" Matéria e Discussão de Mapping, onde irei sempre falar sobre algo distinto, o que deverá gerar uma discussão sobre esse assunto.
     
     
     
    Ultimamente vê-se a decadência no número de pessoas que fazem mapas de Tibia e também da qualidade dos mapas construídos. Isso se deve a diminuição da iniciativa de pessoas e também a falta de interesse em crescimento. O crescimento do número de mapas em estilo Baiak afasta gradativamente os bons mappers da função, pois há o crescimento do desinteresse aos bons mapas.
     
    Por outro lado, pode crescer uma boa discussão em volta aos mapas de servidores Baiak. Seriam eles mapas de verdade? Provavelmente não, pode-se vê-los como esboços de mapas. Não, não é desprezo por eles, é desprezo pela falta de iniciativa em se tentar construir coisas boas, inovadoras; utilizar novos materiais, ler tutoriais e aprender com um editor de mapas truques novos e lançar para a comunidade. Afinal, sem criatividade e sem a tentativa de fazer algo crescer realmente, nada dará certo!
     
    Portanto, podemos chegar todos a conclusão de que podemos melhorar sempre, avançar com as críticas e inovar. Participar de eventos é essencial, assim como mostrar seus trabalhos, isso ajuda a crescer! Vamos começar a usar a nossa criatividade - pois isso todos temos, só é preciso esforço e dedicação para alcançar - e boa vontade para gerar um resultado bom ao final das contas.
     
    Desse modo, pode-se observar que juntando todos os fatores, em verdade, há a falta de iniciativa em mapping, pois não queremos fazer inovar, não queremos trabalhar! Ora, pessoal, ninguém é perfeito, mas podemos buscar isso! Os grandes amigos do trabalho bem feito é a dedicação, o esforço, a tentativa e a prática, e é disso que nós precisamos!
     
     
     
    Agora, deixo algumas perguntas para vocês responderem!
     
    Falta inspiração para tentar fazer um mapa?
    O que faz com que nós não tenhamos iniciativa para tentar fazer um mapa?
    Quais os motivos da decadência em mapping?
     
     
     
    Vamos deixar que o Mapping decaia? Vamos dar iniciativa, vamos participar dos concursos, participar dos Show OFFs, ler tutoriais e fazer com que voltemos a crescer, e com qualidade!
     
     
    Espero que tenham gostado, esse foi o começo, nos próximos, irei melhorando com a prática e com assuntos mais interessantes!
     
    Abraços,
    AnyurCT!
     
     
    Essa matéria foi postada no Blog do MDS, clique aqui para entrar nele e ver todas as matérias.
     

  24. Upvote
    Beeki recebeu reputação de matheusgg98 em The Forgotten Server R5663   
    Oi amigos.
     
    Estou aqui liberando para você a versão mais atual do TheForgottenServer, estou sujeito a tomar ban por isso na OTland, mais eu sempre tomo que que tem né? rsrs
     
    Sources:
     

    http://www.mediafire.com/?hknr7as2lzs47nv
     
    Distro Compilado:
     

    http://www.mediafire.com/?42nib293iecgy1j
     
    Scans:
     
    https://www.virustot...sis/1338095474/
     
    https://www.virustot...sis/1338095729/
     
     
    Créditos:
     
    OTLand e TheForgottenServer Developers.
  25. Upvote
    Beeki deu reputação a Oneshot em [Arquivado]Perdeu-Se A Força De Vontade?   
    Olá, pessoal do XTibia.
     
    Depois de fazer alguns scripts, atender alguns pedidos e sanar algumas dúvidas aqui na comunidade, não deixei de notar que a quantidade de pedidos nunca deixa de ser imensa.
     
    Eu venho da época do Open Tibia 7.8, uma época onde se você quisesse uma magia, você mesmo tinha que abrir algum script de uma magia existente e editar as coisas na sorte (Foi assim que editei uma UE com efeito de Death Strike) e entender como aquilo funcionava. Só devo a minha maldita curiosidade aos 12 anos de idade, o conhecimento que hoje possuo com Lua e C++
     
    Venho notando que está surgindo um novo grupo de membros desde meados de 2011 que já não é mais igual aquele grupo de 2008, eles não possuem força de vontade para aprender a criar seus próprios scripts ou para criar seus próprios mapas. Eles só fazem criar tópicos em comunidades de Open Tibia e pedir, simplesmente pedir.
     
    Tudo eles querem na mão e ainda há um sub-grupo deles que acha que é obrigação alguém atender seus pedidos, mas isso deve ficar para outra discussão. Eles já não possuem aquela curiosidade essencial: "Hm, se eu pegar isso aqui e mexer nesse bagulho aqui, o que será que vai acontecer?"
     
    Eu gostaria de saber de vocês quais os motivos para a perda da força de vontade? É dificil aprender Lua? Ou é, na verdade, mal costume?
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...