Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/03/16 em %
-
Woox showoff
kaleudd e um outro reagiu a 90pedroh90 por um tópico no fórum
Bom, queria pedir que o ADM feche esse tópico. Obrigado!2 pontos -
Iai pessoa, blz? Eu Achei este fix na Otland, eu estava com o problema de o return false, não fazer nada, então agora está fazendo oque é esperado (retornar falso e tirar o target) oque preciso Resolvi compartilhar com vcs Obs: Este fix/patch é do tfs 0.4 Agora em Combat.cpp Procure por: ReturnValue Combat::canTargetCreature Agora nestá função procure por: if(deny) Substitua a Linha seguinte por isto: return RET_YOUARENOTTHEOWNER;//just any thing that isn't related Agora em game.cpp Procure por: Game::playerSetAttackedCreature Procure no code por isto: if(ret != RET_NOERROR) { player->sendCancelMessage(ret); player->sendCancelTarget(); player->setAttackedCreature(NULL); return false; } Substitua por: if(ret != RET_NOERROR) { if(ret != RET_YOUARENOTTHEOWNER) player->sendCancelMessage(ret); player->sendCancelTarget(); player->setAttackedCreature(NULL); return false; } Pronto, Código adicionado! Créditos a Doggynub Exemplo de uso: function onTarget(cid, target) if isMonster(target) then return false end return true end Se o target for um monstro... ele vai retornar falso e não vai atacar o monstro2 pontos
-
Monstros Passivos
VictorTasquin reagiu a Oneshot por um tópico no fórum
Monstros Passivos Muito bom dia, galera. Sabe, eu estava estudando como funcionam os servidores de pokémons, aqueles que ainda estão começando, embriões de bons servidores, não grandes servidores como o Poke Brasil Online (PokeBro). O problema de todos esses servidores, é que todos são dependentes de sistemas criados pelo brun123 (se não me engano) dentro das sources, ou seja, esses servidores são dependentes do executável compilado do PDA, entre outros. A pedido de um amigo, eu desenvolvi o sistema de monstros passivos. Sim aquele sistema que dá um upgrade na inteligência artificial das criaturas, onde algumas podem atacar o jogador assim que o ver, outras podem atacar apenas quando for atacadas. É um sistema muito básico mesmo, eu fiz com C++ e Lua por puro comodismo, e pretendo deixar mais avançado apenas com C++ e uso de flags nos XMLs. Se você quiser usar, sinta-se a vontade. No seu arquivo monster.h, procure por: bool isHostile() {return mType->isHostile;} Substitua por: bool isHostile() const { std::string value; if(!getStorage("hostile", value)) return mType->isHostile; return booleanString(value); } No seu arquivo monster.cpp, procure por: Monster::selectTarget Dentro da função, procure por: if(!isTarget(creature)) return false; Adicione abaixo: if(!isHostile()) return false; No diretório creaturescripts/scripts, crie um novo arquivo com nome passive.lua e adicione: PASSIVE_BEHAVIOR = {"Deer", "Rabbit"} -- Aqui ficam os monstros que não atacam, mesmo que atacados. function onCombat(cid, target) if isMonster(target) then if not isInArray(PASSIVE_BEHAVIOR, getCreatureName(target)) then doCreatureSetStorage(target, "hostile", 1) end doMonsterSetTarget(target, cid) end return true end No mesmo diretório, abra o arquivo login.lua e adicione: registerCreatureEvent(cid, "PassiveSystem") No diretório creaturescripts/, abra o arquivo creaturescripts.xml e adicione: <event type="combat" name="PassiveSystem" event="script" value="passive.lua"/> Agora é só compilar seu servidor, sem a pasta obj, ou seja, dê um Rebuild All e correr pro abraço com seu sistema de monstros passivos. Abraços, Oneshot.1 ponto -
[Fechado] Lista de servidores derivados (SERVIDORES NOVOS, PFV, MANDEM MP OU MANDEM O TÓPICO DO SERVIDOR)
Silveira Crtba reagiu a FlamesAdmin por um tópico no fórum
Bom dia, postarei uma Lista de Servidores Derivados encontrados aqui na comunidade xT. Não colocarei todos, e sim, aqueles que serão úteis para algumas pessoas. Então vamos lá! Derivado Poketibia Derivado Dragon Ball, Naruto, Biohazard Peço à quem postar servidor novo, para que me mande uma MP ou comentar até mesmo aqui no tópico para que eu possa fixar o tópico aqui. Obrigado!1 ponto -
[Tutorial] Como editar texto em .lua com acentos ortográficos.
Sertthoon reagiu a Lord Stryton por um tópico no fórum
Fala galera, sou o [ADM]Harlock do Pokémon Underwater, e hoje vim mostrar a vocês como por acentos quando estiver editando seus scripts. Por exemplo: Você vê; Você está vendo; Está carregando, Pokémon. 1- Primeiro baixe o Notepad ++ (Clique aqui) Escolha um Script para editar: local pokes = { ["Charmander"] = {level = 16, go = "Vai Charmander", back = "Volte Charmander."}, ["Charmeleon"] = {level = 35, go = "Vai Charmeleon", back = "Volte Demon."}, ["Charizard"] = {level = 75, go = "Vai Dragon Lord", back = "Volte Dragon Lord."}, ["Mewtwo"] = {level = 8, go = "Vai Mewtwo", back = "Volte Mewtwo"}, } local msgunica = false function onUse(cid, item, frompos, item2, topos) local maxh = tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]")) local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/")) if item.itemid == pokeout then if health ~= nil and health <= 0 then return doPlayerSendCancel(cid, "Seu pokémon está desmaiado.") end if #getCreatureSummons(cid) >= 1 then for _,z in pairs(getCreatureSummons(cid)) do if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then doTransformItem(item.uid, pokein) if msgunica then doCreatureSay(cid, "Volte, " .. getCreatureName(z), TALKTYPE_ORANGE_1) else doCreatureSay(cid, pokes[getCreatureName(z)].back, TALKTYPE_ORANGE_1) end doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = ["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]") setPlayerStorageValue(cid, 61204, 0) doSendMagicEffect(getCreaturePosition(z), 10) return doRemoveCreature(z) end end end elseif item.itemid == pokein then if not canSummon(cid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM) end if getPlayerStorageValue(cid, 63215) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar seu pokémon enquanto estiver surfando.") end if getPlayerStorageValue(cid, 62314) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar seu pokémon enquanto estiver voando.") end if getPlayerStorageValue(cid, 59987) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar seu pokémon enquanto estiver montando.") end for i,x in pairs(pokes) do if #getCreatureSummons(cid) >= 1 then return doPlayerSendCancel(cid, "Você já chamou um pokémon..") end if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then if getPlayerLevel(cid) >= x.level then pk = doSummonCreature(i, getThingPosition(cid)) doConvinceCreature(cid, pk) setCreatureMaxHealth(pk, tonumber(getItemAttribute(item.uid, "poke"):match("/(.+)]"))) doCreatureAddHealth(pk, maxh) doCreatureAddHealth(pk, health-maxh) doTransformItem(item.uid, pokeout) if msgunica then doCreatureSay(cid, "Vai, " .. i, TALKTYPE_ORANGE_1) else doCreatureSay(cid, x.go, TALKTYPE_ORANGE_1) end doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), "."))) doSendMagicEffect(getCreaturePosition(pk), 10) setPlayerStorageValue(cid, 61204, 1) registerCreatureEvent(pk, "DiePoke") registerCreatureEvent(cid, "PlayerPokeDeath") registerCreatureEvent(cid, "LogoutPoke") break else doPlayerSendCancel(cid, "Você precisa ser level "..x.level.." ou maior para usar este pokémon.") end end end end return TRUE end 2- Agora na parte superior do seu Notepad. "Formatar" e Escolha Codificação em ANSI Print: E pronto, edite com acentos Ortográficos e salve! [ADM] Harlock1 ponto -
muito bom,estavo com este problema com o 0.4,tavo tentando achar a solução a algum tempo,muito bom!1 ponto
-
Nada que uma boa revisada em todos os códigos tirando as gambiarras não resolva...1 ponto
-
[PEDIDO] Spell Dragon Flight (PDA)
Josegvb reagiu a FlamesAdmin por uma questão
elseif spell == "Dragon Flight" then sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebug(target), 30) doDanoInTargetWithDelay(cid, target, DRAGONDAMAGE, min, max, 143) --alterado v1.7 doSendMagicEffect(getThingPosWithDebug(cid), 211) local x = getClosestFreeTile(cid, getThingPosWithDebug(target)) doTeleportThing(cid, x, false) doFaceCreature(cid, getThingPosWithDebug(target)) doAreaCombatHealth(cid, DRAGONDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 143)1 ponto -
Aqui está essas que você citou. http://www.xtibia.com/forum/topic/237773-pxgas-novas-remakes/1 ponto
-
Mapa Rozinx 8.60
mexim79 reagiu a gleison157 por um tópico no fórum
Mapa do Rozinx 8.60 Templo 2° Andar Templo 3° Andar Templo Depot 2° Andar Depot 3° Andar Depot 4° Andar Depot NPC's 2° Andar NPC's 3°Andar NPC's Itens Vip 2° Andar Itens Vip 3° Andar Itens Vip Arena Créditos: 100% Há Mim, Editando com o mouse pelo Remere's Map Editor1 ponto -
Vai na config.lua e procura pela tag housesPerAccount = só colocar housesPerAccount = 11 ponto