Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 11/22/16 em todas áreas

  1. Salve galera recentemente Criei um Tópico de como aumentar o Limite de effects no 8.60 para mais de 255 efeitos, e fiz um Tópico de como mudar de uint8 para uint16 nas Source, para MagicEffect e ShootEffect, porém o Tutorial ficou meio inútil para ShootEffect pois precisa mudar no Client também. E então hoje estarei mostrando como mudar no Client. Abaixo mais informações! Esse Tutorial serve apenas para Versão 8.60 do Client, a versão 8.54 é diferente e então caso queiram eu posso mostra como fazer em um Futuro não distante. Hehe! Para que as alterações funcione, é preciso que você modifique também na source da sua distro! Muito bem, abra o OllyDbg e abra seu Client: Depois de ter aberto o Client aperte Ctrl+G e procure pela função 004108F1 e de um enter, como mostra a foto abaixo: Feito isso, você cairá exatamente em cima do endereço onde deve alterar, como mostra a imagem abaixo: Muito bem hora de altera, o endereço que devemos altera é o segundo e terceiro. Dê 2x clicks ou aperte espaço em cima da função e mude o segundo endereço para CALL 004F9C00 e depois click em Assembly, como mostra a imagem abaixo: Depois mudamos o terceiro endereço, para MOVZX EAX, AX e depois click em assembly, como mostra a imagem abaixo: E fim, precisamos agora salvar nosso Client com a modificação, aperte com o Botão direito do mause e vá em Copy to executable > All modifications Depois em Copy All Vai abrir outra janela, novamente click com o botão direito do mause, e vá em save file: E depois escolha o Luga onde quer salvar: E fim, lembre-se de fazer a modificação na Source, caso não saiba fazer use esse Tutorial aqui! Download do OllyDbg Scan do OllyDbg Lembrando que o Vírus encontrado no OllyDbg é por causa da sua Dll que faz alteração interna na source de um Programa. Créditos: { Breno Neves (Eu) Fernando Prado (Parça que me passou os últimos endereços.) } É proibido posta esse Conteúdo em outro Blog, site ou fórum, Tutorial feito exclusivo para o Tk! Bom uso e até mais! xD
  2. Eae Galera do TibiaKing É o seguinte Hoje trago a vocês o Baiak Rox Editado por Min Espero que Gostem Oque eu Fiz ? | Novo Visual do Templo Totalmente ICE | Critical System | Task System | Dodge System | Run Event (CORRIDA MALUCA) | Reset System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) para resetar fale !reset | Guild Frags System ( ACESSO AO PROMOTE E ITENS EXCLUSIVOS ) | War System (100% RODANDO EM SQLITE) | Cast System (100% Roda em Mysql ) ( Para Ativar vai em Config.lua e ache | enableCast = false | mude para true ) Duvidas entrem em http://www.tibiaking...os-na-distro/ | PvP Balanceado Agora com mais RPG | Armas Arrumadas Para Melhor PvP | Varios Eventos Automaticos | Battle Field Event | Capture The Flag Event | City War | Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES | Itens DONATES | Área DONATE ~~ (Só Entra Quem Usar o Itens de Premium Days) | Vários Novos Script | Fast Atk Arrumado | Distro 0.4 Rodando 100% ( Se For 64x Bits) | Refinamento ( Aprimora seus Equipamentos ) | Frags no Look | Npc Hero Seller (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS) | Entre Outras Coisas | SENHA DO GOD: rox/styller | Aqui Vai Umas Prints | Castelo Reset System | Nova Imagem do Templo | Área Donate | Mostra de Itens Donate + Eventos | Download | Scan | Créditos | Gostou ? Então dei um REP
  3. Tutorial 2 em 1 - Magic e Shoot Effects

    Gabrielx17 reagiu a KotZletY por uma resposta no tópico

    1 ponto
    Bom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão! Abaixo umas informações essenciais ! Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 255, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou Distance Effects), caso queria os dois, use ambos. Vamos começar primeiramente com os Magic Effects: Agora vamos mudar o ShootEffects para uint16. Bom não adianta mudar isso se não fizer alteração no Client, então deixarei aqui, dois Tópicos de como mudar de uint8 para uint16 no Client em em ShootEffects e MagicEffect. Mudando os Efeitos de uint8 a 16 para Magic Effects Mudando os Efeitos de uint8 a 16 para Shoot Effects Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar. Tópico exclusivo do Tk, proibido posta em outro site, blog ou fórum! xD
  4. GesiorACC 2019 8.60 UPDATE 29/06/2019

    wiz444 reagiu a Natanael Beckman por uma resposta no tópico

    1 ponto
    Atualização de 29/06/2019. Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas. Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente. - Foi mudado algumas imagens de layout para renovar a estrutura. - Server Info + Most Power Ful Guilds na mesma estrura. - Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo a segurança do seu cliente e dificultando futuras dores de cabeças. - Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points. - Algumas mudanças de layout. - Nome do player abaixo linkado. - Adicionado um Box de doação, com a intenção apenas de complementar o layout enriquecendo a pagina. - Fixado o bug edit town, e melhorado o layout. - Characters.php refeito, nesta imagem é uma visão de uma conta com access admin. - Visão normal. - Inventário completo. - Guilds com visão ampliada. - Detalhes... - Novo SHOP com as estrutura de layout melhorada e modernizada. - Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina. - Detalhes... - Detalhes... - Detalhes... - Histórico do SHOP... DOWNLOAD SITE SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
  5. [CUSTOM] RuneScape OT

    daniofordon reagiu a leocurvelo por uma resposta no tópico

    1 ponto
    Ola pessoal do TibiaKing! Estou aqui para anunciar meu projeto! Esse projeto foi uma ideia que tive de misturar varios recursos do jogo RuneScape ao client do Tibia, e aqui está ! [~]O Servidor[~] Estou trabalhando duro no servidor há mais ou menos 3 meses, não estou tendo ajuda de ninguem no momento e estou tentando fazer ao maximo! [~]Sistemas e Special Skills[~] Mining - usado para extrair ores das pedras Smithing - derretes ores em barras e forjar equipamentos e armas Woodcutting - cortar diversas árvores Fletching - usado para fabricar munições e 'bows/crossbow' Firemaking - acenter lenhas em fogueiras Fishing - pescar peixes para cozinhar Cooking - cozinhar peixes e alimentos para comer e recuperar HPs Crafting - usado para cortar gemas, criar joias e tecer couros Herblore - limpar ervas e criar poções com elas Runecrafting - criar runas em altares magicos Thieving - roubar lojas, bancadas, baus, npcs Agility - usado para usar atalhos e entrar em lugares misteriosos Farming - permite que o jogador plante frutas, ervas ou arvores em terrenos específicos Prayer - enterrar ossos para receber bençãos divinas Slayer - tarefas para matar monstros, receber recompensas, matar bosses e conseguir items exclusivos Hunter (NEW) - caçada de diferentes animais e criaturas Summoning (NEW) - criação espiritual de 'pouches' para invocação de criaturas Skinning (NEW)- obtenção de items únicos de cada criatura Pretendo adicionar mais skills com o tempo! [~]Vocations[~] Adventurer - essa será a unica vocação no jogo, portanto o jogador poderá usar qualquer tipo de combate (Magic, Ranged ou Melee) a hora que quiser, como no Runescape (Level Up: +20 HP +20 MP) [~]O Mapa[~] O mapa será o mais parecido possivel ao mapa do RuneScape, com alguns detalhes visando a diferença de um mapa Tibiano, como casas em todas as cidades, locais de caças específicos, etc... [~]Client de Jogo[~] Voce poderá jogar com nosso Custom Tibia Old Client, e tambem com o nosso OTClient que terá novos recursos e "mods" para ajuda-lo no jogo! [~]Teasers[~] Como estou trabalhando sozinho, se você estiver interessado em ajudar em algo no projeto, estarei disposto a recebe-lo! Discord: leocurvelo#0017 Facebook: /leocurvelo E-mail: [email protected] Estarei atualizando voces de qualquer novidade no servidor, então fiquem ligados! Obrigado!
  6. Como Proteger Suas Sprite

    gabrielzika reagiu a Kazuya9629 por uma resposta no tópico

    1 ponto
    Creditos Object Build Por Ter criado Programa ABRA PASTA Object Builder Abaixe Notepad++ https://notepad-plus-plus.org/ MODIFIQUE A Dat e Spr Por Um Numero gigante Para Que object Build Bug E Aparessa Signitude 0 ASSIM ELES NAO CONSEGUIRAO Abrir com object Buid So Voce Porque so voce tem o codigo Depois Que Salva O Arquivo Abra Object Build Vai Em Arquivo e COPILAR COMO PROCURE OQUE VOCE EDITOU FINALIZER CONFIRMANDO PRONTO
  7. SNOWBAL EVENT TIBIA

    Deathstroke reagiu a Absolute por uma resposta no tópico

    1 ponto
    Olá amigos, membros, visitantes, papagaios, enfim... Depois de muito me pedirem o evento SNOWBAL WAR EVENT, trago ele 100% pra vocês. Como funciona? Os jogadores irão se divertir em uma emocionante partida de guerra de bolas de neve. O objetivo principal do evento é derrubar o número máximo de jogadores durante uma partida - atirando bolas de neve contra seus inimigos. O jogador que mais pontos fizer até o termino do evento será o vencedor (recompensa pode ser configurada). Sem delongas, vamos ao que interessa... Em data/actions abra o seu actions.xml e insira a seguinte linha: <action actionid="7900" event="script" value="snowballaction.lua" /> Em data/actions/scripts crie um arquivo com o nome de snowballaction.lua e insira o seguinte conteúdo: function onUse(cid, item, frompos, item2, topos) if item.actionid == 7900 then if(SBW_AMMOINFI) then doPlayerSendTextMessage(cid, 27, "as bolas de neve sao infinitas, nao ha necessidade que voce compre-as.") else if (getPlayerStorageValue(cid, SBW_SCORE) > 0) and (getPlayerStorageValue(cid, SBW_AMMO) < 30) then doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1) doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)+SBW_AMMOBUY) doPlayerSendTextMessage(cid, 27, "Voce trocou " .. SBW_AMMOBUY .. "x bolas de neve por 1 ponto de placar.") doSendMagicEffect(getCreaturePosition(cid),4) else doPlayerSendTextMessage(cid, 27, "Voce nao possui pontos de jogo o suficiente ou ja esta carregando muitas bolas de neve.") end end end end Em data/talkactions abra o seu talkactions.xml e insira a seguinte linha: <talkaction words="!snowball" event="script" value="snowballtalk.lua"/> Em data/talkactions/scripts crie um arquivo com o nome de snowballtalk.lua e insira o seguinte conteúdo: function onSay(cid, words, param, channel) local k = string.explode(param, ",") if(k[1] ~= nil) then if(string.upper(k[1]) == 'INFO') then local score = {} local output = "Voce tem " .. getPlayerStorageValue(cid, SBW_SCORE) .. " pontos.\nVoce tem "..getPlayerStorageValue(cid, SBW_AMMO).."x municoes.\n------------------\nO maior matador:\n" for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, SBW_INEVENT) then table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)}) end end local lx = table.getn(score) if(lx > 3) then lx = 3 end table.sort(score, function(a, b) return a[2] > b[2] end) for k = 1,lx do output = output .. k..". "..score[k][1] .." [".. score[k][2] .."].\n" end doPlayerPopupFYI(cid, output) end if (string.upper(k[1]) == 'ATIRAR') then if(getPlayerStorageValue(cid, SBW_INEVENT) == 1) and not getTileInfo(getThingPos(cid)).protection then if getPlayerStorageValue(cid, SBW_EXAUSTHED) <= 1 then if(getPlayerStorageValue(cid, SBW_AMMO) > 0) then if SBW_STATUS == 'on' then if(SBW_AMMOINFI == false) then doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)-1) end doPlayerSetStorageValue(cid, SBW_EXAUSTHED, 2) lineAnimation(getPlayerLookDirection(cid),getCreaturePosition(cid),12,cid,1,0,1,0,0,0,1,0) addEvent(doPlayerSetStorageValue, SBW_SHOOTEXAUSTHED, cid, SBW_EXAUSTHED, 1) if (getPlayerStorageValue(cid, SBW_AMMO) ~= 1) then doPlayerSendTextMessage(cid, 27, "Restam "..getPlayerStorageValue(cid, SBW_AMMO).."x bolas de neve.") else doPlayerSendTextMessage(cid, 27, "Usando sua ultima bola de neve, recarregue.") end end else doPlayerSendCancel(cid, "Voce esta sem bolas de neve, recarregue no centro do campo ou mate um inimigo.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end else doPlayerPopupFYI(cid, "Acalme-se voce deve esperar para atirar novamente.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end else doPlayerPopupFYI(cid, "Voce precisa estar dentro evento ou fora da pz.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end end return true end function lineAnimation(lookDir,playerPos,effect,cid,fvar,fpos,ffound,fposV,fcheck,fvcid,floopCounter,fvpid, name) local var = fvar local pos = fpos local found = ffound local posV = fposV local check = fcheck local vcid = fvcid local loopCounter = floopCounter local vpid = fvpid local storage = SBW_EXAUSTHED if var < 2 then vcid = cid end pos = playerPos if not isInWallArray(convert(lookDir,pos)) then--isInWallArray({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z}) then --isInArray(t.onShoot.misc.walls_id, getThingfromPos({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z, stackpos=0}).itemid) then doSendDistanceShoot(pos, convert(lookDir,pos),effect) pos = convert(lookDir,pos) var=var+1 posV = convertV(lookDir,playerPos) for _, pid in ipairs(getPlayersOnline()) do if (getCreaturePosition(pid).x == pos.x and getCreaturePosition(pid).y == pos.y and getCreaturePosition(pid).z == pos.z) then --if loopCounter > 2 then vpid = pid --end if (vpid ~= vcid) then if var > 2 then if (getCreaturePosition(pid).x == posV.x and getCreaturePosition(pid).y == posV.y and getCreaturePosition(pid).z == posV.z) then killPlayer(pid,pos,getCreatureName(vcid)) if (lookDir == 0) or (lookDir == 2) then var = 6 else var = 8 end end end killPlayer(pid,pos,vcid) if (lookDir == 0) or (lookDir == 2) then var = 6 else var = 8 end end end loopCounter = loopCounter +1 end if (lookDir == 0) or (lookDir == 2) then if var ~= 6 then addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid) else var = 1 end else if var ~= 8 then addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid) else var = 1 end end else doSendMagicEffect(convert(lookDir,pos),2) var = 1 end end local ret = {} function convert(lookDir,pos) local positions = { [0] = {x = pos.x, y = pos.y-1, z = pos.z}, [1] = {x = pos.x+1, y = pos.y, z = pos.z}, [2] = {x = pos.x, y = pos.y+1, z = pos.z}, [3] = {x = pos.x-1, y = pos.y, z = pos.z} } ret = positions[lookDir] return ret end local ret = {} function convertV(lookDir,pos) local positions = { [0] = {x = pos.x, y = pos.y+1, z = pos.z}, [1] = {x = pos.x-1, y = pos.y, z = pos.z}, [2] = {x = pos.x, y = pos.y-1, z = pos.z}, [3] = {x = pos.x+1, y = pos.y, z = pos.z} } ret = positions[lookDir] return ret end function isInWallArray(pos) for k = 0, table.getn(SBW_WALLSID) do if getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k] then --this doesn't even make sense but tried other ways and it gave errors, so meh 2lazy2search return true end end return false end function killPlayer(cid, pos, killer) local t_l = SBW_AREA[1] local b_r = SBW_AREA[2] local posti = {} local isPossibleToTeleportPlayer = false while (isPossibleToTeleportPlayer == FALSE) do posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) if isInWallArray(posti) == FALSE then isPossibleToTeleportPlayer = TRUE end end doTeleportThing(cid, posti) doSendMagicEffect(pos,2) doSendMagicEffect(posti,6) doSendAnimatedText(pos, ""..getCreatureName(killer).." ", 55) doPlayerSendTextMessage(cid, 27, "Voce morreu para "..getCreatureName(killer)..".") doPlayerSetStorageValue(killer, SBW_SCORE, getPlayerStorageValue(killer, SBW_SCORE)+SBW_POINTSKILL) doPlayerSendTextMessage(killer, 27, "You've killed "..getCreatureName(cid)..".") if SBW_LOSTSCORE then doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1) end if SBW_RESETAMMO then doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO) end end Em data/globalevents abra o seu globalevents.xml e insira a seguinte linha: <globalevent name="StartSBW" time="19:00" event="script" value="events/snowballglobalevent.lua"/> Em data/globalevents/scripts crie um arquivo com o nome de snowballglobalevent.lua e insira o seguinte conteúdo: function onTime() function isInWallArray(pos) for k = 0, table.getn(SBW_WALLSID) do if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then return true end end return false end function endsnowball() local score = {} if not SBW_USEWAIT then doRemoveItem(getTileItemById(SBW_TP, 1387).uid) end for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)}) doPlayerSetStorageValue(pid, SBW_INEVENT, 0) doPlayerSetStorageValue(pid, SBW_SCORE, 0) doPlayerSetStorageValue(pid, SBW_AMMO, 0) doTeleportThing(pid, SBW_TPEND) end end table.sort(score, function(a, b) return a[2] > b[2] end) --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)] local hora = os.date("%X") local data = os.date("%x") if table.getn(score) > 0 then if SBW_ADDREWARD then for _, pid in ipairs(getPlayersOnline()) do if getCreatureName(pid) == score[1][1] then for op,ad in pairs(SBW_REWARDS) do doPlayerAddItem(pid, ad[1], ad[2]) end break end end end db.query("INSERT INTO `snowballwar` VALUES ('', ".. db.escapeString(score[1][1]) .. ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";") doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.") end return true end local t_l = SBW_AREA[1] local b_r = SBW_AREA[2] function moveToEvent() for _, pid in ipairs(getPlayersOnline()) do if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then local posti = {} local isPossibleToTeleportPlayer = false while (isPossibleToTeleportPlayer == FALSE) do posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) if (isInWallArray(posti) == FALSE) then isPossibleToTeleportPlayer = TRUE end end doTeleportThing(pid, posti) doPlayerSetStorageValue(pid, SBW_INEVENT, 1) doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO) doPlayerSetStorageValue(pid, SBW_SCORE, 0) doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.") end end doRemoveItem(getTileItemById(SBW_TP, 1387).uid) addEvent(endsnowball, SBW_DURATION*1000*60) doBroadcastMessage(SBW_MSGSTART) end local time = os.date("*t") local timeopen1 = math.ceil(SBW_TIMEWAIT / 4) local timeopen2 = math.ceil(SBW_TIMEWAIT / 2) if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then doBroadcastMessage(SBW_MSGWARNING) if SBW_USEWAIT then addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!") if (timeopen2 ~= timeopen1) then addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!") end addEvent(moveToEvent, SBW_TIMEWAIT*1000*60) doCreateTeleport(1387, SBW_TPGO, SBW_TP) else if SBW_TFS == "0.3" then doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880) else doSetItemActionId(doCreateItem(1387, SBW_TP), 2880) end if(SBW_DURATION > 0) then addEvent(endsnowball, SBW_DURATION*1000*60) end end end return true end Em data/movements abra o seu movements.xml e insira a seguinte linha: <movevent type="StepIn" actionid ="2880" event="script" value="snowballmovement.lua"/> Em data/movements/scripts crie um arquivo com o nome de snowballglobalmovement.lua e insira o seguinte conteúdo: function onStepIn(cid, item, pos) doTeleportThing(cid, SBW_TPGO) doBroadcastMessage("[SNOWBALL WAR] O " ..getCreatureName(cid).. " player esta participando do evento snowball.", MESSAGE_STATUS_CONSOLE_ORANGE) doPlayerSetStorageValue(cid, SBW_INEVENT, 1) doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO) doPlayerSetStorageValue(cid, SBW_SCORE, 0) end Já estamos quase terminando! Agora em data/lib crie um arquivo com o nome de SBW.lua com o seguinte conteúdo: -- This script is part of Snow Ball War Event Tibiaking Absolute -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // -- POSIÇÕES IMPORTANTES SBW_AREA = {{x = 1214, y = 1205, z = 7}, {x = 1251, y = 1242, z = 7}}-- AREA DO EVENTO | Canto superior esquerdo / inferior direito SBW_WAITROOM = {{x = 1229, y = 1220, z = 6}, {x = 1235, y = 1226, z = 6}} -- AREA DE ESPERA | Canto superior esquerdo / inferior direito SBW_TP = {x = 165, y = 45, z = 7} -- local onde teleport sera criado (entrada de jogadores) SBW_TPGO = {x = 1232, y = 1223, z = 6} -- local onde teleport vai levar (saida de jogadores) SBW_TPEND = {x = 155, y = 54, z = 7} -- local onde serao teleport ao final do evento SBW_GERADOR = {x = 1232, y = 1223, z = 7} -- local onde gerador vai ficar -- CONFIGURAÇÕES DO EVENTO SBW_DAYS = {1,2,3,4,5,6,7} -- dias de semana que vai abrir SBW_DURATION = 10 -- duração do evento em minutos SBW_POINTSKILL = 1 -- pontos de jogo por morte SBW_AMMOBUY = 20 -- quantia de munições compradas por cada ponto SBW_MINAMMO = 50 -- munição inicial dos jogadores SBW_TIMEWAIT = 3 -- tempo na sala de espera em minutos SBW_AMMOINFI = false SBW_LOSTSCORE = true SBW_RANDOMIZE = true SBW_RESETAMMO = true SBW_STARTAUTO = true SBW_USEWAIT = true --PREMIO DO EVENTO SBW_ADDREWARD = true SBW_REWARDS = { {6527,500}, {2345,1} } -- // Não mexa daqui para baixo SBW_TFS = "0.4" -- STORAGES SBW_EXAUSTHED = 2455 SBW_INEVENT = 2460 SBW_SCORE = 2465 SBW_AMMO = 2400 SBW_WALLSID = {5324,7003,7021,6712,7023,7002,6713,6714,6869,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6707,6708,6709,6710,6711,2698,2697,7020,6719,6720,6721,6722,6723,6724,6725,6726,6727,6761,6762,6768,6769,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4664,4665,4666,7008,7009,7010,7011,8239,7004,7005,7006,7007,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,7022} SBW_BALLSPEED = 150 SBW_SHOOTEXAUSTHED = 1000 SBW_SHOOTDIR = 0 SBW_STATUS = 'on' -- MENSAGENS SBW_MSGWARNING = "[SNOWBALL WAR] Abriu o teleport de ingresso para o evento, para participar se dirija ate o templo do servidor." SBW_MSGSTART = "[SNOWBALL WAR] O teleport foi removido e o evento foi iniciado, boa sorte a todos participantes." A frente das configuração solicitadas explica onde devem ser modificados. E por fim, vá até o seu banco de dados (phpmyadmin) e insira a seguinte query: CREATE TABLE IF NOT EXISTS `snowballwar` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `score` int(11) NOT NULL, `data` varchar(255) NOT NULL, `hora` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Ainda no phpmyadmin execute: ALTER TABLE `players` ADD `sbw_points` int(11); Importe o arquivo SNOWBALL.otbm em seu mapa! Imagem do mapa: Download do mapa: https://www.sendspace.com/file/mae37z Scan do mapa: https://www.virustotal.com/pt/file/94a507c71ef4cc241e415f2a8290441f7fa77809d804e24be18e9581a85c4740/analysis/1479161634/ É importante lembrar que peguei o script de um autor e realizei as modificações o tornando público para a comunidade exclusiva do TIBIAKING. Espero que façam um ótimo proveito. See you later.
  8. Olá a todos!! Printer decidiu lançar o servidor que esta hospedado há algum tempo, que se baseia em Teckman datapack , mas um monte de correções e alterações foi feita. Como Prometido servidor sendo atualizado frequentemente com varias correções e totalmente atualizado, aproveite um servidor dessa qualidade !!! Imagens Download & Atualizações do Servidor !!!: https://github.com/PrinterLUA/FORGOTTENSERVER-ORTS Scan: https://www.virustotal.com/sv/file/...d6565fc24ae5e4d494eadca4/analysis/1385914637/ (Usar para rodar o ): [10.31] The Forgotten Server 1.0 (#915) Download: https://github.com/otland/forgottenserver Download 32 e 64 The gorgotten Server 1.0 (#915): MEGA | SendSpace | Scan-MEGA: https://www.virustotal.com/sv/url/274b18e83a3b2b1db2350782fdb36e225aa3d656f350d26269233ac115c82f67/analysis/ Scan-SENDSPACE: https://www.virustotal.com/sv/url/86be830199f995576350318af3fecfa1334301e9c9de05798056df42152eb2fd/analysis/1393992362/ (10.37) The Forgotten Server 1.0 64 E 32 DOWNLOAD 64: http://sourceforge.net/projects/compiledtfs10/files/The%20Forgotten%20Server%20x64.7z/download SCAN:https://www.virustotal.com/en/file/...0d8c85a7557718523f49bee1/analysis/1395871095/ DOWNLOAD 32: http://sourceforge.net/projects/compiledtfs10/files/The%20Forgotten%20Server%20x32.7z/download SCAN:https://www.virustotal.com/en/file/...9cb1e34b31612508504c6a56/analysis/1395870574/ Websites Recomendados: 1: https://github.com/Znote/ZnoteAAC/archive/master.zip 2: https://github.com/gesior/Gesior2012/tree/TFS-1.0 Baixe: 32-bit C++ redistributable package: http://www.microsoft.com/en-us/download/details.aspx?id=5555 64-bit C++ redistributable package: http://www.microsoft.com/en-us/download/details.aspx?id=14632 Dlls: https://mega.co.nz/#!t0hmURgR!zCrGwU41CbVT0mUi4MZ0Xlqu56fWwayJaH6VVK9Kyus Creditos: Printer da (Otland) Se ficar alguem fora dos creditos ficarei feliz em colocalos. Bom vou deixar aqui pq muita gente vai precisar!!! Na quest inquisition quando um player de lvl menor faz ele ele ganha xp... isso não é um bug , é só você alterar nesse script!!! Você pode editar a exp em: actions/scripts/inquisition/inquisitionQuestRewards e encontrar a linha: Código: doPlayerAddExp (cid, 1000000, true, true) e editar o valor. 1000000 trocar pelo valor de xp ao seu gosto... lembrando que a xp por estage influencia na dobra da xp ganha!!! Download do meu mapa.. https://mega.co.nz/#!85RTCBBK!RF9qM7AamrDKxYI8EwICGAbukG-w-Rwm6vm_3Hh9hBI
  9. STORE IN GAME Todas as montarias

    Ivens Pontes reagiu a Jaurez por uma resposta no tópico

    1 ponto
    Trago pra vcs TODAS AS IMAGENS das mounts já no tamanho 64x64. Converti os arquivos do formato .GIF para .PNG, para colocarem no STORE IN GAME. Dentro do arquivo estão as imagens compactadas, e nele uma pasta com os nomes referentes ao server do Malucooo. Não sabe como nem onde colocar as fotos? Dê uma olhada no post do Enzo Caue : Tutorial Se gostar não esqueça de dar um REP. scan fotos mounts.rar Créditos: Cipsoft, Tibiawiki, Malucooo (pelo servidor).
  10. Old Tibia tirando limite de 255 efeitos

    braianlomas reagiu a BrunoMaia por uma resposta no tópico

    1 ponto
    Foi testado no TheForgottenServer 0.3.6 no Tibia 8.54 Como o client já está modificado, precisamos modificar a parte do servidor que envia os dados para o client. Vamos modificar dois métodos, addMagicEffect e sendMagicEffect. Entre na sua source 0.3.6 Encontre o arquivo protocolgamer.cpp Você vai encontrar esse código void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint8_t type) { msg->AddByte(0x83); msg->AddPosition(pos); msg->AddByte(type + 1); } Percebeu esse parametro uint8_t type? Vamos modificar para uint16_t type. Mas isso não vai adiantar nada se o msg->AddByte(type + 1) continuar desse jeito... Modifique ele para msg->AddU16(type + 1). O código modificado deve ficar desse jeito void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint16_t type) { msg->AddByte(0x83); msg->AddPosition(pos); msg->AddU16(type + 1); } Você já deve ter pegado a lógica... Onde tiver um método addMagicEffect com o parametro uint8_t type, tem que trocar por uint16_t type, o mesmo serve para sendMagicEffect. Mas como sei que tem pessoas que não gostam de trabalhar um pouco, vamos continuar com os arquivos para modificar. No mesmo arquivo procure por esse código void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type) { if(type > MAGIC_EFFECT_LAST || !canSee(pos)) return; NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); AddMagicEffect(msg, pos, type); } } Temos alguém conhecido nos parametros, o uint8_t type, já sabemos o que devemos fazer, modifique ele para uint16_t type, Código deve está desse jeito void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type) { if(type > MAGIC_EFFECT_LAST || !canSee(pos)) return; NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); AddMagicEffect(msg, pos, type); } } As alterações desse arquivos terminaram, salva as alterações. Vamos para outro arquivo, o protocolgamer.h Procure por esse código void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint8_t type); Novamente troque o uint8_t type por uint16_t type Código devera ficar desse jeito void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint16_t type); Procure por esse código void sendMagicEffect(const Position& pos, uint8_t type); Troque o uint8_t type por uint16_t type Código devera ficar desse jeito void sendMagicEffect(const Position& pos, uint16_t type); Salve as alterações e vamos para o outro arquivo, está cançado de modificar os códigos? é assim mesmo, se quer alguma coisa tem que se esforçar por ela. Vamos para o arquivo game.cpp Procure por esses códigos void Game::addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode /* = false */) { if(ghostMode) return; const SpectatorVec& list = getSpectators(pos); addMagicEffect(list, pos, effect); } void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, bool ghostMode/* = false*/) { if(ghostMode) return; Player* player = NULL; for(SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if((player = (*it)->getPlayer())) player->sendMagicEffect(pos, effect); } } Troque os parametros uint8_t effect por uint16_t effect Dexando-os assim void Game::addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode /* = false */) { if(ghostMode) return; const SpectatorVec& list = getSpectators(pos); addMagicEffect(list, pos, effect); } void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, bool ghostMode/* = false*/) { if(ghostMode) return; Player* player = NULL; for(SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if((player = (*it)->getPlayer())) player->sendMagicEffect(pos, effect); } } Salve as alterações e vamos para o outro arquivo, game.h Procure por esse códigos, está ficando repetitivo, mas é assim mesmo void addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode = false); void addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, bool ghostMode = false); Troque o uint8_t effect por uint16_t effect Código tem que ficar desse jeito void addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode = false); void addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, bool ghostMode = false); Essa foi rápido, salve as alterações e vamos para o outro arquivo, player.h Procure por esse código void sendMagicEffect(const Position& pos, uint8_t type) const Troque por esse código void sendMagicEffect(const Position& pos, uint16_t type) const Salve as alterações, esse foi o último arquivo Agora compile! Uma coisa que você deve saber, se você tentar entrar com o client que não esteja esperando valores do tipo uint16 e algum efeito for executado, vai da um erro no client, não da para jogar... Vamos baixar o client modificado. Download cliente com as seguintes configurações. Port: 7171 IP: 127.0.0.1 Version: 8.54 Clique aqui para baixar esse cliente Virus total desse client Download cliente com as seguintes configurações. Port: 7272 IP: 127.0.0.1 Version: 8.54 Clique aqui para baixar esse cliente Virus total desse client Modificações dos clientes foram feitos por mim. Reporte qualquer bug que ocorrer. Esse tutorial ensina como tirar o limite de 255 efeitos do tibia, se você não tiver mais de 255 efeitos colocados em sua source, então coloque para testar, não precisa colocar agora, e se você quiser pode colocar depois e já deixar seu client preparado para suporta mais de 255 efeitos. Tutorial para adicionar efeitos na sua source. Não deixe de agradecer...
  11. Pyrus OT, 1.5

    Shoupe reagiu a xandeloko por uma resposta no tópico

    1 ponto
    Pokemon Pyrus ot Antes de tudo por favor, leia abaixo: Leiam aqui plx Informações: Imagens: Creditos: Scan Extras: REP + Novidades da 1.5 Download: http://www.mediafire.com/download/d2kcwj61kwrt6gk/PYRUS_OT.rar UTILIZEI PARA EDITAR passa na page do projeto que to trabalhando pra dar aquela força https://www.facebook.com/PokemonImperiumPI/?fref=nf
  12. Tópico Removido.

    robson da silva reagiu a Jaooo por uma resposta no tópico

    1 ponto
    Tópico Removido.
  13. Como Proteger Suas Sprite

    The King of Madness reagiu a Kazuya9629 por uma resposta no tópico

    1 ponto
    Olhe agora
  14. (Resolvido)Compilador 8.54

    The King of Madness reagiu a Kazuya9629 por uma resposta no tópico

    1 ponto
  15. 1 ponto
    Mano.... mds.. Você está certo. O damage é 40, numa vocação normal. Sua vocação multiplica esse valor (40) por 4... 40*4=160 Então basta alterar o "magDamage" para 1.0 Você disse que ele está causando 160 de dano... Coincidência ?! Eu diria que não, mas não sei né..
  16. 1 ponto
    Eu testei essa formula no meu personagem com level 1 e ML level 0, ele causou 38-39 dmg... Ou seja, quase o esperado (acho q ainda tem algo errado ;v). Você testou essa spell usando um personagem com esse LvL e ML ?..
  17. Fica difícil de ajudar sem saber o que se passa, mas com toda certeza você está manipulando isso de forma incorreta. Realize os seguintes passos, apague tudo que você baixou sobre. Use os comandos a seguir de forma sequenciada e ordenada e tenha certeza de USAR todos os comandos que eu listar. # apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libpugixml-dev # cd /home/ # git clone https://github.com/mattyx14/otxserver.git # cd /home/otxserver/path_10_9/ # mkdir build && cd build # cmake .. # make
  18. Tutorial 2 em 1 - Magic e Shoot Effects

    Weddson reagiu a KotZletY por uma resposta no tópico

    1 ponto
    Eu já fiz o Tutorial do Shoot, só que eu não postei as prints e o Tópico kkkkk, meu Nto ficou on e então a correria ta em alta! Obrigado pelo comentário! xD
  19. Ajuda com 2 spells parecidas

    Hyakkimmaru reagiu a Skyforever por uma resposta no tópico

    1 ponto
    function onTargetTile(cid, position) position.stackpos = 255 local corpse = getThingFromPos(position) if(corpse.uid == 0 or not isCorpse(corpse.uid) or not isMoveable(corpse.uid) or getCreatureSkullType(cid) == SKULL_BLACK) then return false end if #getCreatureSummons(cid) < 2 then doRemoveItem(corpse.uid) doConvinceCreature(cid, doCreateMonster("Outcast", position, false)) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) else doPlayerSendCancel(cid, "Sorry, not possible.") end return true end local area, combat = createCombatArea(AREA_CIRCLE3X3), createCombatObject() setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  20. (Resolvido)Gesior BUG DE IMAGEM

    Thony D. Serv reagiu a lordzetros por uma resposta no tópico

    1 ponto
    Isso é a imagem default da guild logo, veja nos seus códigos se o redirecionamento das imagens estão corretas, após isso, confira se tem algum arquivo lá.
  21. Olá boa tarde, bote o IP que desejar no config.lua,depois para você entrar no server tente entrar com o IP 127.0.0.1 ou vai em iniciar - executar - cmd,dentro do cmd escreve ipconfig/all pegue os numeros do endereço de IP ou o gateway padrão ou o servidor DHCP ou do servidores DNS. OBS : não pode esquecer que o IP que você botou no config.lua,se for uma mascara exemplo : seuot.servegame.com,você tera que abrir o programa que usa para ativar está mascara de IP,no caso eu uso o NO-IP para isso.. Olá boa tarde, vai em database - accounts e procure sua conta clique em editar, group_id 3 tem que por o type 5 em accounts, pra ter acesso a todos os comandos alem do group_id 3 tem que por o type 5. Abraços
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo