-
Total de itens
926 -
Registro em
-
Última visita
-
Dias Ganhos
18
Tudo que Danihcv postou
-
@@brendoonh, não to entendo o q ta dando errado... Aparece algum erro na distro? Tem certeza que a porta está (action id) está ligada a somente esse script?
-
@, putz, vdd. tinha esquecido que vc queria isso... shauhusa Caso o do amigo acima ñ funcione, põe assim: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 -------------------------- ----PARTE CONFIGURAVEL---- -------------------------- local msgs = { ["mysterious island"] = "É uma ilha que antigos diziam ficar ao sudoeste de Carlin. Há um teleport que dizem aparecer nos pântanos de Venore, talvez, ele leve a essa ilha.", ["second promotion"] = "Há um NPC que vem de muito longe e fica a caminhas pelos campos de Thais, dizem que ele pode dar a segunda vocação para os aventureiros.", } local voc = 3 ----------------------------- --FIM DA PARTE CONFIGURAVEL-- ----------------------------- function creatureSayCallback(cid, type, msg) if getPlayerVocation(cid) == voc then for k, v in pairs(msgs) do if msgcontains(msg, v) then npcHandler:say(msg[v], cid) end end else npcHandler:say('Eu não falo com '..getVocationInfo(getPlayerVocation(cid)).name..'s.', cid) return true end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Ah, entendi. Deixa assim: login.lua: creaturescripts.xml: Tópico movido para dúvidas / pedidos resolvidos.
-
local voc = {3, 7} --vocações que podem acessar a porta function onUse(cid, item, frompos, item2, topos) posi = getCreaturePosition(cid) for k, v in pairs(voc) do if getPlayerVocation(cid) == v then doSendMagicEffect(getCreaturePosition(cid), 2) if frompos.x > topos.x then doTeleportThing(cid, {x=topos.x - 1, y=topos.y, z=topos.z}) elseif frompos.x < topos.x then doTeleportThing(cid, {x=topos.x + 1, y=topos.y, z=topos.z}) elseif frompos.y < topos.y then doTeleportThing(cid, {x=topos.x, y=topos.y + 1, z=topos.z}) elseif frompos.y > topos.y then doTeleportThing(cid, {x=topos.x, y=topos.y - 1, z=topos.z}) end else doPlayerSendCancel(cid, "Only the worthy may pass.") doTeleportThing(cid, posi) return true end end return true end ~~parte desse script foi escrito pelo NightWolf
-
@@KeroLeleuh, e-mail de @Leleuh Mattos alterado para cfleleuh@gmail.com E e-mail de @@KeroLeleuh, alterado para affes_leo@@live.com
-
Caralho velho... Erro meu. Creio q agr vai: local voc = {3, 7} --vocações que podem acessar a porta function onUse(cid, item, frompos, item2, topos) posi = getCreaturePosition(cid) for k, v in pairs(voc) do if getPlayerVocation(cid) == v then doSendMagicEffect(getCreaturePosition(cid), 2) else doPlayerSendCancel(cid, "Only the worthy may pass.") doTeleportThing(cid, posi) return false end end return true end
-
Vá em data\npc e crie um arquivo chamado npctalk.xml e coloque isso dentro: *é nesse script q vc coloca a mensagem de saudação: <?xml version="1.0"?> <npc name="NpcX" script="data/npc/scripts/npctalk.lua" walkinterval="0"> <health now="100" max="100"/> <look typeex="1448"/> <parameter key="message_greet" value="Olá, |PLAYER NAME|. Sobre o que você quer saber? Sobre a {mysterious island} ou sobre a {second promotion}?"/> </npc> Agora vá em data\npc\scripts e crie um arquivo chamado npctalk.lua e coloque isso dentro: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 -------------------------- ----PARTE CONFIGURAVEL---- -------------------------- local msgs = { ["mysterious island"] = "É uma ilha que antigos diziam ficar ao sudoeste de Carlin. Há um teleport que dizem aparecer nos pântanos de Venore, talvez, ele leve a essa ilha.", ["second promotion"] = "Há um NPC que vem de muito longe e fica a caminhas pelos campos de Thais, dizem que ele pode dar a segunda vocação para os aventureiros.", } ----------------------------- --FIM DA PARTE CONFIGURAVEL-- ----------------------------- function creatureSayCallback(cid, type, msg) for k, v in pairs(msgs) do if msgcontains(msg, v) then npcHandler:say(msg[v], cid) end end return true end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) É nessa parte do script q vc configura o [gatilho] e a mensagem de resposta do npc:
-
Puta vida... local voc = {3, 7} --vocações que podem acessar a porta function onUse(cid, item, frompos, item2, topos) posi = getCreaturePosition(cid) for k, v in pairs(voc) do if getPlayerVocation(cid) == voc[v] then doSendMagicEffect(getCreaturePosition(cid), 2) else doPlayerSendCancel(cid, "Only the worthy may pass.") doTeleportThing(cid, posi) return false end end return true end
-
pedido Pegar lvl 8 e já ir direto teleportado pra pos e falar hi
pergunta respondeu ao luccagomes de Danihcv em Scripts
Tópico movido para dúvidas / pedidos resolvidos. -
Tenta assim: local voc = {3, 7} --vocações que podem acessar a porta function onUse(cid, item, frompos, item2, topos) for k, v in pairs(voc) do if getPlayerVocation(cid) ~= voc[v] then doPlayerSendCancel(cid, "Only the worthy may pass.") doTeleportThing(cid,frompos) return true end doSendMagicEffect(getCreaturePosition(cid), 2) end return true end
-
A parte para o npc dizer que não fala com determinada vocação eu entendi. Mas poderia explicar mais detalhadamente como ocorreria um diálogo do npc com um player com vocação aceitavel? Tipo, demonstre um diálogo com pelo menos mais de 2 respostas que o npc daria à 2 falas-gatilho do player, etc.
-
Tenta agr: local voc = {3, 7} --vocações que podem acessar a porta function onUse(cid, item, frompos, item2, topos) for k, v in pairs(voc) do if getPlayerVocation(cid) == voc[v] then doSendMagicEffect(getCreaturePosition(cid), 2) else doPlayerSendCancel(cid, "Only the worthy may pass.") doTeleportThing(cid,frompos,true) end end return true end
-
Eu ainda não compreendi mt bem como funciona esse tfs 1.2... Mas recebi um auxilio, aqui. Testa agr: local pointObj = 2160 --id do item "points" function getAccountPoints(cid) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..player:getGuid(cid)..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(cid, words, param) if param ~= "" then if tonumber(param) <= getAccountPoints(cid) then player:addItem(cid, pointObj, param) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - param..' WHERE id='.. player:getGuid(cid)..'') newPoints = getAccountPoints(cid) player:sendCancel(cid, 22, 'Você ainda possui '..newPoints..' premium points em sua conta.') else player:sendCancel(cid, "Você não tem tantos premium points assim.") end else player:sendCancel(cid, "Você precisa especificar um valor.") end return true end Caso não dê certo, tenta assim: local pointObj = 2160 --id do item "points" function getAccountPoints(cid) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..player:getGuid(cid)..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(cid, words, param) if param ~= "" then if tonumber(param) <= player:getAccountPoints(cid) then player:addItem(cid, pointObj, param) db.executeQuery('UPDATE `accounts` SET `premium_points`='..player:getAccountPoints(cid) - param..' WHERE id='.. player:getGuid(cid)..'') newPoints = player:getAccountPoints(cid) player:sendCancel(cid, 22, 'Você ainda possui '..newPoints..' premium points em sua conta.') else player:sendCancel(cid, "Você não tem tantos premium points assim.") end else player:sendCancel(cid, "Você precisa especificar um valor.") end return true end
-
Ok. Dei uma "tradução" pra versão 1.1. Não to com acesso às funções do 1.2 no momento... Mas vou dar uma pesquisada. Contudo, vê se assim já dá certo: local pointObj = 2160 --id do item "points" function getAccountPoints(cid) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..player:getAccountId(cid)..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(cid, words, param) if param ~= "" then if tonumber(param) <= getAccountPoints(cid) then doPlayerAddItem(cid, pointObj, param) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - param..' WHERE id='.. player:getAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, 22, 'Você ainda possui '..newPoints..' premium points em sua conta.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end return true end
-
Tópico movido para dúvidas / pedidos resolvidos.
-
Tópico Movido Este tópico foi movido de "OTServ → Mapping → Downloads Mapas → Mapas Derivados" para "OTServ → Downloads → Servidores OTServ → OTServ Derivados".
-
action [TFS 1.1] Lua functions - funções
tópico respondeu ao Danihcv de Danihcv em Tutoriais de Scripting
@@Lucas CP, estou considerando fazer isso. Se eu arranjar tempo e coragem, eu faço.... sahusahusa -
pedido Pegar lvl 8 e já ir direto teleportado pra pos e falar hi
pergunta respondeu ao luccagomes de Danihcv em Scripts
@@Night Wolf, só li verdades verdadeiras. Ainda to desenferrujando... Quase um ano sem mexer nessas desgraça. -
action Procurar por uma actionid ou uniqueid no rme
pergunta respondeu ao Developer Berg de Danihcv em Mapping
Tópico movido para dúvidas / pedidos resolvidos. -
Tenta assim: local storage = 193879834 local tempo = 1*60 ----(1 minuto) local minutes = 5 function onAttack(cid, target) if isMonster(target) and getCreatureName(target):lower() == 'training monk' then strValue = getPlayerStorageValue(cid, storage) doPlayerSetStorageValue(cid, storage, strValue+1) if getPlayerStorageValue(cid, storage) >= tempo then doPlayerAddStamina(cid, minutes) doPlayerSetStorageValue(cid, storage, 0) end end return true end Caso não dê certo, tente assim: local storage = 193879834 local tempo = 1*60 ----(1 minuto) local minutes = 5 function onAttack(cid, target) if isMonster(target) and string.lower(getCreatureName(target)) == "training monk" then strValue = getPlayerStorageValue(cid, storage) doPlayerSetStorageValue(cid, storage, strValue+1) if getPlayerStorageValue(cid, storage) >= tempo then doPlayerAddStamina(cid, minutes) doPlayerSetStorageValue(cid, storage, 0) end end return true end
-
Tópico movido para dúvidas / pedidos resolvidos.
-
Tópico movido para dúvidas / pedidos resolvidos.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
