Tudo que zipter98 postou
-
NPC que troca um item por um item aleatório
Mudei essa parte da mensagem. Sobre o segundo problema: o NPC que compra troféus continua dizendo mensagens de outros NPCs? Se sim, no momento não consigo pensar no que pode ser, exatamente. Mas é algum problema do seu servidor, não do NPC. :x
-
Suporte Script - Alavanca que teleporta com check
local cfg = { positions = { {{posição que o jogador deve ficar}, {posição para onde será teleportado}}, {{posição que o jogador deve ficar}, {posição para onde será teleportado}}, {{posição que o jogador deve ficar}, {posição para onde será teleportado}}, {{posição que o jogador deve ficar}, {posição para onde será teleportado}}, {{posição que o jogador deve ficar}, {posição para onde será teleportado}}, }, not_enough_players = xxx, --Efeito que aparecerá quando não tiver jogadores o suficiente. tp_effect = xxx, --Efeito que vai aparecer nos jogadores ao serem teleportados. } function onUse(cid, item, fromPosition, item2, toPosition) for i = 1, #cfg.positions do if not isPlayer(getTopCreature(cfg.positions[i][1]).uid) then return doPlayerSendCancel(cid, "Not enough players.") and doSendMagicEffect(getThingPos(cid), cfg.not_enough_players) end end for i = 1, #cfg.positions do local creature = getTopCreature(cfg.positions[i][1]).uid doTeleportThing(creature, cfg.positions[i][2]) doPlayerSendTextMessage(creature, 27, "You started the quest.") doSendMagicEffect(getThingPos(creature), cfg.tp_effect) end return true end
-
(Resolvido)Adicionar mais horarios nesse evento
Ao invés de colocar todos os horários em uma única tag, tente colocar cada um em uma tag diferente. Por exemplo: <globalevent name="TournamentStart" time="11:35" event="script" value="Torneio.lua"/> <globalevent name="TournamentStart2" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/> <globalevent name="TournamentStart3" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/> E assim vai. edit: definitivamente, é desse jeito que vai funcionar. tinha esquecido que em globalevent só pode configurar um horário por tag
-
(Resolvido)Suporte Script - Tps ao matar monstro
Como havia apenas um monstro configurado em tps, imaginei que você queria que o código se aplicasse a apenas um único boss. Por isso, mudei a tabela. local teleport = { tpId = 5023, --ID do teleporte. tpTime = 10, --Tempo de duração do teleporte. tps = { {{x = 1134, y = 895, z = 3}, {x = 1135, y = 895, z = 2}}, {{posição onde será criado}, {posição onde levará}}, {{posição onde será criado}, {posição onde levará}}, {{posição onde será criado}, {posição onde levará}}, }, } function onDeath(cid) doCreatureSay(cid, "The teleport will disappear on "..teleport.tpTime.." seconds.", TALKTYPE_ORANGE_1) for i = 1, #teleport.tps do doCreateTeleport(teleport.tpId, teleport.tps[i][2], teleport.tps[i][1]) addEvent(function() local item = getTileItemById(teleport.tps[i][1], teleport.tpId).uid if item > 0 then doRemoveItem(item, 1) doSendMagicEffect(teleport.tps[i][1], CONST_ME_POFF) end end, teleport.tpTime * 1000) end return true end
- (Resolvido)Adicionar mais horarios nesse evento
-
[PEDIDO] Item de Slot
function onUse(cid, item, fromPosition, item2, toPosition) local slot_item = getPlayerSlotItem(cid, CONST_SLOT_LEGS).uid if slot_item < 1 then doPlayerAddItem(cid, 1225, 1) end return true end
- [PEDIDO] mensagem de atk em boss [8.60]
-
(Resolvido)[PEDIDO] MiniGame ~ Acerte o Alvo
vc tem um vídeo desse sistema? ajudaria um pouco mais ^.^
-
NPC que troca um item por um item aleatório
Sobre o segundo problema, provavelmente é algum onThink que esteja causando isso (dã). Se mesmo com o código que passei isso continua acontecendo, dá uma olhada no código desse NPC que você citou (Mary) e veja se há alguma coisa relacionada a essas mensagens (tanto no XML quanto no lua). Se tiver, poste os códigos. Se não, hm, vai ser um pouco mais complicado.
-
NPC que troca um item por um item aleatório
Woops, my bad hehe. Já mudei.
- (Resolvido)[Pedido] Teleport automático em tal dia/hora.
-
[PEDIDO] Item de Slot
Só pode receber o item de ID 1225 uma única vez, certo? E quando usa o item, ele é removido ou continua com o jogador? Eu posso até fazer o código, mas recomendaria fazer o que o WhiteWolf disse.
- (Resolvido)[Pedido] Teleport automático em tal dia/hora.
-
Quest que ganha vip temporario
Não sabia dessa, valeu por corrigir. (:
-
(Resolvido)Script que adciona points
nada c:
-
(Resolvido)Script que adciona points
Yep, exatamente. Em data/creaturescripts/scripts. Depois, você só adiciona a tag em creaturescripts.xml (não precisa adicionar nada em login.lua, visto que o callback é onLogin).
-
(Resolvido)Script que adciona points
Ué, só usar a função que o Vodkart disponibilizou: addPoints(cid, amount) Exemplo de código no qual o jogador loga e ganha 1 ponto: function onLogin(cid) if getCreatureName(cid) ~= "Account Manager" then if getPlayerStorageValue(cid, 9018) < 1 then addPoints(cid, 1) setPlayerStorageValue(cid, 9018, 1) doPlayerSendTextMessage(cid, 27, "You received one point.") end end return true end Exemplo de código no qual o jogador passa por certo piso e ganha 1 ponto: function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, 9019) < 1 then addPoints(cid, 1) setPlayerStorageValue(cid, 9019, 1) doPlayerSendTextMessage(cid, 27, "You received one point.") end return true end
-
(Resolvido)[DUVIDA] Piso que remove items por slot
np (:
-
(Resolvido)[Pedido] Teleport automático em tal dia/hora.
data/globalevents/scripts, saturdaytp.lua: local configuration = { day = "Saturday", to_pos = {x = x, y = y, z = z}, --Para onde o teleport levará. pos = {x = x, y = y, z = z}, --Onde o teleport será criado. teleport_id = 1387, --ID do teleport. } function onTime() if os.date("%A") == configuration.day then local item = getTileItemById(configuration.pos, configuration.teleport_id).uid if item > 0 then doRemoveItem(item, 1) broadcastMessage("Castle War foi fechado.", MESSAGE_STATUS_WARNING) else doCreateTeleport(configuration.teleport_id, configuration.to_pos, configuration.pos) broadcastMessage("Castle War foi aberto.", MESSAGE_STATUS_WARNING) end end return true end Tags: <globalevent name="SaturdayTp" time="18:00" event="script" value="saturdaytp.lua"/> <globalevent name="CloseTp" time="21:00" event="script" value="saturdaytp.lua"/>
-
Quest que ganha vip temporario
db.executeQuery("UPDATE `players` SET `name` = '"..getCreatureName(cid).."' WHERE `players`.`id`= "..getPlayerGUID(cid).."") Dessa maneira, o nick do cara continuaria o mesmo, não? O correto, suponho, seria: local new_nick = getCreatureName(cid):gsub("(VIP) ", "") db.executeQuery("UPDATE `players` SET `name` = '"..new_nick.."' WHERE `players`.`id`= "..getPlayerGUID(cid).."")
-
(Resolvido)[DUVIDA] Piso que remove items por slot
function onStepIn(cid, item, fromPosition, itemEx, toPosition) local storage = 417345 local slot = {1, 4, 7, 6, 5} if getCreatureStorage(cid, storage) < 0 then doCreatureSetStorage(cid, storage, 1) for i = 1, #slot do local slot_item = getPlayerSlotItem(cid, slot[i]).uid if slot_item > 0 then doRemoveItem(slot_item, 1) end end doSendMagicEffect(getThingPos(cid), 13) else doSendMagicEffect(getThingPos(cid), 2) end return true end
-
NPC que troca um item por um item aleatório
local mensagem = "" 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 local trophy = { ["ouro"] = {3, 5805}, --{Quantidade de items aleatórios, ID do troféu}, ["prata"] = {2, 5806}, ["bronze"] = {1, 5807}, } local items = {2154, 2156, 2158} if msgcontains(msg:lower(), "trophy") or msgcontains(msg:lower(), "trofeu") then selfSay("Acho que você pretende trocar algum troféu por gemas. Qual troféu você pretende trocar comigo: {ouro}, {prata} ou {bronze}?", cid) talkState[talkUser] = 1 return true elseif talkState[talkUser] == 1 then if trophy[msg:lower()] then selfSay("Você tem certeza que quer trocar 1 troféu de "..msg:lower().." por "..trophy[msg:lower()][1].." gema"..(trophy[msg:lower()][1] > 1 and "s" or "").." aleatória"..(trophy[msg:lower()][1] > 1 and "s" or "").."?", cid) mensagem = msg:lower() talkState[talkUser] = 2 return true else selfSay("Este troféu não existe.", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg:lower(), "yes") or msgcontains(msg:lower(), "sim") and talkState[talkUser] == 2 then local trofeu = trophy[mensagem] local id = trofeu[2] if getPlayerItemCount(cid, id) > 0 then for i = 1, trofeu[1] do doPlayerAddItem(cid, items[math.random(#items)], 1) end doPlayerRemoveItem(cid, id, 1) selfSay("Obrigado, aqui estão suas gemas.", cid) talkState[talkUser] = 0 return true else selfSay("Você não possui este troféu.", cid) talkState[talkUser] = 0 return true end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
(Resolvido)Adicionar mais horarios nesse evento
Muda a lib do sistema pra essa: torneio = { awardTournament = 2160,---- Premio awardAmount = 10,---- quantia do Premio playerTemple = {x = 1096, y = 1009, z = 7}, ---- posiçao do Templo tournamentFight = {x = 909, y = 978, z = 7}, ----- Area (Mapa) do torneio area = {fromx = 899, fromy = 968, fromz = 7, tox = 919, toy = 989, toz= 7},---- fromx = 899, fromy = 968, fromz = 7 : posiçao superior a esquerda do Mapa do torneio /// tox = 919, toy = 989, toz= 7 : Posiçao inferior direito do Mapa do Torneio waitPlace = {x = 992, y = 998, z = 7}, ---- Sala de Espera (Coloque No-logout na area) waitArea = {fromx = 987, fromy = 993, fromz = 7, tox = 997, toy = 1003, toz= 7}, ---- fromx = 899, fromy = 968, fromz = 7 : posiçao superior a esquerda do Mapa Sala de espera /// tox = 919, toy = 989, toz= 7 : Posiçao inferior direito do Mapa sala de espera horarios = {{"11:30:00", "11:35:00"}, {"horario_que_começa_inscrições", "horário_que_começa_batalha"}, {"horario_que_começa_inscrições", "horário_que_começa_batalha"}}, price = 10000, ------ Custo para se inscrever no torneio } function getPlayersInArea(area) local players = {} for x = area.fromx,area.tox do for y = area.fromy,area.toy do for z = area.fromz,area.toz do local m = getTopCreature({x=x, y=y, z=z}).uid if m ~= 0 and isPlayer(m) then table.insert(players, m) end end end end return players end Muda a tag do globalevent pra essa: <globalevent name="TournamentStart" time="11:35" event="script" value="Torneio.lua"/> <globalevent name="TournamentStart2" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/> <globalevent name="TournamentStart3" time="horário_que_começa_batalha" event="script" value="Torneio.lua"/> E assim vai. Muda o script do NPC pra esse: 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, 'torneio') or msgcontains(msg, 'enter') then selfSay('Você quer participar do torneio por ['..torneio.price..'] dollars? [Sim/Yes]', cid) talkState[talkUser] = 2 elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') then for i = 1, #torneio.horarios do if os.date("%X") > torneio.horarios[i][1] and os.date("%X") < torneio.horarios[i][2] then if doPlayerRemoveMoney(cid, torneio.price) then doTeleportThing(cid, torneio.waitPlace) setPlayerStorageValue(cid,130130,1) doPlayerSendTextMessage(cid, 21, "Bem-vindo, esta é a sala de espera, você espera aqui enquanto o torneio não começa. hora de início: {"..torneio.horarios[i][2].."}.") talkState[talkUser] = 0 return true else selfSay('Voce nao Tem Dinheiro ('..torneio.price..').', cid) talkState[talkUser] = 0 return true end end end selfSay('As inscrições para o torneio terminaram. Espere até o próximo.', cid) talkState[talkUser] = 0 return true else selfSay('Voce nao quer participar do Torneio? OK, quando quiser, venha até mim!', cid) talkState[talkUser] = 0 return true end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Se não tiver entendido como adiciona novos horários, só avisar que eu te explico.
-
(Resolvido)Autoloot poketibia help
np (:
-
(Resolvido)[PEDIDO] - Action que adciona storage
local storages = {xxx, xxx, xxx} --Coloque aqui as storages. function onUse(cid, item, fromPosition, item2, toPosition) for i = 1, #storages do if getPlayerStorageValue(cid, storages[i]) > -1 then return doPlayerSendCancel(cid, "You already have the storages.") end setPlayerStorageValue(cid, storages[i], 1) end doRemoveItem(item.uid, 1) return true end