Ir para conteúdo

.HuRRiKaNe

Membro
  • Registro em

  • Última visita

Tudo que .HuRRiKaNe postou

  1. -- CONFIG ZE_DEFAULT_NUMBER_OF_PLAYERS = 50 ZE_ACCESS_TO_IGNORE_ARENA = 4 -- POSITIONS ZE_blockEnterItemPosition = {x= 1012, y=890, z=7} ZE_enterPosition = {x = 1492, y = 1550, z = 7} ZE_kickPosition = {x=1026, y=910, z=7} ZE_spawnFromPosition = {x = 1465, y = 1534, z = 7} ZE_spawnToPosition = {x = 1521, y = 1567, z = 7} -- ITEM IDS ZE_blockEnterItemID = 1536 -- STORAGES -- - player ZE_isOnZombieArea = 34370 -- - global ZE_STATUS = 34370 -- =< 0 - off, 1 - waiting for players, 2 - is running ZE_PLAYERS_NUMBER = 34371 ZE_ZOMBIES_TO_SPAWN = 34372 ZE_ZOMBIES_SPAWNED = 34373 -- FUNCTION function setZombiesEventPlayersLimit(value) doSetStorage(ZE_PLAYERS_NUMBER, value) end function getZombiesEventPlayersLimit() return getStorage(ZE_PLAYERS_NUMBER) end function addPlayerToZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_enterPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) if(getPlayerAccess(cid) < ZE_ACCESS_TO_IGNORE_ARENA) then setPlayerZombiesEventStatus(cid, os.time()) end end function kickPlayerFromZombiesArea(cid) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, ZE_kickPosition, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) setPlayerZombiesEventStatus(cid, 0) end function getPlayerZombiesEventStatus(cid) return getCreatureStorage(cid, ZE_isOnZombieArea) end function setPlayerZombiesEventStatus(cid, value) doCreatureSetStorage(cid, ZE_isOnZombieArea, value) end function getZombiesEventPlayers() local players = {} for i, cid in pairs(getPlayersOnline()) do if(getPlayerZombiesEventStatus(cid) > 0) then table.insert(players, cid) end end return players end function getZombiesCount() return getStorage(ZE_ZOMBIES_SPAWNED) end function addZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, getStorage(ZE_ZOMBIES_SPAWNED)+1) end function resetZombiesCount() doSetStorage(ZE_ZOMBIES_SPAWNED, 0) end function getZombiesToSpawnCount() return getStorage(ZE_ZOMBIES_TO_SPAWN) end function setZombiesToSpawnCount(count) doSetStorage(ZE_ZOMBIES_TO_SPAWN, count) end function addZombiesEventBlockEnterPosition() if(getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID).uid == 0) then doCreateItem(ZE_blockEnterItemID, 1, ZE_blockEnterItemPosition) end end function removeZombiesEventBlockEnterPosition() local item = getTileItemById(ZE_blockEnterItemPosition, ZE_blockEnterItemID) if(item.uid ~= 0) then doRemoveItem(item.uid) end end function spawnNewZombie() local posx = {} local posy = {} local posz = {} local pir = {} for i=1, 5 do local posx_tmp = math.random(ZE_spawnFromPosition.x ,ZE_spawnToPosition.x) local posy_tmp = math.random(ZE_spawnFromPosition.y ,ZE_spawnToPosition.y) local posz_tmp = math.random(ZE_spawnFromPosition.z ,ZE_spawnToPosition.z) local pir_tmp = 0 local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false) if(spec and #spec > 0) then for z, pid in pairs(spec) do if(isPlayer(pid)) then pir_tmp = pir_tmp + 1 end end end posx[i] = posx_tmp posy[i] = posy_tmp posz[i] = posz_tmp pir[i] = pir_tmp end local lowest_i = 1 for i=2, 5 do if(pir[i] < pir[lowest_i]) then lowest_i = i end end local ret = (type(doCreateMonster("Zombie Event", {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]}, false)) == 'number') if(ret) then addZombiesCount() end return ret end
  2. No meu servidor de dragon ball está funcionando, provavelmente é sua distro que não tem as funções necessárias.
  3. Informações: Mapa Evolution's editado Houses 100% Quests 100% Trainers Teleports Eventos Automáticos E mais! Imagens: Download: http://www.mediafire.com/download/fr1ont5e91wrprb/Zanera-Evolution.rar Scan: https://www.virustotal.com/pt/file/858045082e7a4abf87518c7b201130ebebab58654a5c0666e1f3f3b24f756154/analysis/1438445459/ Créditos: Zanera Team Wartio
  4. Em data/talkactions/scripts crie um arquivo muteplayer.lua e coloque dentro: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, 21, "Digite o comando correto.") return true end local t = string.explode(param, ",") player = getPlayerByName(t[1]) local condition = createConditionObject(CONDITION_MUTED) if(not t[2] or t[2] == '') then doPlayerSendTextMessage(cid, 21, "Digite o comando correto.") end if t[2] then time = tonumber(t[2]*60000) -- 10*1000 is 10 seconds. if(isPlayer(player) == TRUE and getPlayerGroupId(cid) > getPlayerGroupId(player) and getPlayerFlagValue(player, PLAYERFLAG_CANNOTBEMUTED) == false) then setConditionParam(condition, CONDITION_PARAM_TICKS, time) setConditionParam(condition, CONDITION_PARAM_SUBID, 4) doAddCondition(player, condition) doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "Voce foi silenciado no Help-Channel por " .. getPlayerName(cid) .. " por " .. t[2] .. " minuto(s).") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(player) .. " foi silenciado no Help-Channel por " .. t[2] .. " minuto(s).") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Jogador " .. t[1] .. " não existe ou não está online.") end end return true end Salve e vá em talkactions/talkactions.xml e adicione: <talkaction log="yes" words="/mute;/desmute" access="1" event="script" value="muteplayer.lua"/> Salve e de /reload talkactions! Pronto é só usar o /mute, nome, minutos
  5. muteplayer.lua function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, 21, "Digite o comando correto.") return true end local t = string.explode(param, ",") player = getPlayerByName(t[1]) local condition = createConditionObject(CONDITION_MUTED) if(not t[2] or t[2] == '') then doPlayerSendTextMessage(cid, 21, "Digite o comando correto.") end if t[2] then time = tonumber(t[2]*60000) -- 10*1000 is 10 seconds. if(isPlayer(player) == TRUE and getPlayerGroupId(cid) > getPlayerGroupId(player) and getPlayerFlagValue(player, PLAYERFLAG_CANNOTBEMUTED) == false) then setConditionParam(condition, CONDITION_PARAM_TICKS, time) setConditionParam(condition, CONDITION_PARAM_SUBID, 4) doAddCondition(player, condition) doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "Voce foi silenciado no Help-Channel por " .. getPlayerName(cid) .. " por " .. t[2] .. " minuto(s).") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(player) .. " foi silenciado no Help-Channel por " .. t[2] .. " minuto(s).") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Jogador " .. t[1] .. " não existe ou não está online.") end end return true end talkactions.xml <talkaction log="yes" words="/mute;/desmute" access="1" event="script" value="muteplayer.lua"/>
  6. Boa tarde, bom eu configurei o zombie event perfeitamente no meu servidor, só que quando o ultimo sobrevivente é kickado da arena ele recebe o premio mas o evento não termina continua nascendo monstros lá na arena e também não aparece a mensagem do vencedor e quanto tempo durou o evento, meu distro é o 0.4 uso o mesmo script em outro servidor com o mesmo distro e funciona normalmente, script onattack: function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce perdeu.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then local reward = { [11487] = "War Boots", [11481] = "War Shuriken", } local rand = {} for itemid, _ in pairs(reward) do table.insert(rand, itemid) end rand = rand[math.random(#rand)] doPlayerAddItem(cid, rand) doPlayerAddItem(winner, 11192, 500, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ganhou o Zombie Event.") doBroadcastMessage("Depois de " .. os.time() - getPlayerZombiesEventStatus(winner) .. " segundos, o jogador " .. getCreatureName(winner) .. " ganhou o Zombie Arena Event com " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zumbis!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("O evento acabou, infelizmente ninguém ganhou!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end Erro na distro quando o ultimo jogador vence e é teleportado para o templo:
  7. Tenta dessa forma e veja se vai funcionar..
  8. function onCastSpell(cid, var) local waittime = 1 local storage = 5963 if exhaustion.check(cid, storage) then doCreatureSay(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.", TALKTYPE_MONSTER) return false end exhaustion.set(cid, storage, waittime) return TRUE end
  9. Hehe estou aqui no fórum com essa intenção
  10. Compilei a distro e adicionei ao tópico para ajudar quem não conseguiu! Down: http://www.mediafire.com/download/2ykpwpa4fa2knzk/Distro_%28Executavel%29_8.60_Dbo_Related_-_By_Animal_Pak%21.rar Scan: https://www.virustotal.com/pt/file/ffd037b5dfa3c6e5529490e460d075da3b4c24e8a230671a7d0c11f0dbc6d8d4/analysis/1438323955/
  11. Tenta: 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, "trocar nome") then if getPlayerItemCount(cid, 1010) < 30 then npcHandler:say("Você não tem a quantidade necessária para trocar seu nome!}", cid) return TRUE end doPlayerRemoveItem(cid, 1010, 30) npcHandler:releaseFocus(cid) doAddPlayerBanishment(getPlayerGUID(cid), PLAYERBAN_LOCK) doRemoveCreature(cid) return TRUE end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) <?xml version="1.0" encoding="UTF-8"?> <npc name="Trocar Nome" script="data/npc/scripts/name.lua" walkinterval="0" speed="0" floorchange="0"> <health now="100" max="100"/> <look type="240"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, eu posso {trocar nome} por 30 pontos!" /> </parameters> </npc>
  12. Eu tenho dois servidores, não dá tempo pra eu compilar não.. se alguém quiser compilar e postar o link pra quem não sabe, o projeto ta ai
  13. Aqui está: 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, "remover") then npcHandler:say("Voce quer remover seu red skull? {yes} ou {no}.", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "no") and talkState[talkUser] == 1 then npcHandler:say("Esta bem, quando decidir fale comigo novamente.", cid) talkState[talkUser] = 0 elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getCreatureSkullType(cid) < SKULL_RED then npcHandler:say("Voce nao esta red skull.", cid) else if doPlayerRemoveItem(cid, 1010, 5) then db.executeQuery("UPDATE killers SET unjustified = '0' WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id = "..getPlayerGUID(cid)..")") doCreatureSetSkullType(cid, 0) npcHandler:say("Seu red skull foi removido.", cid) else npcHandler:say("Voce nao tem o necessario para remover seu red skull.", cid) end end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  14. Eu posso mandar por pm, lord vou dar uma olhada nesse erro, caso eu não consiga te ajudar abra um tópico no suporte aqui do fórum!
  15. Executa esse comando na database: DROP TABLE IF EXISTS `killers`; CREATE TABLE `killers` ( `id` INT NOT NULL AUTO_INCREMENT, `death_id` INT NOT NULL, `final_hit` TINYINT(1) UNSIGNED NOT NULL DEFAULT FALSE, `unjustified` TINYINT(1) UNSIGNED NOT NULL DEFAULT FALSE, `war` INT NOT NULL DEFAULT 0, PRIMARY KEY (`id`), FOREIGN KEY (`death_id`) REFERENCES `player_deaths`(`id`) ON DELETE CASCADE ) ENGINE = InnoDB;
  16. No momento eu tenho esse script de uma pot vip em meu servidor, no caso ela heala toda life e mana do personagem, gostaria de saber se alguém consegue ajeitar para ela healar apenas 150k no máximo de life e mana, segue: local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) function onUse(cid, item, fromPosition, itemEx, toPosition) if(not isPlayer(itemEx.uid)) then return FALSE end if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end doAddCondition(cid, exhaust) doCreatureAddMana(itemEx.uid, (getCreatureMaxMana(itemEx.uid))) doCreatureAddHealth(itemEx.uid, (getCreatureMaxHealth(itemEx.uid))) doSendMagicEffect(getThingPos(itemEx.uid), 5) doCreatureSay(itemEx.uid, "I feel powerful!", TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) return TRUE end
  17. http://www.tibiaking.com/forum/topic/28214-tutorial-criando-client-proprio-sem-vapus-completo/
  18. Crie o exe do client aqui http://vapus.net/customclient
  19. Poste o erro aqui por favor.
  20. O dat e o spr estão ali cara, só fazer o client e .PIC ao critério do seu servidor..
  21. Aqui no tibiaking tem os tutoriais necessários, basta usar a ferramenta de busca.
  22. Que bom, também comecei um projeto em cima desse
  23. Sim só configurar pra rodar em sqlite, você precisa compilar as sources para o seu s.o!
  24. Eu frequento diversos fóruns rs, esse eu vi em um polonês

Informação Importante

Confirmação de Termo