Ir para conteúdo

Eskylo

Visconde
  • Total de itens

    477
  • Registro em

  • Última visita

  • Dias Ganhos

    5

Tudo que Eskylo postou

  1. Esse é o caminho, criar um script do tipo ondeath, as vezes já existe algum que vc pode utilizar ou criar do zero mesmo A primeira coisa que deve fazer é checar se o player morreu no fly/ride/surf SE SIM, aí aplicar o tratamento do BACK, para que a pokebola possa ser usada pra soltar o poke quando ele nascer de novo. Não tenho certeza se é só copiar/colar, as vezes precisa de uma pequena alteração. Se precisar vai postando os scripts que vamos tentando te ajudar
  2. Realmente é uma função que pode pesar se vc configurar um área muito grande. Acho que a tentativa mais fácil aqui é vc verificar se esse for for i = 0, 255 do é realmente necessário... as vezes os monstros ficam em um só stackpos, porque monstros não andam um sobre os outros, e player tbm não pode atravessar monstro, acho que só empilharia (usaria mais de um stack) se tivesse uma escada descendo nessa área, algo assim. Só não lembro pra te dizer em qual stackpos os monstros ficam por padrão. Se você souber, e não tiver escadas nessa área, sugiro com primeira tentativa, configurar o stackpos e tirar esse for. Como segunda tentativa, o ideal seria rever como surgem esses monstros que voce está removendo, se for spawn normal acho que não teria como, mas se esses monstros surgirem com uma alavanca daria pra salvar o ID deles e depois remover por ID, em vez de scanear o mapa atrás dele, mas aqui teria uma pouco mais de trabalho
  3. Faz um tempo que não mexo com poketibia, então não consigo te ajudar completamente, mas vou tentar te dar uma luz. Quando o player solta o poke, o sistema atualiza o status da pokebola, dizendo que agora o poke está fora. Quando o play chama o poke de volta, o sistema atualiza o status da pokebola, salvando que agora o poke está dentro. Pra usar surf/fly/ride o player solta o poke, e monta nele, ou seja, o sistema acha que o poke está fora da pokebola. Se ele morre, o sistema ainda acha que o poke está fora. É preciso fazer um tratamento no sistema dizendo que se morreu o poke volte pra dentro da pokebola. Como procuraria resolver isso: Criando um script de morte, quando o player morrer, verifica se ele estava em fly/surf/ride, SE estava, então volta o poke pra pokebola. Ou seja, criar um script de onDeath, e copiar parte do go/back, na verdade só o back, que é voltar pra pokebola.
  4. Eskylo

    DP em Rookgaard

    tenho quase certeza que nao da pra fazer com script, so mexendo nas sources
  5. o script funcionava antes? ou o erro da desde que vc instalou o script?
  6. Eskylo

    doaçao de umas sprites

    massa curti bastante
  7. queria ser oldschool parece descolado
  8. eu acho que é doPlayerLearnInstantSpell(cid, monster.name)
  9. no map do seu server tem um npc chamado Jeronimo e quando o server vai carregar o mapa ele não tá achando o arquivo do npc que deveria existir. soluções: - remova o npc do mapa ou encontre/crie o arquivo xml e coloque na pasta npcs
  10. Bom ver que a equipe é ativa e quer resolver os problemas
  11. Essas histórias são muito gostosas, pena que muito poucos players do jogo se interessam por elas.
  12. muito bom seu trabalho mais fotos please
  13. Que projeto lindo *-*, muito louco quando tem várias raças assim, alquimia, forja...
  14. O mapa está muito bonito, parabéns pela iniciativa também!
  15. script II local holes = {15469, 15460}function onUse(cid, item, fromPosition, itemEx, toPosition)if getPlayerStorageValue (cid, 54548) < 1 then ---- nova storage de aventureirodoPlayerSendCancel(cid, "Voce precisa ser Teacher!")return trueendif getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 orgetPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 or getPlayerStorageValue (cid, 98752) >= 1 then --alterado v1.9 return doPlayerSendCancel(cid, "impossivel fazer isso agora.")endif(isInArray (holes, itemEx.itemid)) then if not isCreature(itemEx.uid) then if not (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1) then toPos = getThingPosition(itemEx.uid) fromPos = getCreaturePosition(cid) if getDirectionTo(fromPos, toPos) == getCreatureLookDirection(cid) then --quantItem = math.random(1, ProfessionLib.quantMax) doCreatureSetNoMove(cid, true) local tmp = getCreatureOutfit(cid)if getPlayerSex(cid) == 1 thentmp.lookType = 2508elsetmp.lookType = 2509end doSetCreatureOutfit(cid, tmp, -1) setPlayerStorageValue(cid, 98752, 1) local newId = itemEx.itemid + 1-------------------------------------------------- function fim(cid,toPos) local rand = math.random(2, 6) doPlayerAddItem(cid, 15457, rand) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureSetNoMove(cid, false) setPlayerStorageValue(cid, 98752, -1) doTransformItem(getThingFromPos(toPos).uid, newId) doDecayItem(getThingFromPos(toPos).uid)end addEvent(fim, 8*1000,cid,toPos) -------------------------------------------------- else doPlayerSendCancel(cid, "Voce percisa ficar de frente para esse item!") end else doPlayerSendCancel(cid, "Voce so pode cavar de frente!") end else doPlayerSendCancel(cid, "Voce precisa ser proficional na area para fazer isso!") end else doPlayerSendCancel(cid, "isso nao e erva!") end return trueend
  16. tem que usar opcode pra mandar pro client os ids dos itens (client id) e as quantidades que vieram no loot ai com um modulo do otclient vc faz os itens aparecer na tela com background transparente eu nao sou muito bom com client, se nao eu faria o codigo, mas a logica é essa
  17. mas você sabe que esse script impede que a criatura tome dano né? na minha visao o bug está em como os monstros atacam os summons. porque os summons nao atacar os monstros tá dentro do esperado, o contrário que não tá
  18. removido, estou confuso se você quer adições no script que você tem ou apenas reparo
  19. $retorno_host = $host; // Local da base de dados MySql $retorno_database = $db; // Nome da base de dados MySql $retorno_usuario = $user; // Usuario com acesso a base de dados MySql $retorno_senha = $passwd; // Senha de acesso a base de dados MySql
  20. Tenta debugar o script pra tentar achar o erro, exemplo function onStatsChange(cid, attacker, type, combat, value) if isMonster(cid) then print('cid is monster') end if isMonster(attacker) then print('attacker is monster') end if isMonster(attacker) and isMonster(cid) then return false end return trueend observa o que aparece no distro quando um summon ataca um monstro e vice-versa, se não aparecer nada também é sinal de algo errado, talvez o erro até seja nas sources.
  21. function onKill(cid, target)local killer = Creature(cid)if not killer:isPlayer() then return trueendtarget = Monster(target) if (target ~= nil) then local mt = MonsterType(target:getName()) if mt:useRewardChest() then local loot = BossLoot:new(target) if loot then local corpse = Item(doCreateItem(MonsterType(target:getName()):getCorpseId(), 1, target:getPosition())) doDecayItem() target:setDropLoot(false) loot:updateDamage() loot:setRewards() loot:addRewards() corpse:setAttribute('aid', 21584) end end end return trueend Coloquei uma verificação na onkill, mas não tenho certeza se o problema está aqui mesmo. O script de 1 bag por boss deu certo?
  22. local bagId = 2000 -- coloque o id da bagfunction BossLoot:addRewards() if self.players and self.players[1] and self.players[1][3] then for i, playertab in ipairs(self.players) do local player = Player(playertab[1]) if player then local str = "The following items are available in your reward chest: " local bagUid = Game.createItem(bagId, 1) for i, lootTable in ipairs(playertab[3]) do local item = bagUid:addItem(lootTable[1].itemId, math.ceil(lootTable[2])) if item then str = str .. item:getNameDescription() .. ", " end end player:addItemRewardBag(bagUid) str = str:sub(1, #str-2) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, str) end end else error("Error") endend function Player:addItemRewardBag(item)local rewardbag = self:getDepotChest(99, true) return rewardbag:addItemEx(item)end substitui essas 2 funções faz muito tempo que não mexo com tfs 1.x então pode ser que dê algum erro, mas tentei
  23. O projeto é muito promissor, é bacana ver o pessoal dedicado Só precisa melhorar no português (desculpa eu ser chato).
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...