
Tudo que L3K0T postou
-
Colocando Limite no CTRL- ZOOM MAPA
Bom galera como o própio titulo já diz... colocando limite no ctrl- no otclient 0.6.6 pra não ficar vendo todo o mapa. vá em modules\game_interface Ache: limitedZoom = false Altere para limitedZoom = true Ache gameMapPanel:setMaxZoomOut(513) altere para gameMapPanel:setMaxZoomOut(15) fácil né?? espero ter ajudado alguém
-
AUMENTAR CAMPO DE VISÃO OTCLIENT?
ja arrumei os código hehe obg mesmo assim... logo posto o tutorial pra ajudar os demais
-
AUMENTAR CAMPO DE VISÃO OTCLIENT?
tbm ja testei, porem já fiz as alterações que precisava e está incompleto esse ai
-
AUMENTANDO TELA DE VISÃO OTCLIENTE EM REV3884 8.60 0.4
REV3884 TFS 0.4 OTC 0.6.6 OBSERVAÇÃO: Bom galera hoje vim trazer um código de expansão de visão para o otclient alterado por mim, usado somente para rev3884 e então se você usa um tfs 0.3.6 ou tfs 1.0 não vai dar certo, *Esse código foi alterado por mim para ser usado apenas para rev3884, procolo 8.60 e TFS 0.4 que no caso não achei e resolvi compartilhar essas alterações. 1° TUTORIAL 1 SOURCE DO SEU SERVIDOR. Abra Protocollgame.cpp 1 Ache ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && //(y >= myPos.y - 6 + offsetz) && (y <= myPos.y + 7 + offsetz)); ALTERE PARA: ((x >= myPos.x - Map::maxClientViewportX + offsetz) && (x <= myPos.x + (Map::maxClientViewportX+1) + offsetz) && (y >= myPos.y - Map::maxClientViewportY + offsetz) && (y <= myPos.y + (Map::maxClientViewportY+1) + offsetz)); 2 Ache: GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg); ALTERE PARA: GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg); 3 Ache: if(oldPos.y > newPos.y) // north, for old x { msg->put<char>(0x65); GetMapDescription(oldPos.x - 8, newPos.y - 6, newPos.z, 18, 1, msg); } else if(oldPos.y < newPos.y) // south, for old x { msg->put<char>(0x67); GetMapDescription(oldPos.x - 8, newPos.y + 7, newPos.z, 18, 1, msg); } if(oldPos.x < newPos.x) // east, [with new y] { msg->put<char>(0x66); GetMapDescription(newPos.x + 9, newPos.y - 6, newPos.z, 1, 14, msg); } else if(oldPos.x > newPos.x) // west, [with new y] { msg->put<char>(0x68); GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } ALTERE PARA: if (oldPos.y > newPos.y) { // north, for old x msg->put<char>(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } else if (oldPos.y < newPos.y) { // south, for old x msg->put<char>(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y + (Map::maxClientViewportY+1), newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } if (oldPos.x < newPos.x) { // east, [with new y] msg->put<char>(0x66); GetMapDescription(newPos.x + (Map::maxClientViewportX+1), newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } else if (oldPos.x > newPos.x) { // west, [with new y] msg->put<char>(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } 4 ache GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 5, 18, 14, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 4, 18, 14, 4, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 3, 18, 14, 5, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 2, 18, 14, 6, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 1, 18, 14, 7, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 0, 18, 14, 8, skip); Altere para GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 5, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 4, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 4, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 5, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 6, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 7, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 0, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 8, skip); 5 ache GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.z - 3, 18, 14, 3, skip); ALTERE PARA GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip); 6 ACHE GetMapDescription(oldPos.x - 8, oldPos.y + 1 - 6, newPos.z, 1, 14, msg); ALTERE PARA GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); 7 ACHE GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); ALTERE PARA GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); 8 Ache GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 14, -1, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 1, 18, 14, -2, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); Altere para GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -1, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -2, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); 9 ache GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); Altere para GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); 10 ache GetMapDescription(oldPos.x + 9, oldPos.y - 1 - 6, newPos.z, 1, 14, msg); Altere para GetMapDescription(oldPos.x + Map::maxClientViewportX+1, oldPos.y - (Map::maxClientViewportY+1), newPos.z, 1, ((Map::maxClientViewportY+1)*2), msg); AGORA EM MAP.H ache static const int32_t maxViewportX = 11; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; altere para: static const int32_t maxViewportX = 18; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 18; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 14; static const int32_t maxClientViewportY = 12; Pronto agora é só compilar a source do seu servidor 8.60 rev3884 PARTE 2 OTCLIENT 0.6.6 abra o map.cpp da source do otclient ache void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } ALTERE PARA void Map::resetAwareRange() { AwareRange range; range.left = 14; //Change this to = maxClientViewportX range.top = 12; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } COMPILE A SOURCE DO OTCLIENT E PRONTO!!! ESPERO TER SANADO VÁRIAS DÚVIDAS DE AUMENTAR TELA DO OTCLIENT EM REV3884. CRÉDITOS: Pra mim pela alterações funcionais. e pelo Flatlander por disponibilizar para tfs 0.3.6 e 1.0 pois esse está alterado pra tfs 0.4
-
Executavel crashando
Os crash pode ser muitas coisas que não da pra lhe dizer mais podemos começar por ali no duplicados. as vezes ele não mostra por questão deles estarem itemid="5000-7015" aonde começa puxar os IDS 5000 Aonde termina o IDS 7015 o IF TÁ ALI MAIS NÃO TÁ DE ENFEITE RSRS AGORA SE FOSSE ; AI SERIA ITEM UNICOS REGISTRADOS NA XML (é só um exemplo da dor de cabeça hehe) <movevent type="StepIn" itemid="5000-7015" event="script" value=""/> 5000 5001 5002 até 7015 antes do 7015 vem o 7014 e assim via até chegar no 7013 no caso você vai ter que separar todos os ids para exemplos <movevent type="StepIn" itemid="5000" event="script" value=""/> <movevent type="StepIn" itemid="5001" event="script" value=""/> <movevent type="StepIn" itemid="5002" event="script" value=""/> <movevent type="StepIn" itemid="5003" event="script" value=""/> se você fizer dessa forma abaixo <movevent type="StepIn" itemid="5000;5001" event="script" value=""/> pode causar problemas no futuro. tente remover todos os ids duplicados e volte aqui até a gente ligar esse seu servidor
-
AUMENTAR CAMPO DE VISÃO OTCLIENT?
então já vi esse, porem vou ter que alterar ele todo, mais dps solto pra ajudar os demais Já no começo do código é assim na minha source x >= myPos.x e lá já tá x >= myPos.getX() vai da um trabalhão rsrs mais vai dar certo com certeza.
-
!status monstrando informações relevantes
function onSay(cid, words, param) local level = getPlayerLevel(cid) local vocation = getPlayerVocationName(cid) local health, maxhealth = getCreatureHealth(cid), getCreatureMaxHealth(cid) local mana, maxmana = getCreatureMana(cid), getCreatureMaxMana(cid) local fist, club, sword, axe = getPlayerSkillLevel(cid, 0), getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3) local distance, shield, fishing, magic = getPlayerSkillLevel(cid, 4), getPlayerSkillLevel(cid, 5), getPlayerSkillLevel(cid, 6), getPlayerMagLevel(cid) function getCritical(cid) crit = getPlayerStorageValue(cid, 48913) if crit < 0 then crit = 0 end return crit * 0.3 end function getResets(cid) resets = getPlayerStorageValue(cid, 378378) if resets < 0 then resets = 0 end return resets end function getItemAbsorve(itemuid) return getItemAttribute(itemuid, "absorbPercentAll") end function getItemMagicIncrease(itemuid) return getItemAttribute(itemuid, "increaseMagic") end local max = 50 local dodgePercent = math.floor(0) local all, increasemagic = 0, 0 for i = 1, 9 do if getPlayerSlotItem(cid, i).uid > 1 then function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") end function doPlayerAddDodgeItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(item, "dodgePercent", percent) end if getItemDodgePercent(getPlayerSlotItem(cid, i).uid) then dodgePercent = dodgePercent + getItemDodgePercent(getPlayerSlotItem(cid, i).uid) end if getItemAbsorve(getPlayerSlotItem(cid, i).uid) then all = all + getItemAbsorve(getPlayerSlotItem(cid, i).uid) end if getItemMagicIncrease(getPlayerSlotItem(cid, i).uid) then increasemagic = increasemagic + getItemMagicIncrease(getPlayerSlotItem(cid, i).uid) end end if dodgePercent >= max then dodgePercent = max end dodgeTotal = math.floor(dodgePercent*10)/10 local cap = getPlayerFreeCap(cid) local text = "Vocation: "..vocation.."\nLevel: ".. level .."\nHP: ".. health .."/".. maxhealth .."\nMP: ".. mana .."/".. maxmana .."\nReset(s): "..getResets(cid).."\nCapacity: ".. cap .."\n\nDodge Percent: ".. (dodgeTotal) .."%\nCritical: ".. getCritical(cid) .."%\nProtection: ".. all .."%\nMagic Increase: ".. increasemagic .."%\nMagic Level: ".. magic .."\n\nFist: ".. fist .."\nClub: ".. club .."\nSword: ".. sword .."\nAxe: ".. axe .."\nDistance: ".. distance .."\nShield: ".. shield .."\nFishing: ".. fishing .."" doShowTextDialog(cid, 5808, text) return true end end tente e espero ter ajudado
-
!status monstrando informações relevantes
qual a tag do xml que vc usa???
-
(Resolvido)[OFF] Script de ao matar player anunciar
tente usar a tag assim <event type="kill" name="anunciarmorte" script="anunciar_morte.lua"/>
-
AUMENTAR CAMPO DE VISÃO OTCLIENT?
Galera alguém ai sabe as alterações na source do otclient e otserv pra aumentar o campo de visão dos tiles para o player?? gostaria de aumentar pois mudei pro OTC ai estou meio que aprendendo vamos se dizer TFS 0.4 REV3884
-
DarkTheme e AutoComplete para Notepad++
eu sabia disso só n sabia fazer kkkk aleluia
-
Problema ao Compilar Source 8.60
me mande o arquivo const.cpp, enums.h e game.cpp pra eu dar uma olhada e ver se tem alguma anomalia.
-
Impossível tentar capturar pokémon
verifique o catch.lua do seu servidor , pode ser que a verificação não está deixando vc capturar, como diz a msg, vc n pode pegar esse pokemon.
-
[ERRO] 1146 - Modern AAC
só reinstalar o site que volta tudo normal, esse erro acontece quando vc deixa um site já instalado e tenta usar com outro nome no banco de dados.
-
(URGENTE) ESTÃO COMPRANDO ITEM NO SHOP SEM PAGAR
verifique se os pontos dele tá negativo tipo, exemplo "-1234234" sem aspas, pode ser isso, ao invez de 1234234, isso pode fazer que o shop possa comprar coisas infinitas. dando um f5 lá.
-
BUG COM REMERES
pode ser que seu cliente seja extendido, tente usar um RME 3.3 o item.otb em todas as pastas , assim poderes resolve teu problema, caso continue , verifique tuas sprites se estão configuradas corretamente.
-
Shop Bugado
importe as tabelas né que tá na pasta do shop escrito SHOP.SQL
-
[IMPORTANTE] nuker derrubando os servers por ai, use esse codigo para evitar ser nukado
já sabia desse bug, enfim foi apenas um erro de programação rs mais agradeço por compartilhar. REP+ OBS tfs mais avançada o erro já é concertado.
-
GRAMA - SPRITE - REPINTADA (VERDE)
link arrumado, desculpe pelo o transtorno!
- #mda2018 - Melhores do Ano no Tk (listão)
- Tibia 8.60 v2 Map Editor Release (Corrige erro: Could not locate Tibia.dat and/or Tibia.spr, please navigate to your Tibia 8.60 installation folder)
-
GRAMA - SPRITE - REPINTADA (VERDE)
"testei o link" se encontra normal! Verifique seu navegador ou tente baixar de outro. depois de importar a sprite pro cliente é só da um update no item.OTB do server usando um editor de item.otb muito obg
- Torneio System Completo 4 vezes ao dia + NPC + RANK apenas PARA SITE
-
Item que dá Bonus de Xp por um tempo
manda sua stages pra mim olhar ai fazer o sistema pra vc
-
Item que dá Bonus de Xp por um tempo
sua xp é por stages ou fixa?