Líderes
-
-
-
-
xWhiteWolf
HéroiPontos3605Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 04/05/15 em todas áreas
-
[Showoff] New City
[Showoff] New City
ReD NigThMaRe e um outro reagiu a runeraserver por uma resposta no tópico
2 pontosFala pessoal, Estou tentando entrar nesse esquema de mapper mas to tendo um pouco de dificuldade em quantidade de detalhes, oq fazer em determinada parte do mapa etc.. São muitas idéias na cabeça e na hora de passar pro "papel" não sai nada haha!! Típico de quem nunca desenhou na vida :/ Gostaria de saber algumas dicas dos experientes do assunto referente a detalhamento, espaçamento, etc..2 pontos -
(Resolvido)[Pedido] Player Pegar Level 200 Ser Teleportado
(Resolvido)[Pedido] Player Pegar Level 200 Ser Teleportado
Chriistian e um outro reagiu a Summ por uma resposta no tópico
2 pontoslocal level = 200 -- Level local pos = {x = 10474, y = 10807, z = 7} -- Posição local storage = 78945 function onAdvance(cid, skill, oldLevel, newLevel) if skill == 8 and newLevel == level and getPlayerStorageValue(cid, storage) < 1 then doTeleportThing(cid, pos) doPlayerSendTextMessage(cid, 19, "Você acabar de pegar level " .. level .. " e foi teleportado!!") setPlayerStorageValue(cid, storage, 1) end return true end2 pontos -
Como adicionar imagens na lastnews?
Como adicionar imagens na lastnews?
Rusherzin e um outro reagiu a Summ por uma resposta no tópico
2 pontosHospeda a imagem nesse site : http://www.imgland.net/ ai basta colocar [*img] http://1.ii.gl/wHq1KDEEl.png [*/img] sem os *2 pontos -
Thriller Dance
Thriller Dance
Snowsz e um outro reagiu a MaXwEllDeN por uma resposta no tópico
2 pontosNão posso fazer um tópico totalmente contra idiotas, muito menos desenvolver scripts contra idiotas. O problema no CTF, é que ninguém lê exatamente o que eu postei, e sempre acaba fazendo algo que eu não disse para fazer, por isso os que não sabem ler instalam errado. Se não disse onde coloca UID, é porque não precisa colocar UID, o próprio script faz isso. Pela metade? Realmente. Não posso instalar para todos que querem, né? Porque a única coisa que falta nas coisas que posto, é instalar para as pessoas, que mesmo assim fazem merda e instalam errado. Passar bem.2 pontos -
[MOD] Pokedex Window
[MOD] Pokedex Window
eliaspalermo e um outro reagiu a Orochi Elf por uma resposta no tópico
2 pontosTerça-feira, ele está prontinho. eu tive uns contra-tempos por causa do colégio e tudo mais..2 pontos -
Compilando TFS 1.3 com vídeo-aula
Compilando TFS 1.3 com vídeo-aula
Capitao wyz reagiu a Bruno Minervino por uma resposta no tópico
1 pontoCompilando TFS 1.3 no Windows 1. Baixe os softwares requeridos Para compilar o The Forgotten Server no Windows, você vai precisar: Visual Studio 2015 (Compilador) TFS SDK v3.2 (libs) Libs do Boost C++ (32-bits, 64-bits) 2. Instale os softwares requeridos Após ter baixado os softwares listados na etapa acima, comece instalando o Visual Studio e Boost C++. Extraia o TFS SDK v3.2 em qualquer pasta do seu computador e execute o arquivo "register_tfssdk_env.bat" para setar a variável de ambiente do local onde está o TFS SDK, assim nosso compilador irá encontrar as libs quando começar a compilar. Mova o arquivo "register_boost_env.bat" da pasta do TFS SDK para a pasta onde você instalou as libs do Boost C++ e execute-o (se você seguiu os passos do instalador, está esta na pasta chamada boost_1_62_0). 3. Baixe as sources Se você possuir o Git Client instalado, você poderá clonar a última cópia com este comando: > git clone https://github.com/otland/forgottenserver.git Se você não possuir o Git Client instalado, você poderá baixar a última cópia do The Forgotten Server através do link: https://github.com/otland/forgottenserver/archive/master.zip 4. Compilando Procure o diretório vc14 na pasta do The Forgotten Server que você baixou, e abra o arquivo "theforgottenserver.sln". Isso deverá iniciar o Visual Studio 2015 e você estará pronto para continuar. Para configurar a compilação, navegue para Build -> Configuration Manager no menu superior. Um popup deverá aparecer onde você poderá escolher entre "Release" ou "Debug" para compilar, escolha também para qual Plataforma você irá compilar: 32-bits (Win32) ou 64-bits (x64). Para iniciar a compilação, abra o menu Build novamente e clique em Build Solution (Ctrl + Shift + B). 5. Vídeo-aula https://www.youtube.com/watch?v=Zfil84FMJsk 6. Créditos Mark - Autor do tutorial e do projeto The Forgotten Server Bruno Minervino - Tradução e gravação do vídeo1 ponto -
Sistema: Cassino Slots.
Sistema: Cassino Slots.
JcA reagiu a Adriano SwaTT por uma resposta no tópico
1 pontoBoa noite galera, após um pedido aqui no fórum sobre um sistema de Cassino, decidi então criar este e disponibilizar para vocês. Introdução: Bom, este script simula a máquina de Cassino conhecida como Cassino Slots, pra quem não conhece é a máquina que se encontra no spoiler abaixo: Como funciona? O jogador precisa escolher 1 (um) dos 10 (dez) itens disponíveis (da para configurar a quantidade de itens) como seu Item da Sorte, e após feito isso, terá que girar a alavanca e torcer para que a máquina sorteie 3 itens repetidos igual ao que o jogador em questão escolheu. Para tornar um pouco mais fácil de vencer, criei para que a máquina dê pequenos brindes à quem acertar 1 ou 2 itens dos sorteados (configurável). Como jogar? Para jogar é simples, como desenvolvi todo script em apenas um arquivo, para facilitar na criação, na instalação e até mesmo na jogabilidade, o jogo se baseia na posição em que o jogador está para identificar qual ação executar. Selecionar Item da Sorte: com seu personagem virado para baixo (sul), clique na alavanca e automaticamente o item da sorte aparecerá na mesa configurada no script, caso queira outro item, basta ir usando a alavanca até encontrar o item desejado. Como Jogar: Após ter selecionado seu item da sorte, que deve estar à mostra em cima da mesa própria, basta virar seu personagem para cima (norte) e clicar novamente na alavanca. E se virar esquerda ou direita?: Nada acontecerá, apenas uma mensagem ensinando como jogar será enviada para que o jogador se oriente. Dicas de instalação! Sugiro que quando for criar o mapa para o evento, não faça como do vídeo, pois os itens criados nas mesas não estão com atributos para que não possam ser movidos, sendo assim é provável que jogadores de má fé venham a roubar itens... Faça como a imagem abaixo: Instalando: Basta criar um arquivo na pasta “data/actions/scripts” chamado “cassino_slots.lua” e adicionar o código abaixo dentro: Agora em “actions.xml” adicione a tag abaixo: Agora basta configurar de acordo com as informações disponíveis no início do script. Vejam o vídeo demonstrativo do Sistema em funcionamento. Criado por: Adriano Swatt'1 ponto -
Instalando, usando e entendendo o Screen
Instalando, usando e entendendo o Screen
Mathias Kenfi reagiu a Nightz por uma resposta no tópico
1 pontoOlá cidadãos do TibiaKing! Neste tutorial de hoje vou ensinar a instalar e utilizar o Screen. Mas antes disso, vou explicar o que é e para que serve. O Screen (ou GNU Screen) é é um software livre multiplexador de terminal de linha de comando desenvolvido pelo Projeto GNU. Permite que o usuário acesse múltiplas sessões separadas de terminal a partir de uma mesma janela ou mesmo remotamente. É muito útil para manipular vários programas em uma mesma janela ou mesmo para manter processos em execução de fundo. [Wikipedia] Ou seja, reusmidamente, o Screen é um software que permite você rodar várias áreas de trabalhos com vários processos executando. E porque preciso de utilizar isso no meu servidor de OTServer? Simples! Quando for abrir o servidor utilizando o comando ./theforgottenserver &, ao fechar o SSH, o servidor continua rorando, certo? Mas você não pode mais ver os logs que o executável gera em tempo real no linux. Porém.. se você abrir o servidor dentro de uma área de trabalho do Screen, isso é possível! Sem contar com várias outras vantagens como maior estabilidade e possibilidade de continuar trabalhando no SSH sem interromper o servidor ou ter que abrir outra janela! Bom.. agora que já expliquei sobre o Screen.. Vamos ao tutorial! 1. Instalando o Screen: 1.1. Abra o terminal SSH do seu servidor. 1.2. Ao logar no servidor, rode o seguinte comando para instalar o Screen: -> Servidores Ubuntu/Debian: apt-get install screen -> Servidores CentOS: yum install screen 1.3. Pronto, Screen instalado! Simples, não? Agora vamos a utilização! 2. Utilizando o Screen: 2.1. Abra o terminal SSH do seu servidor. 2.2. Para criar uma nova área de trabalho do Screen, utilize o comando: screen -S NomeDaScreen -> Por exemplo: screen -S rodarServidor 2.3. Assim que o comando acima for executado, voce já estará em uma nova área de trabalho. Caso queira deixar algo rodando nela em segundo plano, basta rodar o que for rodar normalmente e sair da Screen sem fechar a área de trabalho. -> Por exemplo: screen -S TFS nightz@servidor:~$ cd /home/otserv nightz@servidor:/home/otserv$ ./theforgottenserver & 2.4. Depois que o comando já estiver rodando, basta pressionar as teclas CONTROL, A e D (Ctrl A + D). Ao "minimizar" a área de trabalho, o Screen vai exibir uma frase informando que "deu tudo certo". -> Por exemplo: screen -S tst nightz@servidor:~$ [detached from 13077.tst] 2.5. Para entrar novamente na Screen, basta utilizar o comando abaixo: screen -r -x NomeDaScreen -> Por exemplo: screen -r -x tst 2.6. Mas e se eu esquecer o nome da Screen? Calma.. Para listar todas as Screens em execução, utilize o seguinte comando: screen -ls -> Por exemplo: nightz@server:$ screen -ls There is a screen on: 13077.tst (10-06-2014 08:55:37) (Detached) 1 Socket in /var/run/screen/S-476175. nightz@server:$ * De azul, temos o nome das Screens (neste caso, da Screen) em execução. 2.7. E para fechar uma Screen, ao em vez de minimizá-la, como faço? Simples! Utilize o comando abaixo após acessar a Screen que deseja fechar: exit Pronto! 3. Correção de problemas: Aqui em baixo, vou postando soluções de possíveis problemas do Screen, a medida que forem sendo reportados. Até hoje, o único problema por qual já passei foi a pasta do Screen perder permissão, fazendo com que eu não consiga ver as Screens em aberto, mas esse problema só não permite que a mesma seja resumida, as Screens todas continuaram funcionando normalmente. + Problema: Directory '/var/run/screen' must have mode 777. + Solução: chmod 777 /var/run/screen. Façam bom proveito! (Esse tutorial foi completamente escrito por mim. Qualquer cópia deve ser previamente autorizada e conter os devidos créditos.)1 ponto -
[Vault System] Sistema de Cofre
[Vault System] Sistema de Cofre
Teddy Ursa reagiu a MaTTch por uma resposta no tópico
1 pontoBom galera eu resolvi fazer o Vault System a pedido de um amigo meu e decidi compartilhar com vocês. Testado em 8.60 TFS 0.4 EDIT -- O script foi arrumado, pois havia um bug que o player ganhava golds. Vamos lá. 1° - Vá em data/actions/scripts e crie um arquivo chamado vault.lua, e dentro você coloca isso: local vaultStorage = 99991 -- storage em que ficara armazenado os golds ------------------//* Functions //------------------- local function getPlayerFreeSpace(cid) -- by MaTTch local checkSlots, space = {3,5,6,10}, 0 local function getContainerFree(container) local free = 0 if(not isContainer(container.uid)) then return free end for i = 0, (getItemInfo(container.itemid).maxItems -1) do local item = getContainerItem(container.uid, i) if(item.itemid == 0) then free = free + 1 elseif(isContainer(item.uid)) then free = free + getContainerFree(item) end end return free end for _, i in ipairs(checkSlots) do local slotItem = getPlayerSlotItem(cid, i) if(i ~= CONST_SLOT_BACKPACK and slotItem.itemid == 0) then space = space + 1 elseif(isContainer(slotItem.uid)) then space = space + getContainerFree(slotItem) end end return space end local function withdrawMoneySecurity(cid, value, storage) -- by MaTTch local storageMoney, countValue = getPlayerStorageValue(cid, storage), 0 local config = { [1] = {ITEM_CRYSTAL_COIN, math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)}, [2] = {ITEM_PLATINUM_COIN, math.floor((value/getItemInfo(ITEM_PLATINUM_COIN).worth)-(math.floor(value/getItemInfo(ITEM_CRYSTAL_COIN).worth)*100))}, [3] = {ITEM_GOLD_COIN, math.floor(value%100)} } for i = 1, #config do local count = config[i][2] if(count > 0) then while(count > 0) do storageMoney = getPlayerStorageValue(cid, storage) local a, itemCap = count > 100 and 100 or count, getItemInfo(config[i][1]).weight if(getPlayerFreeCap(cid) >= (itemCap*a)) then if(getPlayerFreeSpace(cid) >= 1) then doPlayerAddItem(cid, config[i][1], a) setPlayerStorageValue(cid, storage, (storageMoney - (getItemInfo(config[i][1]).worth * a))) countValue = countValue + (getItemInfo(config[i][1]).worth * a) count = count - a else return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough space in container. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end else return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have enough cap. You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end end end end return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have took "..countValue.." gold"..(countValue > 1 and "s" or "").." from vault.") end ------------------//* End Functions //------------------- function onUse(cid, item, fromPosition, itemEx, toPosition) local cidMoney, vaultMoney = getPlayerMoney(cid), getPlayerStorageValue(cid, vaultStorage) if(vaultMoney <= 0) then if(cidMoney <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You do not have money.") end doPlayerRemoveMoney(cid, cidMoney) setPlayerStorageValue(cid, vaultStorage, cidMoney) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have added "..cidMoney.." gold"..(cidMoney > 1 and "s" or "").." to vault. Now your money is kept in the vault chest, you can take it whenever you want.") else withdrawMoneySecurity(cid, vaultMoney, vaultStorage) end return true end 2° - Agora em data/actions/actions.xml adicione a tag: <action itemid="ID" event="script" value="vault.lua"/> Em ID você escolhe o id do item que quiser. 3° - Agora em data/creaturescripts/scripts crie um arquivo com o nome vaultLook.lua, e dentro coloque isso: local config = { vaultId = ID, -- itemid do vault vaultStorage = 99991 -- storage em que ficara armazenado os golds } function onLook(cid, thing, position, lookDistance) local show = getPlayerStorageValue(cid, config.vaultStorage) if(thing.itemid == config.vaultId) then local str = "You see"..(getItemInfo(thing.itemid).article and " "..getItemInfo(thing.itemid).article.." " or " ")..getItemInfo(thing.itemid).name..".\nYou have "..(show < 0 and 0 or show).." gold"..(show > 1 and "s" or "").." in the vault." if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then str = str .. "\nItemID: ["..thing.itemid.."].\nPosition: [X: "..getThingPos(thing.uid).x.."] [Y: "..getThingPos(thing.uid).y.."] [Z: "..getThingPos(thing.uid).z.."]." end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return false end return true end 4° - Agora em data/creaturescripts/creaturescripts.xml adicione a tag: <event type="look" name="vaultLook" event="script" value="vaultLook.lua"/> 5° - Agora em data/creaturescripts/login.lua lá embaixo adicione junto dos outros: registerCreatureEvent(cid, "vaultLook") E agora o sistema já esta pronto para ser usado. - Aah mas como funciona? Você clica uma vez no cofre (vault) e deposita todo seu dinheiro nele, ao clicar de novo você pega-os de volta, e caso não tiver cap ou espaço na bag você pega somente o possível e o restante ficara la até você quiser pegar. --> Versão do Vault System em editText Créditos: MaTTch (eu)1 ponto -
Experience Weapon System
Experience Weapon System
JowL reagiu a xWhiteWolf por uma resposta no tópico
1 pontoEai galera, hoje eu to trazendo pra vocês o meu Experience Weapon System. Pra quem não conhece é um sistema em que conforme você vai matando os monstros sua arma vai adquirindo parte da experiencia e upando de nível junto com você! Eu abri um tópico pra sugestões mas os players foram tão criativos que eu decidi seguir meus instintos e fazer da minha própria maneira se não ia ficar muito ruim pra servers que não fossem derivados. Testado em TFS 0.3.6 mas deve funcionar em qualquer um que tenha getThing(Pos) e onAttack e onKill ;] Foi decidido por mim então fazer da seguinte maneira: • Axes/ Swords/ Bows/ Crossbows: Tem 5% de chance (pra cada nivel) de ferir gravemente o oponente e deixar ele sangrando, o nível do ferimento é proporcional ao nível da arma. • Clubs: Tem 5% de chance (pra cada nivel) de bater com tanta força que faça todos ao redor sentirem o tremor do seu ataque e levarem um dano baseado no nivel da arma e no ataque da mesma. • Wands/ Rods: Tem 5% de chance (pra cada nivel) de retirar uma quantidade de mana do player (proporcional ao nivel da arma) e ficar recuperando mana mais rapidamente durante 5 segundos após isso Dito isso vamos ao que interessa: Adiciona essas duas linhas no seu creaturescripts.xml: <event type="kill" name="itemexp" script="itemexp.lua"/> <event type="attack" name="conditionitem" script="conditionitem.lua"/> e no login.lua: --------------- Experience System ---------------- registerCreatureEvent(cid,"itemexp") registerCreatureEvent(cid,"conditionitem") Agora crie um arquivo em data\lib\ chamado 037 - Experience System.lua e coloque isso dentro dele: Feito isso crie um arquivo em creaturescripts\scripts chamado itemexp.lua e adicione isso daqui: Agora crie outro arquivo em creaturescripts\scripts, adicione isso daqui nele e chame de conditionitem.lua: Agora configurando: Obs: tudo que está no local um serve pros locais dois, tres, quatro e cinco pra configurar o nivel de sangramento em cada nível, tanto a velocidade que sangra como o dano que sai. No caso, sendo nivel 1 ele vai tirar 3x de -5, 3x de -3 e 3x de -2 antes de sumir, isso dá -30 de dano total em 9 segundos. Bom, é isso aí, a minha idéia era trazer um pouco a mais de RPG e fazer o pessoal pensar 2x antes de sair trocando suas armas pela primeira que ele dropa que tenha + ataque que a dele pois assim ele passa a ter que valorizar mais os itens que já possui a um bom tempo; Outro motivo é que agora os items vão valer mais e agora seu server vai ter mais movimento nas trocas ;] Espero que tenham gostado e qualquer coisa é só falar nos comentários. Abraço do lobinho. Ps: aqui tem duas fotinhas mas o resto só instalando mesmo porque tem bastante coisa pra mostrar. E lembrando, se te ajudei clica em Gostei aqui embaixo. Fuis1 ponto -
[9.86] The Forgotten Server 1.1 (x32 & x64)
[9.86] The Forgotten Server 1.1 (x32 & x64)
twysterox reagiu a Fir3element por uma resposta no tópico
1 pontoApenas peguei a versão atual do TFS 1.1 (10.41) e dei downgrade para 9.86. Utilizei esta rev como base. Qualquer bug que acontecer poste aqui no tópico. Imagem Links Server: server-1.1_9.86.rar Source: source-1.1_9.86.rar Server (link 2): http://www.mediafire.com/download/el4rwk8p2kdeney/server-1.1_9.86.rar Source (link 2): http://www.mediafire.com/download/bkm6748mwkphcwf/source-1.1_9.86.rar Scan (server): https://www.virustotal.com/pt/file/e439ca648dcab08cae795e43a761a9505ff258c73909a0d34f63d10d4c3df51a/analysis/1427515177/ Scan (source): https://www.virustotal.com/pt/file/ba9f50e7b9eb2d7917d6bc1fdb7b4b7694e62ef1f88db50b9bf33bac665bc8e5/analysis/1427515071/1 ponto -
Layout Naxtie para ZnoteAAC 1.5 (TFS 0.2/0.3/0.4 & 1.0)
Layout Naxtie para ZnoteAAC 1.5 (TFS 0.2/0.3/0.4 & 1.0)
Luis Matheus reagiu a Hawkyz por uma resposta no tópico
1 pontoE ai galera blz? Eu to postando um layout antigo do Znote, mas eu mudei ele pra ficar compativel com essa versão mais nova do site, com forum e outras coisas, deem uma olhada: Espero que gostem! É só substituir a pasta layout! Download: http://www.mediafire.com/download/55apsyhji8jdmku/layout.rar Scan: https://www.virustotal.com/pt/url/5cd97ee13a3cae9e5f55e882ce86c9312282c5c6af8051967682a442b7c181fb/analysis/1421207643/ layout.rar1 ponto -
Buraco Negro
Buraco Negro
Cain Jorge reagiu a xWhiteWolf por uma resposta no tópico
1 pontoEssa spell foi feita originalmente pro Yazzo numa versão 7.6 do tibia, eu tenho ela salva desde essa época e apenas adaptei e removi umas coisas inúteis (que agora tem função pra isso). A spell não funciona tão bem quanto funcionava naquela época porque muita coisa mudou mas ela funciona e não apresenta nenhum erro então não vejo o porque de não postar já que pode servir de base pra outros scripts de vocês. Ela faz um buraco negro e puxa todos que estão na area em direção ao centro (caso seja possível) Vou colocar duas versões (a primeira é a original arrumada pra rodar em 8.54 e a segundas é ela com algumas funções novas) versão1: versão2: spells.xml <instant name="Dark Hole" words="buraco negro" lvl="160" mana="500" prem="1" exhaustion="2000" needlearn="0" event="script" value="especiais/buraco negro.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> </instant> Espero que gostem e estudem o código dela! haha Uma imagem da versão 1: e uma da versão 2:1 ponto -
Sistema de Upgrade Bronson Server (refinar)
Este é um sistema de refinar itens feito com base no do Bronson Server. Para refinar, o jogador precisa ter uma certa quantidade de Iron Ores (dependendo do level do item) e de um Iron Hammer. Somente equipamentos e armas podem ser refinados. crie Killua Upgrading System.lua em data/actions/scripts e coloque: --- Sistema de Upgrade de itens feito por Killua. --- Sistema feito com base no do Bronson Server. local vocations = {1, 2, 4, 5, 6, 7, 8} -- Vocações que podem refinar itens local ids_bloqueados = {2160, 5706, 2463} -- Itens que não podem ser refinados local controle = { {level = 0, quantOre = 1, chance = 100}, -- Level do item, quantidade de Iron Ore necessaria, chance de sucesso {level = 1, quantOre = 2, chance = 90}, {level = 2, quantOre = 3, chance = 80}, {level = 3, quantOre = 4, chance = 70}, {level = 4, quantOre = 5, chance = 60}, {level = 5, quantOre = 6, chance = 50}, {level = 6, quantOre = 7, chance = 40}, {level = 7, quantOre = 8, chance = 30}, {level = 8, quantOre = 9, chance = 20}, {level = 9, quantOre = 10, chance = 10} } function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if not isInArray(vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Sua vocacao nao pode refinar.") elseif isInArray(ids_bloqueados, itemEx.uid) then return doPlayerSendCancel(cid, "Este item nao pode ser refinado.") end if getItemInfo(itemEx.itemid).attack > 0 or getItemInfo(itemEx.itemid).defense > 0 or getItemInfo(itemEx.itemid).armor > 0 then for _, upgrade in pairs(controle) do local atk = getItemAttribute(itemEx.uid, "attack") or getItemInfo(itemEx.itemid).attack local def = getItemAttribute(itemEx.uid, "defense") or getItemInfo(itemEx.itemid).defense local arm = getItemAttribute(itemEx.uid, "armor") or getItemInfo(itemEx.itemid).armor local chance = math.random(1, 100) if getItemLevel(itemEx.uid) == upgrade.level then if doPlayerRemoveItem(cid, 5880, upgrade.quantOre) then doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS) if chance <= upgrade.chance then if getItemLevel(itemEx.uid) == 0 then doItemSetAttribute(itemEx.uid, "description", "Esse item foi refinado por" ..getCreatureName(cid)) end doItemAddLevel(itemEx.uid, 1) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).. " + " ..getItemLevel(itemEx.uid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso! Agora seu "..getItemNameById(itemEx.itemid).." eh level " ..getItemLevel(itemEx.uid)) if getItemInfo(itemEx.itemid).attack > 0 then doItemSetAttribute(itemEx.uid, "attack", atk + 1) return true elseif getItemInfo(itemEx.itemid).armor > 0 then doItemSetAttribute(itemEx.uid, "armor", arm + 1) return true elseif getItemInfo(itemEx.itemid).defense > 0 and getItemInfo(itemEx.itemid).attack <= 0 then doItemSetAttribute(itemEx.uid, "defense", def + 1) return true end else doTransformItem(itemEx.uid, 2256) doItemSetAttribute(itemEx.uid, 'name', "metal trash") doItemSetAttribute(itemEx.uid, 'attack', 0) doItemSetAttribute(itemEx.uid, 'armor', 0) doItemSetAttribute(itemEx.uid, 'defense', 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.") return true end else doPlayerSendCancel(cid, "Voce nao tem iron ores o suficiente. Voce precisa de "..upgrade.quantOre.." iron ores.") end end end else doPlayerSendCancel(cid, "Esse item nao pode ser refinado.") end return true end Em data/actions/actions.xml coloque essa TAG: <action itemid="2422" event="script" value="Killua Upgradin System.lua"/> Para configurar, leia meus comentários dentro do código.1 ponto
-
Pack 200+ Sprites de Tibia, pack criado por EddyHavoc
Pack 200+ Sprites de Tibia, pack criado por EddyHavoc
Magalhaes92reagiu a EddyHavoc por uma resposta no tópico1 pontoOlá Galerinha do TibiaKing demorei algum tempinho para disponibilizar o Pack mas está pronto. Segue ScreenShot de algumas sprites e a seguir Download. ScreenShot de algumas sprites: Download: http://www.4shared.c..._EddyHavoc.html Senha para extrair os Arquivos: eddyhavoc Exclusivo TibiaKing Créditos a todos os autores que criaram as sprites ! Se a pedido quiser que cite o seu nome post aqui no tópico a sprite de sua autoria e prove que é de sua autoria.1 ponto -
[v2.0.0] TibiaRegex
1 pontoO que é? TibiaRegex são classes que lhe auxiliam a trabalhar com conteúdo do TibiaGlobal (que tenha acesso). Por exemplo: pegar o valor (int) do level do jogador Denoca, o valor (string) do mundo do jogador Guted, entre outros. Suporte TRPlayer ->exists (bool) Retorna true se o player existir, e falso se não ->name (string) Retorna o nome do player ->sex (string) Retorna o sexo do player ->vocation (string) Retorna a vocação do player ->level (int) Retorna o level do player ->achievementpoints (int) Retorna o Achievement Points do player ->world (string) Retorna o mundo do player ->residence (string) Retorna a cidade natal do player ->marriedto (string) Retorna o nome de quem está casado com player ->guildrank (string) Retorna o nome do rank da guild do player (Leader, Member, etc) ->guildname (string) Retorna o nome da guild do player ->comment (string) Retorna o comentário do player ->accountstatus (string) Retorna se a conta é free ou premium ->status (string) Retorna 'online' ou 'offline' Checadores Bom, todos sabemos que existem campos que não necessariamente é exibida na página do player, como por exemplo o comentário. Só aparece, se o player em questão tiver colocado em sua página de seu perfil. Ou outro exemplo a guild, se o player não tem guild, não aparece. Para isso o TibiaRegex possui os checadores em bool (true/false) para saber se possuí ou não tal campo. ->exists (bool) Retorna true se o player existir, e false se não ->online (bool) Retorna true se o player estiver online, e false se não ->check_marriedto (bool) Retorna true se o player for casado, e false se não. ->check_guild (bool) Retorna true se o player tiver guild, e false se não. ->check_comment (bool) Retorna true se o player tiver comentário, e false se não. Como usar Primeiro baixar o TibiaRegex, você terá várias class (nesta primeira versão só tem uma, que é o TRPlayer). Apenas importe (includa) a class que deseja usar e estará pronto para usar <?php include('TRPlayer.class.php'); //importando Alguns exemplos: Código: $char = new TRPlayer('Guted'); echo $char->vocation; Output: Royal Paladin Código: $char = new TRPlayer('Hallsiny'); echo $char->level; Output: 201 Código: $char = new TRPlayer('UmCharQueNaoExiste A'); echo ($char->exists) ? "O player existe!" : "O player não existe!"; Output: O player não existe! Código: $char = new TRPlayer('Rensiny'); echo $char->name.'<br />'.$char->sex.'<br />'.$char->vocation.'<br />'.$char->level.'<br />'.$char->achievementpoints.'<br />'; Output: Rensiny male Master Sorcerer 74 40 Change Log 2.0 Código limpo e organizado Patterns passaram a ser por variáveis e não constantes (pois retornavam Notice quando usados mais de duas vezes na mesma página) Adicionado o parâmetro opcional $loadall, com padrão true. Caso false, ao invés de ->level ficará ->level(), pois a função que guarda o valor na variável. É bom pra reduzir o carregamento e deixar leve. Adicionado status e online informações acima. Download TRPlayer.class.php ou http://pastebin.com/raw.php?i=Q8bWMCAA É isso ai pessoal http://tibiaking.com/forum/public/style_emoticons/#EMO_DIR#/smile.png Pras próxima versões eu pretendo fazer suporte para guilds, highscores, e muitos outros lugares que dá pra tirar informação útil. Por que Regex? Regex é a abreviação (junto com ER, RegExp, preg, e muitas outras) de Expressões Regulares, que é o pilar de todo o código. Sem Regex não teria TibiaRegex. Deem seus feedbacks. Obrigado, Renato Ribeiro.1 ponto
-
[Showoff] New City
[Showoff] New City
runeraserver reagiu a Ceos por uma resposta no tópico
1 pontoO mapa esta bonito, só não gostei daquelas parede ali (acho que e no depot.)1 ponto -
[Showoff] New City
[Showoff] New City
runeraserver reagiu a Cat por uma resposta no tópico
1 pontoInteressante, randomize melhor aquelas caixas lá em baixo e melhore essas bordas.1 ponto -
Npc para tirar duvidas
1 pontohistorias.lua 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 -- HISTORIA START -- keywordHandler:addKeyword({'historia um'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "era uma vez um lobo que comeu ração velha e morreu"}) keywordHandler:addKeyword({'historia dois'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "era uma vez uma ração velha, foi comida por um lobo e morreu"}) npcHandler:addModule(FocusModule:new()) Contador de Hiostorias.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Contador de Historias" script="historias.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150" /> <look type="277" head="0" body="0" legs="0" feet="0"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Eu conto historias, tenho duas historias pra contar. A {historia um} e a {historia dois}" /> <parameter key="message_farewell" value="Volte para ouvir mais historias!" /> </parameters> </npc>1 ponto
-
(Resolvido)[AJUDA] Como instalar e configurar um Site
amigo irei atualizar com links de download aguarde #edit tópico atualizado com endereço de link para download do xampp 1.7.31 ponto
-
(Resolvido)[Pedido] Player Pegar Level 200 Ser Teleportado
nessa parte só trocar o "==" por ">=" newLevel == level newLevel >= level1 ponto
-
(Resolvido)[AJUDA] Como instalar e configurar um Site
ae um tutorial bem explicado http://www.tibiaking.com/forum/topic/2015-colocando-seu-site-online/1 ponto
-
RookWar [8.6]
RookWar [8.6]
Fernandoofer reagiu a SlowK por uma resposta no tópico
1 ponto@Helder Reis, Confira sua conexão com a internet, o config e se o ip está correto, pois ninguém teve esse problema, ou teste usando localhost! @Fernandoofer, Alguns usuários aprovaram, mas quem sou eu para definir seu gosto, teste você mesmo e veja se gosta! Atenciosamente, Unknown!1 ponto -
[Pedido]Features no website
1 pontoPosta o seu latestnews.php em spoiler.1 ponto
-
(Resolvido)[Pedido] Player Pegar Level 200 Ser Teleportado
que burrice a minha vai no seu login.lua e antes do ultimo return true coloca registerCreatureEvent(cid, "UpStar")1 ponto
-
[NPC] Papai Noel - Que dá presente
Configurei pra você, se faltar algo me avise. 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 local t = { item = 7844, st = 121402, temp = 24*3600, -- Em 24 é o tempo em horas para usar novamente! level = 200 } function creatureSayCallback(cid, type, msg) msg = msg:lower() if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then if getPlayerLevel(cid) >= t.level then if getPlayerStorageValue(cid, t.st) > os.time() then selfSay("Você precisa esperar " .. getPlayerStorageValue(cid, t.st) - os.time() .. ' segundo' .. (getPlayerStorageValue(cid, t.st) - os.time() == 1 and "" or "s") .. " para pegar o presente novamente.", cid) else setPlayerStorageValue(cid, t.st, os.time() + t.temp) doPlayerAddItem(cid, t.item) doSendMagicEffect(getThingPos(cid), 13) selfSay('Aqui está! Feliz natal!', cid) end else selfSay('Você precisa ser level '.. t.level ..' para pegar o presente.', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())1 ponto
-
(Resolvido)[Pedido] Player Pegar Level 200 Ser Teleportado
editei já rsrsrs. erro bobo1 ponto
-
(Resolvido)[Pedido] Player Pegar Level 200 Ser Teleportado
@Summ, obrigado por explicar, eu não sabia como funcionava.. @Farathor local level = 200 -- Level local pos = {x = 10474, y = 10807, z = 7} -- Posição local storage = 6661 function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL_LEVEL and newLevel == level and getPlayerStorage(cid, storage) < 1 then doTeleportThing(cid, pos) doPlayerSendTextMessage(cid, 19, "Você acabar de pegar level " .. level .. " e foi teleportado!!") setPlayerStorageValue(cid, storage, 1) end return true end1 ponto
-
[MOD] Pokedex Window
[MOD] Pokedex Window
eliaspalermo reagiu a SniX por uma resposta no tópico
1 pontoEu também tava refazendo a minha pra passar o tempo! falta add a img dos poke ;v1 ponto -
Thriller Dance
1 pontoNa pasta mods do seu otserver, crie um arquivo XML com qualquer nome, e adicione o script do maxwell em local ip , dentro do script, é a posição onde você tem que por pro michael jackson aparecer... Depois, copie um monstro do seu otserver, e cole 2 vezes em mods/monster/Thriller Renomeie um de Dancer, e outro de Michael Jackson, troque também os nomes de dentro, e coloque speed 0..1 ponto
-
[Pedido] Item que da skill por tempo limitado
Bom eu estava estudando com o Summ, Então o foco do estudo era ajudar você. function onUse(cid, item) local config = { time = 30, -- esqueçeu da virgula sempre lembre ao usar mais de um elemento na tabela storage = 13628, } if getPlayerStorageValue(cid, config.storage) < 1 then doPlayerSay(cid, "Feliz Pascoa", TALKTYPE_ORANGE_1) doSendMagicEffect(getThingPos(cid), 27) doPlayerAddSkill(cid, SKILL_CLUB, 30) doPlayerAddSkill(cid, SKILL_AXE, 30) doPlayerAddSkill(cid, SKILL_SWORD, 30) doPlayerAddSkill(cid, SKILL_DISTANCE, 30) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLED_RED, "Feliz páscoa, você foi gratificado com skills.") setPlayerStorageValeu(cid, config.storage, 1) doRemoveItem(item.uid,1) addEvent(function() if isPlayer (cid) then doPlayerAddSkill(cid, SKILL_CLUB, -30) doPlayerAddSkill(cid, SKILL_AXE, -30) doPlayerAddSkill(cid, SKILL_SWORD, -30) doPlayerAddSkill(cid, SKILL_DISTANCE, -30) setPlayerStorageValeu(cid, config.storage, -1) end end, 1000*60*time) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLED_RED, "Você já tem um item em uso!!") end return true end Depois crie uma .lua chamada finishitem em creaturescript function onLogin(cid) local storage = 13628 local skill = 30 if getPlayerStorageValue(cid, storage) == 1 then doPlayerAddSkill(cid, SKILL_AXE, -skill) doPlayerAddSkill(cid, SKILL_CLUB, -skill) doPlayerAddSkill(cid, SKILL_SWORD, -skill) doPlayerAddSkill(cid, SKILL_DISTANCE, -skill) setPlayerStorageValue(cid, storage, -1) end return true end Tag em creaturescript: <event type="login" name="FinishItem" event="script" value="finishitem.lua"/> Qual quer coisa poste aqui.1 ponto
-
[Vault System] Sistema de Cofre
[Vault System] Sistema de Cofre
MaTTch reagiu a Orochi Elf por uma resposta no tópico
1 pontoVocê poderia usar algum item de texto, e usar o callback "onTextEdit/CreatureEvent". utilizando os seguintes comandos, poderia realizar as operações: withdraw 1000 deposit 1000 balance Apenas uma ideia, para alguma futura edição.1 ponto -
[Ajuda] Versão
[Ajuda] Versão
erilandio3 reagiu a Chriistian por uma resposta no tópico
1 pontoNo tópico a seguir, você pode encontrar os servidores do mitsuig e do bruno que estão na versão 10.76 compilados para windows. Tópico: http://www.tibiaking.com/forum/topic/53559-distros-compilados-tfs-10-e-11-1076-x86-x64-dlls/ Espero ter ajudado.1 ponto -
[TUTORIAL] Formatando textos em PHP
[TUTORIAL] Formatando textos em PHP
luanluciano93 reagiu a Rusherzin por uma resposta no tópico
1 ponto<i>Eu ia comentar algo <b>extraordinário</b> e <font color="#617997">colorido</font> mas minhas ideias são <u>triviais</u> e eu sou <u>daltônico</u>.</i>1 ponto -
[TUTORIAL] Formatando textos em PHP
[TUTORIAL] Formatando textos em PHP
luanluciano93 reagiu a Snowsz por uma resposta no tópico
1 ponto<b>Ta foda...</b>1 ponto -
[TUTORIAL] Formatando textos em PHP
[TUTORIAL] Formatando textos em PHP
luanluciano93 reagiu a Ceos por uma resposta no tópico
1 ponto<p> Gostoso <font color="#FAFAD2">ltgoldenrodyello</font> Gayzão, Baitola, <s>sqs!</s> </p>1 ponto -
(Ajuda) Zombie Event - Error
1 pontolocal config = { semana_mes = "semana", days = {1,2,3,4,5,6,7}, -- Dia das semanas que irá acontecer o evento goblet = 5805, -- Troféu que vai pro vencedor do evento rewards = {2195, 5808, 2160}, -- Recompensas. moneyReward = {2160, 30, 1},-- {moneyId, quantidade, usar}1 pra usar 0 pra não usar} playerCount = 2001, -- Storage dos players que entram e sai do evento zombieCount = 2002, -- Storage do zombie do event teleportActionId = 2008, -- Action ID do teleport teleportPosition = {x = 301, y = 267, z = 15, stackpos = 1}, -- Onde o teleport é criado teleportToPosition = {x = 1061, y = 47, z = 6}, -- Pra onde será teleportado teleportId = 1387, -- ID do teleporte timeToStartEvent = 2, -- Minutos que o portal irá ficar aberto até os player entrarem timeBetweenSpawns = 20, -- Segundos dps do evento ser startado começarem a aparecer os zombie zombieName = "walker zombie", -- Nome do zombie sumonado playersNeededToStartEvent = 3, -- Players necessários pro evento ser iniciado -- Area que o zumbi vai spawnar fromPosition = {x=1029, y=28, z=6}, -- top de fromPosition até toPosition = {x=1099, y=112, z=6} -- em baixo toPostion } function onTimer() local time = os.date("*t") if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition) doItemSetAttribute(tp, "aid", config.teleportActionId) doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.playerCount, 0) setGlobalStorageValue(config.zombieCount, 0) addEvent(startEvent, config.timeToStartEvent * 1000 * 60) end return TRUE end function startEvent() local fromp, top = config.fromPosition, config.toPosition if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then addEvent(spawnZombie, config.timeBetweenSpawns * 1000) doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!") pvgaylord() end end end end else doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false) doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT) end end end end end end function spawnZombie() if getGlobalStorageValue(config.playerCount) >= 2 then pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)} doSummonCreature(config.zombieName, pos) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, config.timeBetweenSpawns * 1000) else local fromp, top = config.fromPosition, config.toPosition for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} cid = getThingfromPos(areapos).uid if isPlayer(cid) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!') for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.") elseif isMonster(cid) then doRemoveCreature(cid) end end end end end end function pvgaylord() local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0 for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do local areapos = {x = x, y = y, z = z, stackpos = 253} local cid = getThingfromPos(areapos).uid if isPlayer(cid) then p = p+1 elseif isMonster(cid) then m = m+1 end end end end if p ~= getGlobalStorageValue(config.playerCount) then setGlobalStorageValue(config.playerCount, p) end if p < 2 then return true end addEvent(pvgaylord,100,nil) end1 ponto
-
(Resolvido){Dúvida}Como fazer TFS aceitar acentuação
(Resolvido){Dúvida}Como fazer TFS aceitar acentuação
Fir3element reagiu a Caronte por uma resposta no tópico
1 pontoOu, só colocar codificação ANSI quando for salvar como...1 ponto -
(Resolvido){Dúvida}Como fazer TFS aceitar acentuação
Pra adicionar, nas sources basta inserir a biblioteca : #include <locale.h> e dps usar: setlocale(LC_ALL, "Portuguese"); que vai aceitar os caracteres com acentos... Ps: Não vou ensinar editar, jogue no google e aprende por conta própria.1 ponto
-
(Resolvido)Servidor não entra depois de um tempo
Problema resolvido, contratei uma boa configuração do firewall no meu host Linux e tudo foi resolvido!1 ponto
-
(Duvida/Pedido) Erro Distro
(Duvida/Pedido) Erro Distro
Biinhow reagiu a Fir3element por uma resposta no tópico
1 pontoexecuta ai: ALTER TABLE `players` ADD `cast` TINYINT NOT NULL DEFAULT '0', ADD `castViewers` INT( 11 ) NOT NULL DEFAULT '0', ADD `castDescription` VARCHAR( 255 ) NOT NULL1 ponto -
[pedido] Monsters spells e mapa Radbr
[pedido] Monsters spells e mapa Radbr
Biinhow reagiu a Fir3element por uma resposta no tópico
1 pontoEle quer o otserv todo. @tópico 70% do mapa ta liberado na net, eu mesmo copiei a maioria das cidades, é só você procurar1 ponto -
Olá a todos!
Olá a todos!
sandrodiego reagiu a thiagobji por uma resposta no tópico
1 pontoBem vindo Eduardo! Eu também jogo Tibia e CS 1.6 *--*1 ponto -
Gesior 2.5 Editado
Gesior 2.5 Editado
Luis Matheus reagiu a Sociopata por uma resposta no tópico
1 pontofala turma vim trazer hoje um gesior que eu andei mexendo, e vou continuar editando, mas enquanto isso ta aqui DOWNLOAD SCAN1 ponto -
Taunt
Taunt
ADM Mayk on BaiakME reagiu a xWhiteWolf por uma resposta no tópico
1 pontoeu acho mais parecido com o charm da Ahri doque com o Taunt do rammus hahuheuhauh mas de boa1 ponto -
Taunt
Taunt
ADM Mayk on BaiakME reagiu a Cat por uma resposta no tópico
1 pontolembrei do rammus também hsuahsa muito boa a magia1 ponto -
Saida Tibiaking
Saida Tibiaking
thelifeofpbion reagiu a xWhiteWolf por uma resposta no tópico
1 pontoNão.. eu to no fórum certo. Óbvio que tem gente que só quer o script pronto, e isso é totalmente aceitável o.O; Mas dá só uma olhada nisso daqui: Enquanto tiver gente me procurando pra aprender mais ou gente incitando discussões sobre código eu vou saber que meu trabalho aqui no fórum tá feito. Detalhe que muitos que ajudam aqui no fórum são meus alunos e eu que peço pra eles irem suporte e tentarem ajudar o pessoal, claro que seria melhor ensinar esse povo que quer script mas um bom professor sabe que a melhor forma de encorajar a busca pelo conhecimento é através de pequenas amostras do potencial que esse conhecimento proporciona. A gente vai tentando ensinar uma coisa ou outras entre os pedidos, mudando uma coisinha ali e outra aqui e vendo oque isso causa.. se isso já não for um baita aprendizado, bem, eu não sei oque é. Scripting é dificil, como dizia Edsger Dijkstra: "Programação é tão inerentemente difícil e complexa que os programadores precisam realizar qualquer abstração possível para gerenciar a complexidade com sucesso." Eu não posso cobrar que uma criança de 12, 13 anos que quer montar um joguinho legal tenha noções de Geometria Analítica ou saiba diferenciar tipos complexos de algoritmos mas oque eu posso é fazer um script pra ela e incentivar que ela tenha essa busca por aprendizado, muitos aqui, eu aposto, que tiveram seu primeiro contato com programação através de scripts pra Tibia, e isso é uma coisa linda e que deve ser incentivada. Se essa criança não tiver nenhum empecilho no meio do caminho, pode ser que ela venha a aprender por vontade própria (é o tipo mais forte de vontade) e comece a desenvolver seu próprio código, ajudando outras pessoas e continuando o ciclo. Então meu caro, eu acredito sim noque eu falei, e torno a dizer: A grande maioria do povo que me procura via pm é para aprender! Pode não ser oque acontece no fórum, mas as pessoas tem sim essa vontade de aprender por mais dificil que seja pra elas, e, se eu puder contribuir, nem que seja 1% com a formação de um scripter melhor, eu já vou me sentir realizado. PS: todos meus argumentos são baseados na teoria de aprendizado behaviorista, só pra caso você tenha alguma dúvida do porque eu fiz certas afirmações consideradas "audaciosas" PS2: A grande maioria dos tópicos que você postou só mostra oque eu falei, as pessoas estão procurando ajuda e frases como "alguém pode me ensinar", "já fiz a maior parte, preciso de ajuda só nisso daqui" "onde eu posso configurar?" são comuns. Peço que releia cada comentário dos tópicos e tente ter uma visão diferente. Abra sua mente e pense que muitas das pessoas vem ao fórum com intenção de resolver problemas.1 ponto -
Saida Tibiaking
Saida Tibiaking
Summ reagiu a xWhiteWolf por uma resposta no tópico
1 pontoEu acompanho de perto a seção de Scripting (tento me ater somente à ela [e o playground qnd sobra um tempinho a mais]) e venho dizer pra você que essa afirmação está errada. Todas as dúvidas resolvidas são feitas por pessoas que eu contribui de alguma forma, a maioria que me procura é pra pedir ajuda em como aprender. Spriting é tão dificil quanto qualquer outra área do fórum e vocês não vão crescer ela guardando oque sabem pra si mesmos. Que fique claro que essa é a minha opinião como Anderson Faria. Toda vez que eu entro no fórum pra trazer um conteúdo me passa pela cabeça o quanto eu poderia lucrar vendendo meus scripts mas eu sei que dessa forma eu não estaria contribuindo pro avanço do Open Tibia e nem para o avanço da área de scripting. É legal fazer show off? É. Mas não acrescenta nada além de um pouquinho de ego, sejamos honestos... Quero destacar que eu evito me envolver nesse tipo de assunto mas como testemunha me sinto no dever de expor a verdade: Você estava no chat da equipe e nunca respondia, não moveu 1 tópico em sei lá quanto tempo de equipe. No próprio chat, o membro Daniel chegou a comentar diversas vezes para você ajudar mais.. oque não ocorreu. Sua retirada da equipe era esperada e iminente, apenas lamento em saber que tenha sido sem um aviso prévio (apesar de terem tidos diversos avisos anteriormente); Eu só acho que você não agiu diferente de quem te removeu do cargo (não sei quem foi) ao vir aqui e criar esse tópico ao invés de ir conversar com alguém da equipe. Dito isso vou considerar esse assunto como encerrado, Rapaz, você tem o dom de falar mais asneira por cm² de texto viu... então você tá querendo me dizer que pra valorizar meu trabalho eu não posso divulgá-lo entre as pessoas que precisam dele? Agora me responde como que uma empresa cresce no mercado se não começando vendendo projetos pequenos? Sobre um spriter na equipe: Eu já comentei diversas vezes que é preciso ter um membro pra cada área mas é preciso de membros que tenham vontade de ajudar, ensinar e inspirar.. que não foi o caso, pelo menos ao meu ver.1 ponto -
[Lista] Lista De CreatureScrits , MoveMents , GlobalEvents
[Lista] Lista De CreatureScrits , MoveMents , GlobalEvents
Raphael Darkath reagiu a Jeff Owns por uma resposta no tópico
1 pontoOlá Galera Hoje Eu Vou Postar Uma Lista De Alguns CreatureScripts , GlobalEvents e MOveMents Lista Actions ,MoveMents,GlobalEvents Tk [spell] KameHame Ha! Autor: Jedian Topico: Topico Official Tipo: Spell [GlobalEvents] Npc Por Tempo Autor: MatheusVidaLoka Topico: Topico Official Tipo: GlobalEvents [CreatureEvent] Efeito No Player Autor: Kimoszin Topico: Topico Official Tipo: CreatureEvent [MoveMents] Tile Informativo Autor: Kimoszin Topico: Topico Official Tipo: MoveMents [GlobalEvents] Invasao Diaria De Monstros Autor: Kamex10 Topico: Topico Official Tipo: GlobalEvents [MoveMents] Novo Tipo De Treiner Autor: Slaake Topico: Topico Official Tipo: MoveMents War Of Emperium Autor: Slaake Topico: Topico Official Tipo: MoveMents [GlobalEvents] Evento Tp Automatico Autor: Slaake Topico: Topico Official Tipo: GlobalEvents Simple Taks 2.0 Autor: Vodkart Topico: Topico Official Tipo:Creature Script,Talkaction,Action... [Creature] Owned! Autor: Guilherme. Topico: Topico Official Tipo: CreatureScript Raid Automatica (Por Horario) Autor: Subyth Topico: Topico Official Tipo: GlobalEvents [GlobalEvents] Mensagens Automaticas Autor: Matheus Topico: Topico Official Tipo: GlobalEvents [CreatureScript] Hit Message Autor: SkyForever Topico: Topico Official Tipo: CreatureScript [CreatureScript] Scroll Que Teleporta Player Autor: MatheusVidaLoka Topico: Topico Official Tipo: CreatureScript [MoveMents] Mensagem Quando o Player Passa Por 1 Tile Autor: MatheusVidaLoka Topico: Topico Official Tipo: MoveMents Task System Autor: ADMPianista Topico: Topico Official Tipo: Talkaction,CreatureScript,Action... [CreatureScript] Anti-MageBomb Autor: EddyHavoc Topico: Topico Official Tipo: CreatureScript Recovery Exp Autor: Vodkart Topico: Topico Official Tipo: CreatureScript [CreatureScript] Pvp Channel,Simples Autor: SkyForever Topico: Topico Official Tipo: CreatureScript [CreatureScriot] Level Recompense Autor: SkyForever Topico: Topico Official Tipo: CreatureScript [CreatureScript] Walking Effect On Outfit Autor: Vodkart Topico: Topico Official Tipo: CreatureScript House Clean Autor: Vodkart Topico: Topico Official Tipo: GlobalEvents Bom Galéra , E So Isso Espero Que Eu Tenha Ajudado!!! Abss Att: Jeff Owns Aaaah , Eu Sei Que EXISTE UM Topico Aki , Igual a Esse , Mas Ele Paro De Ser Atualizado , Entao Postei Aki , E Quando Tiver Mais Actions e Talkactions Eu Atualizo!!! Ultimos Update Do Topico 09/07/20121 ponto -
[TASK] Natalino
[TASK] Natalino
Reds reagiu a GuuhTorres por uma resposta no tópico
1 ponto[TASK] Natalino Função: Neste script você devera fazer as tarefas do npc (Boneco de Neve) buscando peixes para o lago,assim você irá ganhar uma recompensa. Recompensa: 10 Crystal Coins/90000 EXP. • autor: guuhtorres/hardcorporation • versão do distro: 8.60 -SCRIPT : Entre nos Aquivos: OTserver/Data/NPC CRIE O ARQUIVO Snowman.XML : <?xml version="1.0" encoding="UTF-8"?> <npc name="Snowman" script="data/npc/scripts/Snowman.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look typeex="7172" head="96" body="19" legs="68" feet="95" addons="0"/> <parameters> <parameter key="message_greet" value="Preciso de Peixes. Voce tem todas os Peixes necessarios? Diga {tarefa}. Posso te {pagar} muito bem." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="hi;pagar" /> <parameter key="keyword_reply1" value="Irei precisar de voce para uma {tarefa}. Posso te {pagar} muito bem." /> <parameter key="keyword_reply2" value="Rapido me ajude a Recuperar os Peixes da Lagoa. Nao irei te dizer o que vou lhe dar em troca, mas posso garantir que sera util para sua Jornada. Voce so precisa confiar em mim." /> </parameters> </npc> -PRÓXIMA ETAPA : 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 crystalid = 7159 local storage = 7159 local getstorage = getPlayerStorageValue(cid, storage) local sorrymessage = "Desculpe, voce nao tem todos os Green Perches necessarios para completar as Tarefas..." local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'green perches') then if getstorage == 6 then npcHandler:say("Voce jah completou Esta Tarefa", cid) elseif getstorage < 6 then npcHandler:say("Ola. Green Perches. Voce tem todas os Green Perches necessarios? Diga {tarefa}. Posso te {pagar} muito bem. ", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'tarefa') then if getstorage < 1 then npcHandler:say("Voce precisa de 1 {Green Perches} para comecar.", cid) elseif getstorage == 1 then npcHandler:say("Voce esta na segunda missao e precisa de mais 5 {Green Perches} para continuar.", cid) elseif getstorage == 2 then npcHandler:say("Voce esta na terceira missao e precisa de mais 8 {Green Perches} para continuar.", cid) elseif getstorage == 3 then npcHandler:say("Voce esta na quarta missao e precisa de mais 10 {Green Perches} para continuar.", cid) elseif getstorage == 4 then npcHandler:say("Voce esta na quinta missao e precisa de mais 15 {Green Perches} para continuar.", cid) elseif getstorage == 5 then npcHandler:say("Voce esta na sexta e ultima missao e precisa de mais 20 {Green Perches} para Receber o Premio.", cid) elseif getstorage == 6 then npcHandler:say("Voce completou todas as Tarefas.", cid) end elseif msgcontains(msg, 'yes') then if talkState[talkUser] == 1 then if getstorage < 0 then if doPlayerRemoveItem(cid, crystalid, 1) == TRUE then npcHandler:say("Voce jah me deu 1 {Green Perches}. Agora irei precisar de mais {5}.", cid) setPlayerStorageValue(cid, storage, 1) doPlayerAddExp(cid, 1000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 1 then if doPlayerRemoveItem(cid, crystalid, 5) == TRUE then npcHandler:say("Voce jah me deu 5 {Green Perches}. Agora irei precisar de mais {8}.", cid) setPlayerStorageValue(cid, storage, 2) doPlayerAddExp(cid, 5000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 5) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 2 then if doPlayerRemoveItem(cid, crystalid, 8) == TRUE then npcHandler:say("Voce jah me deu 8 {Green Perches}. Agora irei precisar de mais {10}.", cid) setPlayerStorageValue(cid, storage, 3) doPlayerAddExp(cid, 7000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 7) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 3 then if doPlayerRemoveItem(cid, crystalid, 10) == TRUE then npcHandler:say("Voce jah me deu 10 {Green Perches}. Agora irei precisar de mais {15}.", cid) setPlayerStorageValue(cid, storage, 4) doPlayerAddExp(cid, 10000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 10) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 4 then if doPlayerRemoveItem(cid, crystalid, 15) == TRUE then npcHandler:say("Voce jah me deu 15 {Green Perches}. E por ultimo, irei precisar de mais {20}.", cid) setPlayerStorageValue(cid, storage, 5) doPlayerAddExp(cid, 15000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 15) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 5 then if doPlayerRemoveItem(cid, crystalid, 20) == TRUE then npcHandler:say("Obrigado, Por Recuperar os Green Perches Para o Lago Novamente, voce completou todas as Tarefas. Irei te dar uma Recompensa. 10 {Crystais Coins} e alguma experiencia.", cid) setPlayerStorageValue(cid, storage, 6) doPlayerAddExp(cid, 90000) doPlayerAddItem(cid, 2160, 10) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 50) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end end end elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then npcHandler:say("OK, Volte quando estiver pronto.", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -PRONTO,AGORA VOCÊ TEM UMA TASK NATALINA ! Obrigado.Att GuuhTorres.1 ponto