Ir para conteúdo
Banner com Efeitos

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/05/14 em todas áreas

  1. 1 ponto
    Fala galera do TK, andei pegando um BAIAK base pra dar uma editada, trackeando alguns mapas e otimizando algumas coisas para disponibilizar um baiak "filé" para vocês do TK Sem mimimi, vamos ao que interessa e depois algumas imagens! O que temos neste lindo Baiak? New Templo bem baiak. Dodge System Run Event BP Event Guilds System Castle 24H Battlefield Event Blood Castle Event Firestorm Event Capture the Flags Event Items Donates para vender no site/jogo Items VIP a mostra no termplo 3 Áreas VIPS jogo e Donate Vários Teleports Novas Hunts Look Frags Sistema de Refinamento Criminal System Hit Rank Reset System Full Task Zombie Event [VIP] no nome ao adquirir VIP Distro 04 com Cast System (LUAN) Sistema de teleporte (!FLY) Level Skills System Ao cadastrar o player irá ganhar 2 dias VIPs na quest do templo! War System Várias quests Arena PVP Treiners modificados Roda em SQLITE E MYSQL! E muito mais, basta baixar para conferir! Vamos as imagens: Ao abrir o mapa: Ingame: Local onde o player começa: Templo Baiak Absolute: Teleports Free's Básicos: Área de Eventos e Summon por alavanca: BP Event Room: TPS VIP DONATE: TPS VIP +: TPS VIP ++: Pasta do servidor: Dowload/Scan Download do servidor completo: http://www.4shared.com/rar/e7YfCJ_Sce/Baiak_Absolute.html? Scan: https://www.virustotal.com/pt/url/6c6070c9c24da3b7719a92a1788bd2d8434d81c541b0038f68777621a121dccc/analysis/1407454456/ Desejo a todos um bom proveito e sucesso Créditos: Até a próxima Absolute.
  2. DEV C++ Compilando TFS no Windows

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

    1 ponto
    DEV C++, aprenda a compila uma source TFS! Downloads(Baixe de acordo as configurações do seu windows): DEV C++ CONFIGURADO PARA 32BITS DEV C++ CONFIGURADO PARA 64BITS REV 3884 TFS 0.4 Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos. ====================================== Abra o DEV C++: ====================================== ====================================== Abra a Source: ====================================== ====================================== Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev: ====================================== ============================================================= ====================================== Aguarde carregar todos os arquivos: ====================================== ====================================== Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK: ====================================== ====================================== Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo: ====================================== ====================================== Se der tudo certo em Log vai estar como mostra a imagem abaixo: ====================================== ====================================== Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou! ====================================== =========================================== Só isso galera tutorial rápido resumido e útil! Créditos Natanael Beckman! =========================================== Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar: Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone. Abra o DEV-C++, clique em File> New> Project: Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos: Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp. No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros: -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs: -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK. Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project: Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9: OpenSSL 0.9.8 1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa! Clica aqui \/
  3. {Tutorial} NPC'S

    Skulldrich reagiu a xFatality por uma resposta no tópico

    1 ponto
    Tutorial de NPCS Esse tutorial irá servir para quem gostar de fazer certo NPCs mais complexos com storages, varias missões e tudo mais. Usando como base o Jiddo system apenas para comprar e vender itens, pois não gosto de usar sistemas que facilitam Pois não criam scripters e sim preguiçosos, ainda mais quando o sistema é abandonado ai você se lasca O npc é dividido em duas partes : - Arquivo XML : Responsavel pelo visual e algumas propriedades dele (pelo jiddo system) - Arquivo Lua : Responvasel pelas falas e vendas (Lua puro) Visual do Npc Bem primeiro vamos explicar o visual de um npc, <npc name="Bonifacius" script="data/npc/scripts/default.lua" walkinterval="25" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="128" head="97" body="100" legs="115" feet="114" corpse="2212"/> </npc> Explicando parte a parte Name : Nome dele que aparecerá para todos. script : Arquivo lua do script dele walkinterval : De quanto em quanto milessegundos ele irá caminhar. floorchange : Se ele irá subir escadas ou cair em buracos. access : O valor de acesso dele, caso ele tenha um acesso 5 poderá usar todo os comandos de GODS. level,maglevel : É tosco, você pode fazer ele soltar magias (nunca tentei) e no caso isso contaria. Health Now : Sangue que terá max : Maximo de health (ja fizeram npc com life media) look type : Tipo de roupa dele, Caso queira ele como objeto use look typeex. head,body,legs,feet : Cor da cabeça,corpo,calça e pé do npc. corpse : Corpo caso ele morra (LOL não dá...) Esse é a base do arquivo xml do npc. Caso você queirá enfiar tosquisses pelo Jiddo System fica mais ou menos assim: <?xml version="1.0" encoding="UTF-8"?> <npc name="Bonifacius" script="data/npc/scripts/default.lua" walkinterval="25" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="128" head="97" body="100" legs="115" feet="114" corpse="2212"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="banana,2676,2;grapes,2681,3;melon,2682,8;orange,2675,5;pumpkin,2683,10;chees e,2696,5;egg,2695,2;cookie,2678,2;meat,2266,5"/> <parameter key="message_greet" value="What you doing soldier ? Take your weapon and go war!"/> <parameter key="message_walkaway" value="Hey Hey, where you go ?"/> <parameter key="message_farewell" value="Bye bye brave soldier. Remember, peoples without head, don't transform in undeads."/> <parameter key="message_alreadyfocused" value="You are drunked ? You talk really talk to me ?"/> </parameters> </npc> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_buyable" value="banana,2676,2;grapes,2681,3;melon,2682,8;orange,2675,5;pumpkin,2683,10;chees e,2696,5;egg,2695,2;cookie,2678,2;meat,2266,5"/> <parameter key="message_greet" value="What you doing soldier ? Take your weapon and go war!"/> <parameter key="message_walkaway" value="Hey Hey, where you go ?"/> <parameter key="message_farewell" value="Bye bye brave soldier. Remember, peoples without head, don't transform in undeads."/> <parameter key="message_alreadyfocused" value="You are drunked ? You talk really talk to me ?"/> </parameters> Esse é um exemplo basico de npc vendedor, que não faz muita coisa. module_shop : Quer dizer que ao falar trade ele irá abrir a janela tosca de venda de itens. shop_buyable : Isso faz tudo que tiver ai ele vender sendo a sintaxe parameter key="shop_buyable" value="nome inutil (inutil mesmo não serve para nada),id do produto,preço; Podendo você adicionar milhares e milhares, unico porém de você adicionar pelo XML é que não há possibilidade de fazer a venda por backpack (pelo menos até a versão que testei) message_farewell Mensagem de despedida Essas message tem alguns tipos explicados abaixo : Tudo isso acima deverá estar depois de message_ e as mensagens em default você poderá encontrar em npc/lib/npcsystem/npchandler.lua Se você fazer asneira lá os npcs não funfam cuidado o0 Ainda há o npc de barco, muito simples : <parameter key="travel_destinations" value="desert,1594,835,5,180;edron,931,825,6,90;"/> Sintaxe value="nome da cidade ,coordenada x,coordenada y,coordenada z ,valor;" 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 npcHandler:addModule(FocusModule:new()) Ou seja npcs, que aquilo que mostrei no xml é suficiente você pode direcionar para o default.lua Eu disse que npcs feitos no XML, a opção de compra por backpack não é possivel Então para faze-la em um npc Lua ficará assim : 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 local shopModule = ShopModule:new() npcHandler:addModule(shopModule) shopModule:addBuyableItem({'health potion'}, 7618, 45, 1, 'health potion') shopModule:addBuyableItem({'mana potion'}, 7620, 50, 1, 'mana potion') shopModule:addBuyableItemContainer({'bp hp'}, 2000, 7618, 900, 1, 'backpack of health potions') shopModule:addBuyableItemContainer({'bp mp'}, 2001, 7620, 1000, 1, 'backpack of mana potions') npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Nesse exemplo o npc vende health potion,mana potion e bp dos respectivos. Sendo a sintaxe shopModule:addBuyableItem({'nome inutil'}, id preço, quantidade ou sub tipo, 'nome inutil') Esse nome só serve para você não se perder, pois ao dizer trade ele aparecerá o nome do item pelo items.xml e não o que voce falou Sintaxe da backpack shopModule:addBuyableItemContainer({'nome'}, id da backpack, id, preço, sub tipo ou quantidade (caso seja agrupavel), 'nome inutil') 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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'rainbow') or msgcontains (msg, 'perch') then if getPlayerStorageValue(cid,30013) == 8 then selfSay('Yeah. But peguins, stoled my last crate of this. Please go lair of this plague and take again my itens. You go ?', cid) talkState[talkUser] = 1 else selfSay('You are a lier. Leave here!', cid) end elseif msgcontains(msg, 'mission') then if doPlayerRemoveItem(cid,7707,1) == 1 then selfSay('Congratulations. Give this for Willard.', cid) setPlayerStorageValue(cid,30013,10) talkState[talkUser] = 0 else selfSay('You don\'t have nothing!', cid) end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Great. Later report me asking mission.', cid) setPlayerStorageValue(cid,30013,9) talkState[talkUser] = 0 else selfSay('You don\'t have nothing!', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Esse npc ai é um simples de quest, você pode se basear nele para seu primeiro npc Vamos explicar umas coisas importantissimas talkState = Isso ai é a genialidade, a cada passo você pode mandar o player para um estagio. Se você leu meus tutos percebeu que ele é um vetor, mais por que ? Porque, ao ser uma variavel ele é armazenada no servidor certo ? Então se não fosse um vetor, o npc falando com dois ao mesmo tempo poderia se confudir e ferrar tudo literalmente Se você dominar o talkState dominará 50% de npcs de missões Storages = Isso também é indispensavel nos npcs, é sempre bom reservar uns para cada missão Para se ela tiver varias etapas você não se confudir, Ou usar o mesmo value para poder aproveitar no questlog (explicado no tutorial SUper Quests) O npc acima ele é 4º npc da minha quest global do meu otserver de testes. Ignore os erros de Inglês. if msgcontains(msg, 'rainbow') or msgcontains (msg, 'perch') then if getPlayerStorageValue(cid,30013) == 8 then selfSay('Yeah. But peguins, stoled my last crate of this. Please go lair of this plague and take again my itens. You go ?', cid) talkState[talkUser] = 1 else selfSay('You are a lier. Leave here!', cid) end Aqui ao você falar rainbow ou perch ele começa a girar essa parte do script. Ou seja no caso eh msgcontains se você falar Ele irá entender normalmente, e rodará o script. Caso fosse msg ai sim teria quer ser certinho (até maiscula e miniscula acho que ele duvidaria) No caso ele checa o storage 30013 se tem o valor 8, caso tenha ele fala aquela frase enorme e muda seu talkstate para 1 Se não tiver o storage com valor 8, ele te ofende. Esse storage 8 é adicionado no npc anterior. Se você tiver tudo certo ele tem pergunto algo, porém isso só será checado no talkstate 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Great. Later report me asking {mission}.', cid) setPlayerStorageValue(cid,30013,9) talkState[talkUser] = 0 else selfSay('You don\'t have nothing!', cid) end Se você falar yes, ele manda você ir no penguim hell para você pegar os treco para ele. E te coloca o storage 30013 com valor 9. E veja que ele manda você falar mission quando completar Vamos supor (não supositorio), que você completou ela e falo mission para ele. O que iria checar ? elseif msgcontains(msg, 'mission') then if doPlayerRemoveItem(cid,7707,1) == 1 then selfSay('Congratulations. Give this for Willard.', cid) setPlayerStorageValue(cid,30013,10) talkState[talkUser] = 0 else selfSay('You don\'t have nothing!', cid) end Se você fala mission, ele automaticamente remoe o item 7707 (dado na quest) e parabeniza você. Dando o storage 30013 com valor 10 O valor necessario para o npc anterior voltar a falar com você. Caso você seja caloteiro ele já te desmente. Bem simples, não ? Claro que esse npc é minisculo. Porém ja da para seguir como base. Olhe a evolução dele. 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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'mission') then if getPlayerStorageValue(cid,2411) == -1 then selfSay('Entregue essa carta a minha irmã Clarice.', cid) setPlayerStorageValue(cid,2411,1) doPlayerAddItem(cid,8370,1) else selfSay('Eu ja te dei a carta, aguardo resposta', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Ai checamos se ele já fez a quest. No caso se tiver -1 (que nunca fez) ele poderá começa-la. E dará a carta ao player (item 8370 nem sei o que é) Ok. Essa parte ta montada, ele dá a carta. Situação : A NPC Clarice está cantarolando em sua casa, quando você chega com uma carta de seu irmão. Ela recebe de bom grado porém prescisa provar que recebeu. Porém seu jogador não sabe que existe storage value, então Você poderá enviar outra carta ou inventar que ela irá falar com ele. 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 talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'letter') then if getPlayerStorageValue(cid,2411) == 1 then selfSay('Ah você relmente tem a carta de meu amado irmão?', cid) talkState[talkUser] = 1 else selfSay('Ah seu fanfarao saia daqui', cid) end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid,8013,1) == 1 then setPlayerStorageValue(cid,2411,2) selfSay('Obrigada. Agora eu irei falar com ele sobre o assunto', cid) talkState[talkUser] = 0 else selfSay('Você não tem a carta dele', cid) end else selfSay('Então porque veio aqui ?', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Veja que ela é a prova de erros. Primeiro ao falar letter ela checa se você tem o storage com valor 1 (Ou seja, se você falo com ele) Se não falou ela já te manda pescar, se houver, ela já mete pergunta se você tem a carta Caso não já te manda pescar Caso sim ela tenta pergunta se voce tem a carta Caso diga não ela te manda pescar também, Caso fale sim ela tenta tirar sua carta, caso você tenha ela te agradece e coloca o storage com valor 2 Caso não tenha ela diz que você não tem a carta Vamos suport, que você aceitou e entregou a carta tudo certinho. Você deve voltar ao Valdemar para ele te dar algo não ? Situação : Você ja deu uma de carteiro e agora quer receber sua recompensa, então ao Oscar, Porém ele não é trouxa E como ele sabe se você ja fez tudo ? Uma dica começa com S e termina com orage... Vejam que eu usei a mesma palavra missão e adicionei um else. Se ele tiver o storage com valor 2 e falar missão, obviamente ele fez tudo e como é a ultima missão Não necessita fazer perguntas retoricas (sem resposta), então ele já da sua recompensa e ja fecha seu storage com 3. 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 npcHandler:addModule(FocusModule:new()) Se você observar ele tem 4 funções ai que nem foram usadas.[/left] onCreatureAppear(cid) : Ela faz uma ação quando o player entrar em seu raio de ação onCreatureDisappear(cid) : Ela faz uma ação quando o player sai do seu raio de ação. onCreaturesay(cid) : Quando o player fala algo. onThink(cid) : Seria ao pensar ao achar, não tenho certeza do que faz, porém é uma função muito usada. onCreatureMove(creature, oldPos, newPos) : Quando a criatura se move de um lugar para outro. local target = 0 local prevTarget = 0 local maxChaseDistance = 20 local origPos = 0 local origDir = NORTH local lastAttack = 0 local followTimeout = 10 local function isSkulled(cid) local skullType = getPlayerSkullType(cid) if(skullType >= 3) then return true end return false end local function goToOrigPos() target = 0 lastAttack = 0 selfFollow(0) doTeleportThing(getNpcCid(), origPos) end local function updateTarget() if(isPlayer(target) == FALSE) then goToOrigPos() elseif(not isSkulled(target)) then target = 0 selfSay("Now, behave in the future.") end if(target == 0) then local list = getSpectators(getNpcPos(), 8, 8, false) for i=1, table.getn(list) do local _target = list[i] if(_target ~= 0) then if(isPlayer(_target) == TRUE and isSkulled(_target)) then if(selfFollow(_target)) then target = _target if(target ~= prevTarget) then selfSay("We do not tolerate people like you here!") end prevTarget = target break end end end end end end function onCreatureAppear(cid) if(cid == getNpcCid()) then --Wake up call origPos = getNpcPos() --origLook = getCreatureDir(cid) end end function onCreatureDisappear(cid) if(target == cid) then goToOrigPos() end end function onCreatureMove(creature, oldPos, newPos) -- end function onThink() updateTarget() if(target == 0) then return end local playerPos = getCreaturePosition(target) local myPos = getNpcPos() if(myPos.z ~= playerPos.z) then goToOrigPos() return end if(math.abs(myPos.x - origPos.x) > maxChaseDistance or math.abs(myPos.y - origPos.y) > maxChaseDistance) then selfSay("I'll catch you next time.") goToOrigPos() return end if(lastAttack == 0) then lastAttack = os.clock() end if(os.clock() - lastAttack > followTimeout) then --To prevent bugging the npc by going to a place where he can't reach selfSay("You got me this time, but just wait.") goToOrigPos() return end if( (math.abs(playerPos.x - myPos.x) <= 1) and (math.abs(playerPos.y - myPos.y) <= 1)) then doTargetCombatHealth(getNpcCid(), target, COMBAT_LIFEDRAIN, -200, -300, CONST_ME_BLOCKHIT) lastAttack = os.clock() end end Bem a função updateTarget faz ele apenas fixar a target (alvo) players com skull white ou red. Então deixe ela para outro dia. Vamos verificar a onThink function onThink() updateTarget() if(target == 0) then return end local playerPos = getCreaturePosition(target) local myPos = getNpcPos() if(myPos.z ~= playerPos.z) then goToOrigPos() return end if(math.abs(myPos.x - origPos.x) > maxChaseDistance or math.abs(myPos.y - origPos.y) > maxChaseDistance) then selfSay("I'll catch you next time.") goToOrigPos() return end if(lastAttack == 0) then lastAttack = os.clock() end if(os.clock() - lastAttack > followTimeout) then --To prevent bugging the npc by going to a place where he can't reach selfSay("You got me this time, but just wait.") goToOrigPos() return end if( (math.abs(playerPos.x - myPos.x) <= 1) and (math.abs(playerPos.y - myPos.y) <= 1)) then doTargetCombatHealth(getNpcCid(), target, COMBAT_LIFEDRAIN, -200, -300, CONST_ME_BLOCKHIT) lastAttack = os.clock() end Explicando cada if. - Primeiro ele checa se ele tem target, se não tiver recomeça o ontarget - Segundo se ele verifica se o player está no mesmo andar que ele (coordenada z) se não tiver volta pro começo - Terceiro ele verifica se o player está muito longe (distancia maxima especificada acima), caso esteja ele fala mais ou menos "te pego na proxima" e volta pro seu respawn. - Quarto Ele muda seu ultima attack para o tempo atual do servidor - Quinto Ele verifica se ja passou o "tempo de descanso dele) - Se o tiver na posição certa de ataque, ele mete o sabugo no player espacando ele. Até o player morrer ou fugir. Entederam a logica ? Não !? Tudo bem. Vai treinando... Sinceramente esse npc é o mais complexo que ja vi. Eu entendi ele, porém não tenho animo de refaze-lo xD É Isso. Creditos : Tibiaa4e ( 99%) (Por Fazer). xFatality ( 1% ) (Por trazer ao TK). Obrigado, Abraços. Da para você fazer tudo do LUA no XML, porém eu acho estranho e apenas frescura do Jiddo e dos Developers do TFS (não sei developer em Português) Caso seja curioso olhe nos arquivos bankmax.xml, merchant.xml e postman.xml que estão em npc/lib Bem a parte XML já acabo, ou seja, ela é muito simples. NPCS EM LUA Aqui é a parte legal do npc na qual até certos scripters novos fazem coisas desnecessarias ou que pioram... A base do arquivo usando Jiddo System é Ai sempre virá uma bp cheia dos item especificado. Caso não saiba ao clicar com o direito no TRADE e usar buy with backpack virá com isso ai Essa é a parte facil até agora tentarei pensar aqui 25 minutos um jeito de explicar muita coisa xD NPCS de Missões Bem aqui ensinarei a fazer npcs de missões, isso mesmo até mesmo aqueles de post office, paradox (que eu até ja fiz) Como sempre ensinarei a logica, ou seja, darei conhecimento não ideias Assim já para ter uma ideia de um npc maior... É só seguir essa base... Vamos criar um passo a passo para que não compreendeu. NPCs tutoriais Situação : O npc Valdemar quer que você entregue uma carta a irmã dele chamada Clarice. Pense. Ele irá dar uma carta, e algo que controle se você ja recebeu a carta. Porque se você deu calote uma vez Que não se repita, ou seja, um storage value. Que será o 2411 (bem masculo) Caso você não tenha storage -1 e nem 2 só pode ser 1 (no caso dessa quest) então ele manda você termina o serviço PELO AMOR DE DEUS, SEMPRE ESTRUTURE SEU SCRIPT, SE NÃO VOCÊ IRÁ SE CONFUDIR COM ESSE SHOW DE ELSE E IF. Isso é a vantagem de se usar o Jiddo System, pois diminuiu a confusão. Porém como ja disse, é coisa de preguiçoso Mais cada um com o seu né... Aqui acaba o npc de missões. Eu expliquei apenas a parte dos ifs e elseifs. Isso é simples, agora depende de sua capacidade e criatividade. Melhor maneira de aperfeiçoar ? fazendo varios!!! Eu odeio npcs, quase morri de raiva de ter que fazer esses (serio ) Espero que aproveitem xD. Funções de NPcs Se você leu esse tuto até aqui, é porque não entendeu nada, ou seu interesso muito, por npcs. Lembra dos npc base ?. Pelo que você ja perceberam eu odeio npcs, então não usei muitas dessas funções. No tfs tem o npc cityguard que ataca todos os red skull que aparecem em seu raio. Vamos estuda-lo e aprender juntos!!! function onCreatureAppear(cid) if(cid == getNpcCid()) then --Wake up call origPos = getNpcPos() --origLook = getCreatureDir(cid) end end Quando a criatura aparece ele chama a função getNpcCid que checa o player que o npc está focado. Ai a variavel origPos vira a coordenada que ele está no momento. function onCreatureDisappear(cid) if(target == cid) then goToOrigPos() end end Quando o player sai da tela, ele verifica se o target (player que ele está focado também!?) é um player Se for ele volta para a posição anterior local function isSkulled(cid) local skullType = getPlayerSkullType(cid) if(skullType >= 3) then return true end return false end Essa função seria a base do npc, ele segue apenas players com skull. Poderiamos mudar essa função para ele seguir apenas player druids ? Claro!!! Como é um tutorial mudar o nome da função iriamos que remodelar todo o script (enche o saco) vamos apenas mudar dentro da função local function isSkulled(cid) local vocType = getPlayerVocation(cid) if(vocType== 2) or (vocType == 6) then return true end return false end Mudando só isso os druid iriam sofrer na mão desses npcs xD Da para fazer ele atacar apenas monstros ? (acho que sim) local function isSkulled(cid) local idType = isPlayer(cid) if (idType ~= 1) then return true end return false end No caso se for diferente de 1 ele arrebenta de magia. Teste essas modificações. Porém a ideia base é entender as funções e não só modifica-las. Pelo contrato da SVN tudo que você faz a partir dela é conteúdo livre e de total modificação. Porém tenha bom senso que não é facil fazer scripts assim. Então sempre mantenham os creditos, principalmente Se você modificou
  4. 1 ponto
    Fala TibiaKG's!! Essa é a Atualização V4.0 Do WebSite OTPokemon Espero Que Curtam As Novidades EDIÇÃO *Adicionado Poke Of Day (Editavel Na index.tpl Do Template) *Adicionado Facebook News (Editavel Na index.tpl Do Template) *Shop e Doação ( Disponiveis ) *Nova Template *Atualizado Style.css *Deixei Apenas Um Mundo (BLUE) Disponivel Porque Muitos Estavam Com Dificuldades Para Tirar Os Outros *Sistema De Tradução Dentre Outras... PRINT DOWNLOAD MediaFire ATENÇÃO:senha para descompactar (otpokemon!) Sem Parenteses. SCAN CRÉDITOS Kranzix (Edição Geral) ModenAcc (Base) --------------------------------------------------------------------------------------------------------------------------- REP + SÃO BEM-VINDOS!!
  5. 1 ponto
    Bom, eu passei por um problema quando estava testando o Gesior no meu OTServer: mesmo com o server online e portas liberadas o site continuava mostrando como offline. Eu vi que algumas pessoas sugeriram trocar no arquivo layout.php isto: if($config['status']['serverStatus_online'] == 1) por isto: if($config['status']['serverStatus_online'] >= 0) mas eu vi que estava errado, pois ele iria mostrar o server como online mesmo que não estivesse. Então eu andei olhando os códigos, mexendo nos arquivos e acabei achando o erro. No arquivo load.compat.php, dentro da pasta system, na linha #254 (pelo menos aqui) eu encontrei o seguinte código: $statusInfo = new ServerStatus($config['server']['ip'], $config['server']['statusPort'], 1); onde está escrito 'statusPort' eu percebi que no config.lua não tinha isto, pois lá estava 'statusProtocolPort'. Então basta trocar esta linha por: $statusInfo = new ServerStatus($config['server']['ip'], $config['server']['statusProtocolPort'], 1); Espero ter ajudado!
  6. Criando Quest pelo Rme 2.1

    DarkRed reagiu a Leonardo Simonetto por uma resposta no tópico

    1 ponto
    °Como Fazer Quest° Olá Pessoal do TibiaKing, Hoje Irei Encinar a Criar Quest Pelo Rme. Antes Disso Leia: Eu sei que existe varios tutoriais,video-aulas,etc... Estou Fazendo Por Minha Vontade o Tutorial ;P Comentem se Tiverem Duvidas ou Sugestões. Tutorial é Composto Por Imagens para Facilitar... ​ Vamos ao Que Interessa! 1° Explicação: Após ter feito a Quest Inteira finalize ela com seus Baús, ou Crie um Lugar para First Items. (no meu caso) 2° Explicação: Para Achar o Baú Siga a Imagem. 3° Explicação: Para achar o Baú Siga a Imagem. 4° Explicação: Clique sobre o Baú e Coloque onde Quiser. 5° Explicação: Em Action ID: 2000 ---- Unique ID: de 1 a 599. Porque de 1 a 5999? Porque o Server Possui um Numero de Unique ID: Que significa Unico, os Numeros não podem se repetir. Apenas os Actons ID, podem se repetir. 6° Explicação: Depois de Colocar os ID's Clique Sobre o Quadrado Preto onde diz: Contents e Digite o ID ou Nome do item a ser ganho na quest. 7° Explicação: (Pausa para o lanche,cansei de fazer aqui...) Depois de escolher o item e dar Ok. Ficará assim a Imagem, (no lugar do Crystal Coin ficará seu item que você escolheu). 8° Explicação: Ali em Count: Coloque Quantidade que o Player Irá Ganhar. No meu caso eu coloquei Crystal Coin e ali em Count 3, ou seja o player irá ganhar 3 Crystal... Feito Tudo Isso, de Ok em tudo,Salve (CTRL+S) e Reinicie/Inicie seu Server. Atenção: O ADM não consegue abrir as quests, por isso Pegue um Player para testar de preferencia um Maker... Creditos: Leonardo Simonetto Gostou? #Rep_+
  7. Naruto Sprites

    MinatoTKz reagiu a kbelin por uma resposta no tópico

    1 ponto
    Venho por meio deste, disponibilizar alguns sprites de Naruto que consegui, façam bom proveito. Alguns Prints: Download & Scan: Download Scan Sirvam-se P.S: com o tempo boto mais prints, e melhoro os atuais.
  8. 1 ponto
    PokeZot Olá Galerinha, alguns devem me conheçer, sou o ADM Wolf, criador do "PokeZot".. Hoje venho apresentar a vocês tudo que o servidor tem de bom..Vamos Começar ~~Versão 1.0 PokeZot 1.0 OBS: Desculpe pelo tamanho excessivo do servidor, minhas ferramentas que uso no servidor foram junto ai ficou muito pesado. @Atualizado 16/08 Abaixo disponibilizo a vocês o Servidor PokeZot 2.0, atualização do 1.0, onde ocorreu varias mudanças, e foi um ótimo trabalho na minha opinião • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. Informações Edições Erros Prints Downloads Créditos Então, é isso.. Espero que gostem e aproveitem bastante. E se Gostou, por favor Deixe um "Gostei" aqui que me Ajuda Muito Até a Próxima Galera
  9. 1 ponto
    Bom para quem não sabe como funciona o script,é uma marcação que fica no minimap(in-game) que ao deixar o ponteiro do mouse em cima aparece uma descrição,pode ser mudado tanto a descrição quanto o icone que aparece no minimap. • Adicionando o script • Em "data/creaturescripts/creaturescripts.xml" adicione está tag : <event type="think" name="IconMap" event="script" value="iconmap.lua"/> Em "data/creaturescripts/scripts" crie um arquivo lua chamado "iconmap" e cole isso dentro : local config = { storage = 030220122041, version = 1, marks = { {mark = 5, pos = {x = 1095, y = 1062, z = 7}, desc = "Temple."}, {mark = 4, pos = {x = 895, y = 996, z = 7}, desc = "Depot."} } } local f_addMark = doPlayerAddMapMark if(not f_addMark) then f_addMark = doAddMapMark end function onThink(cid, interval) if(isPlayer(cid) ~= TRUE or getPlayerStorageValue(cid, config.storage) == config.version) then return end for _, m in pairs(config.marks) do f_addMark(cid, m.pos, m.mark, m.desc ~= nil and m.desc or "") end setPlayerStorageValue(cid, config.storage, config.version) return TRUE end Em "data/creaturescripts/scripts/login.lua" adicione está tag no fim do script : registerCreatureEvent(cid, "IconMap") Caso use TFS 1.0 use este register no login.lua : player:registerEvent(cid, "IconMap") Creditos : Comedinhas. - ViitinG pelo tutorial. • Configurando • • Icones •
  10. Nto By Madara Rinnegan

    DarkUchiwa reagiu a Yugami por uma resposta no tópico

    1 ponto
    Bom galera eu passei quase 2 anos construindo o mapa,claro q por eu construi ele por 2 anos... ele n vai ta sem Bugs,Erros,... sempre tem né,então o meu mapa n tem tanto bugs só augums simples que eu tenho priguiça de arruma(OBS:Sou sinsero estou falando que existe bugs como,npcs q vende augo ou coisa do tipo,não é coisa grave q fais ot cai,ot fica travando...),bom eu estava empenhado a cria 1 dos melhores mapa mais meu animo caiu e agora to sem animo pra continua esse projeto,então eu estou postando na TK que é onde eu mais peguei scripts para ajuda a cria ot. Download Mapa --> http://www.mediafire.com/file/htx388casbstljd/Naruto_B%2526W_Servidor.rar/file Client --> http://www.mediafire.com/download/0e51rk70c4d0dek/Naruto_B&W.rar << Podem Usa Esse Client Para Entra No Ot
  11. [Tutorial] Como trocar o ip do OT CLIENT

    baraonareba reagiu a Waldragon por uma resposta no tópico

    1 ponto
    Fala ae galerinha na paz? Espero que sim .. Vejo que muitas pessoas tem duvidas De como trocar o ip do OT CLIENT , então estou trazendo esse tutorial para vocês.. Passo a passo... 1° Primeiramente abra a pasta do seu servidor e click em Config.lua . 2° Depois aperte ctrl+F e localize a palavra ip . 3° Aperte Enter umas 5 vezes, em seguida vai localizar ip = "aqui vai esta algum IP" Ai e só substitui o IP que estava em " " pelo seu IP... Agora a parte do OT CLIENT 1° Abra a pasta do seu Ot Client , vá em modules/client_entergame. 2° Agora abra o arquivo entergame.lua . Em seguida aperte ctrl+F e escreva em localizar 7171 . 3° Agora aperte duas vezes Enter que vai localizar essa frase... EnterGame.setUniqueServer('Aqui vai esta algum IP', 7171, 854, 270, 210) Ai e só você trocar esse IP que estava ali pelo IP que você colocou no config.lua.. Espero ter ajudado ....
  12. ERRO NA COMPRA

    Roger Martins reagiu a D i M i T r E s C u por uma resposta no tópico

    1 ponto
    Galera está acontecendo um erro que dava antes mas tinha resolvido porem,eu perdi meu site porque formatei então fiz outro Só que quero resolver o mesmo erro que dava antes que é esse abaixo: o Shop entra normalmente só que na hora de comprar algum produto Não vai para o local da transferencia eu aperto Em (Buy Product) e é redirecionado para a atual pagina. Obs: eu sabia resolver só que pela perda do outro com anotações não sei mais , peço a ajuda de alguém que conheça esse erro e saiba resolver. Att: EU Aguardando....
  13. PDA By: [GOD Anna]

    Wend II reagiu a Wend por uma resposta no tópico

    1 ponto
    na pasta data\lib abra o arquivo pokemon moves.lua e procure pelo nome da spell que você que aumenta o dano e altere (-- sobre o RME, eu usei o remeres sem está extendido só que usei o client que está disponibilizado na pasta do server, ele não está extendido
  14. Algem ajuda a criar server com site 10x

    sheen1 reagiu a Cat por uma resposta no tópico

    1 ponto
    O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Aprendizagem → Começando seu Servidor" Para: "OTServ → Suporte OTServ → Suporte de OTServ Geral"
  15. Algem ajuda a criar server com site 10x

    sheen1 reagiu a PriisioneR por uma resposta no tópico

    1 ponto
    Caso ele não ache a database. e algumas Databases são bem incompletas amigos
  16. Algem ajuda a criar server com site 10x

    sheen1 reagiu a PriisioneR por uma resposta no tópico

    1 ponto
    Não somente o v2
  17. Algem ajuda a criar server com site 10x

    sheen1 reagiu a PriisioneR por uma resposta no tópico

    1 ponto
    Então amigo. Não vou poder ajudar pelo skype pois só ajudo em fórum. para começar você precisa de um WebSite recomendo Gesior 1.0 Vamos Precisar de WebSite Xampp Servidor Database Vps ou seu Computador WebSite : http://www.tibiaking.com/forum/topic/36413-2015-gesior-2012-10-v2-atualizado/ Xampp 1.7.3 http://www.4shared.com/file/HdHmCLeu/xampp-win32-173.htm?locale=pt-BR Servidor: (Supondo que quera um Full Global ) http://www.tibiaking.com/forum/topic/43121-1051-global-map-completo-melhor-da-atualidade-zombie-event/ Database http://www.tibiaking.com/forum/topic/43121-1051-global-map-completo-melhor-da-atualidade-zombie-event/ Para criar seu servidor temos infinitos tutoriais em nosso fórum basta dar uma pesquisada, espero que tenha ajudado
  18. (Resolvido)[DÚVIDA] Erro Portraits

    MagmaRoox reagiu a EduardMartins por uma resposta no tópico

    1 ponto
    Fredson Para poder criar o pokemon no /cb Primeiro você tem que ir em data/lib/configuration.lua Exemplo.. Add Atack's Copiar e Colar e Depois Só Modificar onde esta Mega Charizard coloque Mega Blaziken. Depois mais a baixo esta a força que vai ter seu pokemon. Só modificar e colocar o nome do Mega Blaziken. Mais em baixo e onde você coloca a portait do seu pokemon. Coloque a foto que quiser. Agora vai mais em baixo ainda Está a pokedex do pokemon. Só Modifique o nome. no meu caso eu coloquei uma Storage que não tinha em nenhum pokemon. Agora Por Ultimo. Modifique o nome. e onde esta 1006 coloque a Storage que Usou no newpokedex. Seu Pokemon Já Esta Adicionado no servidor. Só Iniciar seu cliente e usar /cb...
  19. (Resolvido)[Duvida] Sobre Storage

    EduardMartins reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Storage é um numero que representa um espaço na memória que você guarda uma determinada informação.. como assim storage de um pokemon? Pra saber o id da portrait vc tem que usar o item editor, vou mover pro suporte de servidores derivados porque lá o pessoal vai saber te ajudar melhor. O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Suporte OTServ → Suporte de Servidores Derivados"
  20. (Pedido) Como subistituir sprite do cliente

    Erik Cazo reagiu a JujuLady por uma resposta no tópico

    1 ponto
    Como Adicionar, Substituir ou Exportar Sprites Iremos Precisar do Dat Editor: Download: Link Direto Scan: aqui Oque é o Dat Editor ? O dat editor é uma forma rápida, de trocar suas sprites, e editar as funções dos items. O dat editor que funciona nas seguintes versões, 8.54 e 8.60 Vamos Lá 01. Abra o dat editor. (Olhe o Print). 02. Clique em Open. (Olhe o Print). 03. Selecione o .dat e .spr do Cliente e a versão. Clique em Open. (Olhe o Print). 04. Clique em Import para adicionar novas Sprite. (Olhe o Print). 05. Clique em Export para Extrair Sprites. (Olhe o Print). Substituindo Sprites ou Items: 01. Selecione o Item e Clique em Import Item. Ctrl+I. (Olhe o Print). 02. Abrirá uma janela para selecionar o item.idc ou uma Sprite que uma imagem PNG. (Olhe o Print). 03. Pronto, Substituir o Item. 04. Agora Vamos Copilar ou Traduzindo: Salvar.(Siga os passos do Print) Observação Na Hora de Copilar ou Salvar, Poderá travar ou Não Responder. Espere um Pouco que Irá Copilar, é normal. Dependendo de quantos Sprites for importado, poderá demorar. .dat, .spr, .pic.: é de um Cliente Narutibia. http://www.4shared.c...Client_854.html Creditos: Storm Night ~ Se ajudei +Rep
  21. [NPC] Contador de histórias

    Bluetooth reagiu a Ragnar Lothbrook por uma resposta no tópico

    1 ponto
    Modifique a gosto: historias.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> Não testei, se der algum erro, poste, que lhe ajudarei.
  22. ERRO NA COMPRA

    D i M i T r E s C u reagiu a Roger Martins por uma resposta no tópico

    1 ponto
    Hm.
  23. [Ajuda] Teleportar o player free

    Klauguns reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    isso não é server save, é server maintenance ahaha pode ser também.. é uma ótima idéia alias
  24. (Resolvido)cidade

    Demon123 reagiu a ViitinG por uma resposta no tópico

    1 ponto
    Abra o mapa com o RME e aperte Ctrl + T.
  25. (Resolvido)[HELP] Summon

    helioojunioor reagiu a JujuLady por uma resposta no tópico

    1 ponto
    Simples. data>monster>local do monster Abra o arquivo do monster. - Coloque 0 no lugar do 1 Se não der certo,eu não sei oque pode ser :s Se der .. +Rep <3
  26. Python IPChanger

    Schiffert reagiu a Elwyn por uma resposta no tópico

    1 ponto
    Assim que esse IPChanger estiver pronto, totalmente funcional e com interface gráfica. Começarei a fazer uma portabilidade para Windows, em um repositório no github também para aceitar contribuições.
  27. (Resolvido)[AJUDA] ERRO GESIOR

    davidmr reagiu a Sociopata por uma resposta no tópico

    1 ponto
    mas amigo a database vc cria apos instalar o xammp, e antes de colocar o htdocs na pasta do xammp, sugiro q refaça o processo novamente se vc fez isso q eu falei
  28. (Resolvido)[AJUDA] ERRO GESIOR

    davidmr reagiu a PriisioneR por uma resposta no tópico

    1 ponto
    Se você esta usando TFS 1.0 use esse http://www.tibiaking.com/forum/topic/30053-2015-gesior-10-victorwebmaster/ é o mesmo só que modificado
  29. (Resolvido)[AJUDA] ERRO GESIOR

    davidmr reagiu a Sociopata por uma resposta no tópico

    1 ponto
    vc foi tentar ter acesso aeo phpmyadmin e deu isso?ou ao instalar o site?
  30. (Resolvido)Erro no gesior.

    lucao reagiu a Sociopata por uma resposta no tópico

    1 ponto
    alter table bans add column reason int(10) NOT NULL so executar
  31. [NARUTIBIA] Sprites

    JujuLady reagiu a Wiz Khalifa por uma resposta no tópico

    1 ponto
    Achei alguns tópicos onde se encontram Sprites de NTO http://www.tibiaking.com/forum/topic/37968-sprites-minato-nto-brasil/ http://www.tibiaking.com/forum/topic/13614-pack-200-sprites-de-tibia-pack-criado-por-eddyhavoc/
  32. (Resolvido)TEMPLE VOCATION

    D i M i T r E s C u reagiu a Cazuza por uma resposta no tópico

    1 ponto
    Ta olha só, vai ser assim: Ao criar o char seja por Account Managuer ou site. Ele vai nascer na cidade que tu definir (config.lua), e na proxima vez que ele morrer, já ira nascer na cidade random. Para isso vá em creaturescripts.xml ponha a tag: <event type="login" name="cidade" event="script" value="cidade.lua"/> Crie em scripts o arquivo cidade.lua e ponha: function onLogin(cid) if isPlayer(cid) then if getPlayerStorageValue(cid, 95645) == -1 then doPlayerSetTown(cid, math.random(16, 17)) -- cidades que ira ser random setPlayerStorageValue(cid, 95645, 1) doPlayerSendTextMessage(cid, 27, "Sua nova cidade agora e "..getTownName(getPlayerTown(cid))) end end return true end Está ai, testei e funfou.
  33. 1 ponto
    Creio que pra converter um mapa você precisa ir em File>Import>Import Map, o RME vai importar o mapa pra versão dele.
  34. Pokemon Com todos os lendarios e com 5 Geração

    DarkRed reagiu a tatooo por uma resposta no tópico

    1 ponto
    Amigo Esse Servidor Tem 40 Pokemons da 5° geraçao e Varios Lendarios Não São todos mais o Restante é só voce Adicionar no Cliente http://www.mediafire.com/?41tth1y28qw915h Se for Util Da um Rep+ aee
  35. alter table bans add column reason int(10) NOT NULL
  36. Modern AAC WebSite Poketibia 1.0

    victorjgt reagiu a Sociopata por uma resposta no tópico

    1 ponto
    ot ta on?config.lua configurada certa?no-ip aberto vai no phpmyadmin na conta q vc quer add como ADMIN procura em page_acess e deve ta 1 coloca 3, loga no site com a acc criada e la vai ter o painle do admin la cv faz oq vc quiser inclusive add news erto?
  37. Modern AAC WebSite Poketibia 1.0

    StrikersBR122 reagiu a nibelins por uma resposta no tópico

    1 ponto
    gabriel como o boxxer nao se pronuciou como foi ele que postou não vi ele ajudando você vou lhe responder não e bug o sistema do modern aac ele usa o sha1 e não plain a senha fica criptografada [por segurança] então aconselho você muda no config.lua do seu servidor que deve estar plain muda para sha1 para poder entrar no servidor normal com asenha criada no site
  38. Cade os scripters/programadores do forum?

    Cat reagiu a Fulano Siclano por uma resposta no tópico

    -1 pontos
    isso aqui tá rumo ao tibiaking
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo