Tudo que zipter98 postou
-
(Resolvido)Open Channel
Use um type que não dê debug, ué. Exemplos: TALKTYPE_CHANNEL_Y TALKTYPE_CHANNEL_W TALKTYPE_CHANNEL_O Você pode conferir outros types em 000-constant.lua.
-
(Resolvido)Open Channel
O que está dando debug é o type da mensagem (Speak Class).
-
Evento Assasin
Você colocou um nome no arquivo diferente do configurado na tag (creaturescript). ;/
-
Evento Assasin
Aparentemente, seu servidor não tem o callback onTime. O jeito é fazer por onThink mesmo. Troca o globalevent por esse: local time = "19:30" --Horário que o evento vai começar. function onThink(interval, lastExecution) if isInArray(config.day, os.date("%A")) then if os.date("%X") == time..":00" then broadcastMessage("The survival event is open! You guys have "..config.time.." minutes to enter.") local item = doCreateItem(config.teleport.tpId, 1, config.teleport.createPos) doItemSetAttribute(item, "aid", config.aid) setGlobalStorageValue(config.storages.global, 1) addEvent(function() if getGlobalStorageValue(config.storages.global) == 1 then local tp = getTileItemById(config.teleport.createPos, config.teleport.tpId).uid if tp > 0 then doRemoveItem(tp) end if #getPlayersOnEvent() < config.playerCount[1] then broadcastMessage("Not enough players to start the survival event. :/") setGlobalStorageValue(config.storages.global, -1) for i = 1, #getPlayersOnEvent() do setPlayerStorageValue(getPlayersOnEvent()[i], config.storages.storage, -1) end db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = "..config.storages.storage.." AND value != -1") else broadcastMessage("The survival event will start in "..config.startTime.." seconds.") addEvent(function() broadcastMessage("The survival event started!!!") setGlobalStorageValue(config.storages.global, 2) for i = 1, #getPlayersOnEvent() do doPlayerSetNoMove(getPlayersOnEvent()[i], false) end end, config.startTime * 1000) end end end, config.time * 60 * 1000) end end return true end E a tag por essa: <globalevent name="Survival" interval="1" event="script" value="nome_do_arquivo.lua"/>
-
Evento Assasin
OMG, deixei config como uma variável local. O outro erro, depois dou uma olhada.
-
Evento Assasin
Ops, esqueci uma vírgula. Troque: players = 9502 por: players = 9502,
-
Evento Assasin
Não altere isso. Edite apenas o que eu indiquei no código.
-
Castle War (Estilo TibiaRPGBrasil)
Diga-me se entendi corretamente o sistema: dá o horário, libera a entrada do evento -> mata guarda -> nasce geradores -> mata geradores -> libera grades para o próximo andar. No último andar, depois de matar os geradores, as grades para a sala do Crystal são liberadas. Isso mesmo? E a premiação para as quatro vocações que deram mais dano será a mesma? Por exemplo, os itens possíveis como prêmio são 10, 50 e 100 para sorcerer, paladin, knight e druid? A ideia é interessante, posso tentar fazer. Porém, antes, tenho outros sistemas para terminar. Ah, cada guarda será um monstro diferente, certo? E os geradores? Serão os mesmos para todos os andares, ou terá, por exemplo, Gerador 1, Gerador 2, etc?
-
Spells PXG
OK. Quando possível, dou uma olhada nisso. Tenho outras coisas pra fazer no momento. Se eu fizer (não vou confirmar nada), te mando uma PM, visto que o tópico já foi resolvido.
-
Spells PXG
Posso tentar. Mas como funciona o Heavy Slam? Não entro na PxG faz tempo. E obrigado. (:
-
(Resolvido)System Catapult + erro
Você instalou corretamente o movement? Se o void não é removido, provavelmente o sistema foi instalado erroneamente. Além de mim, outras pessoas testaram os códigos e disseram funcionar perfeitamente.
-
(Resolvido)System Catapult + erro
Na verdade, quando um pedido é resolvido, o tópico não é fechado. Você deve clicar em "melhor resposta" para selecionar qual o comentário que mais lhe ajudou.
-
(Resolvido)System Catapult + erro
Falta de atenção minha... Agora sim eu testei. Se não funcionar, bem, você configurou algo errado. local config = { catapults = { --[actionid] = "direção", [6801] = "sul", [6802] = "norte", }, distance = 6, --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14. directions = { ["norte"] = 0, ["leste"] = 1, ["sul"] = 2, ["oeste"] = 3, }, } function onUse(cid, item, fromPosition, itemEx, toPosition) if config.distance % 2 ~= 0 then return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.") elseif not config.catapults[item.actionid] then return doPlayerSendCancel(cid, "Sorry, this catapult isn't available right now.") and print("Catapult without actionid or it isn't configured in table.") end local direction = config.directions[config.catapults[item.actionid]] for i = 1, config.distance do addEvent(function() if getPlayerLookDir(cid) ~= direction then doCreatureSetLookDirection(cid, direction) end local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction) newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1 if i < config.distance then doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255) doCreateItem(460, 1, newPos) end doTeleportThing(cid, newPos) end, i * 120) end return true end EDIT: Vi acima que você comentou ter removido a linha que cria o void. NÃO remova-a, por favor. doCreateItem(460, 1, newPos)
-
(Resolvido)System Catapult + erro
Você quer uma direção para cada catapulta? É isso? Sobre o erro, já vi o que é. Logo edito meu comentário com a correção. Mude o movement para este: local area = createCombatArea{ {1, 1, 1}, {1, 2, 1}, {1, 1, 1}, } function onStepIn(cid, item, position, fromPosition) doAreaCombatHealth(cid, 3080, getThingPos(cid), area, 0, 0, 255) return true end function onStepOut(cid, item, position, fromPosition) local oldtpos = fromPosition oldtpos.stackpos = STACKPOS_GROUND if getTileThingByPos(oldtpos).itemid >= 1 then doRemoveItem(getTileThingByPos(oldtpos).uid, 1) end return true end Tags: <movevent type="StepOut" itemid="460" event="script" value="nome_do_arquivo.lua"/> <movevent type="StepIn" itemid="460" event="script" value="nome_do_arquivo.lua"/> Action com múltiplas catapultas: local config = { catapults = { --[actionid] = "direção", [6801] = "sul", [6802] = "norte", }, distance = 6, --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14. directions = { ["norte"] = 0, ["leste"] = 1, ["sul"] = 2, ["oeste"] = 3, }, } function onUse(cid, item, fromPosition, itemEx, toPosition) if config.distance % 2 ~= 0 then return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.") elseif not config.catapults[item.actionid] then return doPlayerSendCancel(cid, "Sorry, this catapult isn't available right now.") and print("Catapult without actionid or it isn't configured in table.") end local direction = config.directions[config.catapults[item.actionid]] for i = 1, config.distance do addEvent(function() if getPlayerLookDir(cid) ~= direction then doCreatureSetLookDirection(cid, direction) end local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction) newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1 if i < config.distance then doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255) doCreateItem(460, 1, newPos) end doTeleportThing(cid, newPos) end, i * 120) end return true end PS: Não se esqueça de registrar os action IDs na tag. Ex.: <action actionid="6801;6802" event="script" value="nome_do_arquivo.lua"/>
-
(Resolvido)System Catapult + erro
Você instalou corretamente o movement (script + tag)? E não entendi esta modificação.
-
(Resolvido)System Catapult + erro
local config = { lookDirection = "sul", --Direção que a catapulta está olhando. distance = 6, --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14. directions = { ["norte"] = 0, ["leste"] = 1, ["sul"] = 2, ["oeste"] = 3, }, } function onUse(cid, item, fromPosition, itemEx, toPosition) if config.distance % 2 ~= 0 then return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.") end local direction = config.directions[config.lookDirection] for i = 1, config.distance do addEvent(function() if getPlayerLookDir(cid) ~= direction then doCreatureSetLookDirection(cid, direction) end local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction) newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1 if i < config.distance then doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255) doCreateItem(460, 1, newPos) end doTeleportThing(cid, newPos) end, i * 120) end return true end
-
(Resolvido)System Catapult + erro
Se você tiver as sources do seu servidor, vá em luascript.cpp e procure por alguma função relacionada a "lookdir" (obviamente você deverá usar CTRL+F). Se não, na pasta do seu servidor, vá em doc, abra o arquivo LUA_FUNCTIONS e procure por algo relacionado a "lookdir". Se encontrar algo, informe aqui.
-
Duvida de Função......(script)
Função: function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end Uso dela: local chestId = xxx --ID do baú. local position = {x = x, y = y, z = z} --Posição do baú. local item = xxx --ID do item que será verificado dentro do baú. local box = getTileItemById(position, chestId).uid if box > 0 then if #getItemsInContainerById(box, item) > 0 then return true end end
-
(Resolvido)System Catapult + erro
data/actions/scripts: local config = { lookDirection = "sul", --Direção que a catapulta está olhando. distance = 6, --Quantas posições o jogador vai "pular" (só funciona com números pares). Distância máxima: 14. directions = { ["norte"] = 0, ["leste"] = 1, ["sul"] = 2, ["oeste"] = 3, }, } function onUse(cid, item, fromPosition, itemEx, toPosition) if config.distance % 2 ~= 0 then return doPlayerSendCancel(cid, "Sorry, the catapult isn't available right now.") and print("Trade catapult distance for a odd number.") end local direction = config.directions[config.lookDirection] for i = 1, config.distance do addEvent(function() if getPlayerLookDir(cid) ~= direction then doCreatureSetLookDirection(cid, direction) end local newPos = getPosByDir(i ~= 1 and getThingPos(cid) or toPosition, direction) newPos.z = i <= config.distance / 2 and newPos.z - 1 or newPos.z + 1 if i < config.distance then doAreaCombatHealth(0, 0, newPos, 0, 0, 0, 255) doCreateItem(460, 1, newPos) end doTeleportThing(cid, newPos) end, i * 120) end return true end data/movements/scripts: local area = createCombatArea{ {1, 1, 1}, {1, 2, 1}, {1, 1, 1}, } function onStepIn(cid, item, position, fromPosition) doAreaCombatHealth(cid, 3080, getThingPos(cid), area, 0, 0, 255) return true end function onStepOut(cid, item, position, fromPosition) local oldtpos = fromPosition oldtpos.stackpos = STACKPOS_GROUND if getTileThingByPos(oldtpos).itemid >= 1 then doRemoveItem(getTileThingByPos(oldtpos).uid, 1) end return true end Tags do movement: <movevent type="StepOut" itemid="460" event="script" value="nome_do_arquivo.lua"/> <movevent type="StepIn" itemid="460" event="script" value="nome_do_arquivo.lua"/>
- Duvida de Função......(script)
-
Ajuda colocar para trocar cor da roupa
E qual parte da outfit teria a cor trocada?
-
[Talkaction] Avançar de level
local levels = {717217, 903637, 1034406} --Adicione aqui os levels que participarão do script. function onSay(cid, words) if isInArray(levels, getPlayerLevel(cid)) then db.executeQuery("UPDATE players SET level = "..(getPlayerLevel(cid) + 1)..", experience = 10000 WHERE id = "..getPlayerGUID(cid)) doRemoveCreature(cid) end return true end
-
Sistema de Torneio [COMPLETO]
Na talkaction para abrir o torneio, você também poderá definir a quantidade mínima de participantes, ou esta é padrão para todos os torneios? E tem um porém nesta nova lógica de horário: e se já estiver sendo realizado um torneio (por exemplo, um customizável) no momento que era para o torneio "normal" ser iniciado, o que acontecerá?
-
Sistema de Torneio [COMPLETO]
Haverá algum tempo de espera antes do primeiro combate começar? E quando 2 jogadores estiverem na arena, logo de início poderão se atacar ou terá um tempo para se prepararem? Na talkaction para abrir o evento, você poderá selecionar o level mínimo/máximo? Ex.: /torneio open:1-999. E quando você fechar o torneio pela talkaction, o que vai acontecer? Os jogadores inscritos vão ser teleportados para o templo, ou na verdade o torneio irá ser iniciado? Se um torneio já estiver acontecendo quando der o horário de outra modalidade, o que acontecerá? Já iniciei o código, porém não pude dar continuidade devido a essas questões.
-
[Script] Advance Level
Você coloca este script em data/creaturescripts/scripts. Registre a seguinte tag em creaturescripts.xml: <event type="advance" name="msgLevel" event="script" value="nome_do_arquivo.lua"/> Depois, em login.lua, abaixo de semelhantes, adicione: registerCreatureEvent(cid, "msgLevel")