Tudo que xBlackWolf postou
-
(Resolvido)AJUDA NPC
É só o meu NPC que está falando no default? Segue com mensagem para free:
-
(Resolvido)AJUDA NPC
O primeiro erro eu arrumei... já o segundo, não tenho idéia, porque no meu ot 10.35 funciona normal e é script de 8.60... tenta agora e ve se da erro.
- ARENA PvP
-
Remover Frag
Não entendi, vocÊ quer que retire TODOS os frags apenas se tiver skull red ou black? caso contrário ele tira apenas 1 é isso?
-
(Resolvido)RESOLVIDO Npc Vocation
Essa é a variavel que armazena o número da vocação, é só trocar os nomes por exemplo sorcerer, paladin etc.. e o numero da vocação: _state.n2 = 3 Não é para adicionar na pasta /scripts, esse é apenas o .xml do NPC. Oracle é um NPC diferente, não tem script. o Script todo está no .xml na pasta NPC. É só criar lá o NPC com esse código ai lá dentro.
-
[AJUDA] Spell bugando e fazendo pegar Red
Não entendi muito bem, porém se tiver 4 pessoas no SQM, e vc usar target em 1 que está lá naquele SQM, somente o targe vai receber dano, porém o efeito sai no SQM, aparecendo para todos os players q estiverem no SQM, mas somente o target leva dano.
-
[PROJETO] NewPBOT Returns 10.35
Obrigado :33 sem palavras kk então, depois conversamos sobre isso. No momento estou focado em arrumar erros e terminar o mapa o quanto antes.
-
(Resolvido)[AJUDA]Evento Automatico
@joadson Faltou no arquivo na lib.. a parte que retira os items: for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end
-
[Pedido] Porta Key Temporaria.
Não, cara, é um script que teleporta voce na frente da porta e na hr de sair atras da porta. Você não passa pelo meio dela, então.. se você tira o TransformonUse de uma porta fechada, ela vai permanecer fechada para sempre. Sendo assim ativa o teleport e a porta continua intacta.
-
[pedido] Quest que duplica a exp do servidor [8.60]
Ok, então o problema está no Login... tenta agora: function onLogin(cid) queststatus = 0000 if getGlobalStorageValue(queststatus) == 0 then doPlayerSetRate(cid, SKILL__LEVEL, 1.0) setPlayerStorageValue(0003,0) end if getGlobalStorageValue(queststatus) == 1 and getPlayerStorageValue(0003)~=1 then doPlayerSetRate(cid, SKILL__LEVEL, 2.0) setPlayerStorageValue(0003,1) end if getGlobalStorageValue(queststatus) == 1 and getPlayerStorageValue(0003)==1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Todos do servidor receberam 2x exp extra por terem feito a quest!") end return true end Não esqueça de modificar de novo as storages, e se não funcionar me fala a versão do seu tfs.
-
[Pedido] Porta Key Temporaria.
Cara, muito estranho rsrs, não sei a versão do seu ot é claro.. o meu eh 10.35, mas deveria funcionar, vc pode tbm escolher uma porta que n vai ter em lugar nenhum no mapa, e por ai, ai no item.xml vc tirar o transformOnUse dela
-
(Resolvido)[AJUDA]Evento Automatico
Vamos tentar diferente: function onThink(interval) -- Monday = Segunda -- Tuesday = Terça -- Wednesday = Quarta -- Thursday = Quinta -- Friday = Sexta -- Saturday = Sabado -- Sunday = Domingo EventoUP = {"Monday","Wednesday", "Friday"} EventoTime = {"21:00:00", "18:00:00", "10:00:00"} if isInArray(EventoUP, os.date("%A")) and isInArray(EventoTime, os.date("%X")) then local x = true local B = { [1] = {1547,{x=71, y=620, z=6, stackpos = 1}}, -- posição da barreira [2] = {1547,{x=72, y=620, z=6, stackpos = 1}}, -- posição da barreira [3] = {1547,{x=73, y=620, z=6, stackpos = 1}}, -- posição da barreira [4] = {1547,{x=74, y=620, z=6, stackpos = 1}}, -- posição da barreira [5] = {1547,{x=75, y=620, z=6, stackpos = 1}}, -- posição da barreira [6] = {1547,{x=71, y=618, z=6, stackpos = 1}}, -- posição da barreira [7] = {1547,{x=72, y=618, z=6, stackpos = 1}}, -- posição da barreira [8] = {1547,{x=73, y=618, z=6, stackpos = 1}}, -- posição da barreira [9] = {1547,{x=74, y=618, z=6, stackpos = 1}}, -- posição da barreira [10] = {1547,{x=75, y=618, z=6, stackpos = 1}} -- posição da barreira } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end return true end <globalevent name="nomequalquer" interval="1000" event="script" value="arquivo.lua"/> Intervalo baixo mesmo, para verificar a cada 1 segundo a hora para poder iniciar o evento. Não sei se vai funcionar ou se vai ficar lag, mas tenta e me fala.
- [pedido] Quest que duplica a exp do servidor [8.60]
-
(Resolvido)Erro Quando Player Morre
Mas aparece algum erro ??
-
[pedido] Quest que duplica a exp do servidor [8.60]
Eu não tenho certeza, mas acho que isso: - o servidor reinicia 1x por dia (não sei se isso também interfere) Irá sim interferir. De qualquer forma, eu fiz aqui espero que dê certo. Em Actions/scripts crie um arquivo .lua e ponha dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) storageTimeInit = 0001 -- storage que marca a hr feita a quest storageTimeFinish = 0002 -- storage que marca qnd a quest acaba if item.uid == 0000 then queststatus = 0000 thetime = os.time() if(getGlobalStorageValue(queststatus) == 1 and thetime > getGlobalStorageValue(storageTimeFinish)) then setPlayerStorageValue(queststatus,0) end if getGlobalStorageValue(queststatus) == 1 and thetime < getGlobalStorageValue(storageTimeFinish) then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Alguem ja fez essa quest!") else setGlobalStorageValue(storageTimeInit, os.time()) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Parabens você alterou a exp do servidor!") setGlobalStorageValue(storageTimeFinish, getGlobalStorageValue(storageTimeInit)+432000) setGlobalStorageValue(queststatus,1) end end return true end Lembrese de modificar os valores das storages, 0000, 0001, 0002, o numero da storage 0000 você deverá por no baú pelo rme, em UNIQUEID. Agora, volte para actions.xml e adicione: <action uniqueid="0000" event="script" value="arquivo.lua"/> Troque o valor de 0000 para o mesmo que você pois no script. E mude o nome do arquivo.lua tbm. Agora... Em creaturescripts/scripts crie um arquivo .lua e ponha dentro: function onLogin(cid) queststatus = 0000 if getGlobalStorageValue(queststatus) == 0 then setPlayerExtraExpRate(cid, 1.0) setPlayerStorageValue(0003,0) end if getGlobalStorageValue(queststatus) == 1 and getPlayerStorageValue(0003)~=1 then setPlayerExtraExpRate(cid, 2.0) setPlayerStorageValue(0003,1) end if getGlobalStorageValue(queststatus) == 1 and getPlayerStorageValue(0003)==1 then doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Todos do servidor receberam 2x exp extra por terem feito a quest!") end return true end Mude o 0003 para uma outra storage que não utilize em seu servidor, e mude o 0000 para o mesmo numero adicionado em UNIQUEID no RME e no script de action. Depois em login.lua adicione: registerCreatureEvent(cid, "QuestExp") Em creaturescripts.xml adicione: <event type="Login" name="QuestExp" event="script" value="arquivo.lua"/> Altere apenas o nome do arquivo .lua que voce criou na pasta creaturescripts/scripts Reinicia o servidor se ele estava aberto.. e pronto. Deve funcionar =D Se der erro ou não modificar a exp, me avisa. Se der tudo certo, REP+ =D
-
(Resolvido)Erro Quando Player Morre
@Mattch Sempre utilizei dessa maneira, em meus scripts e nunca obtive um erro.. chegar em casa vou testar em meu servidor, porém quase certeza que funciona dessa maneira sim. Visto que a storage2 está dentro da config. sendo assim, config.storage2 mesmo caso no creaturescript, config[1]. Sua lógica só faria sentido se fosse: local config = { [1] = {49607,49608,0000} , [2] = {49608} } Ai sim, para se referir ao segundo numero dentro da table seria config[1][1] ou config[1][2] para o terceiro. =D
-
[Pedido] Porta Key Temporaria.
Então tenta utilizar o gate of expertise. No meu servidor está rodando certinho. Boa sorte
-
(Resolvido)Erro Quando Player Morre
Ok, vou modificar aguarde Pronto vamos tentar agora rsrs : local config = { storage = 49607, storage2 = 49608, tempo = 11, } local positions = {} function onCastSpell(cid, var) local itemid = math.random (118, 118) if getPlayerStorageValue(cid, config.storage) <= 0 then if(getPlayerStorageValue(cid, config.storage2) == 1)then setPlayerStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) setPlayerStorageValue(cid, config.storage2,0) end if getPlayerStorageValue(cid, config.storage2) == 0 then table.insert(positions, getThingPos(cid)) setPlayerStorageValue(cid, config.storage, #positions) doDecayItem(doCreateItem(itemid, getThingPos(cid))) doSendMagicEffect(getThingPos(cid), 3) setPlayerStorageValue(cid, config.storage2,1) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Expiro A Hiraishin Kunai.") setPlayerStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) setPlayerStorageValue(cid, config.storage2,0) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 and getPlayerStorageValue(cid, config.storage2) == 1 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 82) setPlayerStorageValue(cid, config.storage2, 0) setPlayerStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) end end return true end local config = { [1] = {49607} , [2] = {49608} } function onDeath(cid, corpse, deathList) setPlayerStorageValue(cid, config[1], 0) setPlayerStorageValue(cid, config[2], 1) return true end
-
(Resolvido)Erro Quando Player Morre
Cria um arquivo em creaturescripts/scripts e poe dentro: local config = { [1] = {49607} } function onDeath(cid, corpse, deathList) setPlayerStorageValue(cid, config[1], 0) return true end No login.lua: registerCreatureEvent(cid, "onDeathSkill") Em creaturescripts.xml : <event type="death" name="onDeathSkill" event="script" value="arquivo.lua"/> Modifica o arquivo.lua para o nome do arquivo que vc colocou o primeiro código. Imagino que isso vá funcionar, se não funcionar me avisa.
-
(Resolvido)RESOLVIDO Npc Vocation
Só criar um arquivo de NPC, e por dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="The Oracle" floorchange="0" walkinterval="0"> <health now="150" max="150"/> <look typeex="1448"/> <interaction range="3" idletime="30"> <interact keywords="hi" focus="1"> <!--These are the keywords will trigger this interaction--> <keywords>hello</keywords> <keywords>greet</keywords> <response> <action name="script"> <!-- if(getPlayerVocation(cid) ~= 0) then selfSay("SORRY, YOU HAVE ALREADY MADE YOUR CHOICE IN LIFE!") _state.isidle = true return end --> if(getPlayerLevel(cid)) >= 8 then selfSay(getCreatureName(cid) .. ", ARE YOU PREPARED O FACE YOUR DESTINY?") _state.b1 = (isPremium(cid) == true) _state.topic = 1 else selfSay("CHILD! COME BACK WHEN YOU HAVE GROWN UP!") _state.isidle = true end </action> </response> </interact> <interact keywords="yes" topic="1"> selfSay(getCreatureName(cid) .. ", WHAT KIND OF PROFESSIONAL DO YOU WANNA BE?") _stage.topic = 2 </interact> <interact keywords="sorcerer" topic="2"> <response text="A SORCERER! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!"> <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight--> <action name="script"> _state.n2 = 1 _state.topic = 3 </action> </response> </interact> <interact keywords="druid" topic="2"> <response text="A DRUID! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!"> <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight--> <action name="script"> _state.n2 = 2 _state.topic = 3 </action> </response> </interact> <interact keywords="paladin" topic="2"> <response text="A PALADIN! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!"> <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight--> <action name="script"> _state.n2 = 3 _state.topic = 3 </action> </response> </interact> <interact keywords="knight" topic="2"> <response text="A KNIGHT! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!"> <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight--> <action name="script"> _state.n2 = 4 _state.topic = 3 </action> </response> </interact> <!--If the player does not say any profession, repeat our question--> <interact keywords="|*|" topic="2"> <response text="KNIGHT, PALADIN, SORCERER, OR DRUID?"/> </interact> <interact keywords="yes" topic="3"> <response> <!--n1: 1 = carlin, 2 = edron, 3 = thais, 4 = venore--> <!--n2: 1 = knight, 2 = paladin, 3 = sorcerer, 4 = druid--> <action name="script"> selfSay("SO BE IT!") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doPlayerSetVocation(cid, _state.n2) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) </action> <action name="idle" value="1"/> </response> </interact> <interact keywords="bye" focus="0"> <keywords>farewell</keywords> <response text="Good bye. Recommend us, if you were satisfied with our service."/> </interact> <!-- If the event onBusy exists, the npc will make a queue like Tibia, if the event is removed the npc will be able to talk to all customers at the same time without problems. --> <interact event="onBusy"> <response text="WAIT UNTIL IT IS YOUR TURN!"> <action name="addqueue" value="|PLAYER|"/> </response> </interact> <!--This event triggers if the player goes to far away from the npc/logout/idle timeout--> <interact event="onPlayerLeave" focus="0"> <response text="COME BACK WHEN YOU ARE PREPARED TO FACE YOUR DESTINY!"/> </interact> </interaction> </npc> Se der erro me avisa, usei como base o The Oracle. Se ajudar rep+ =D
-
[Pedido] Porta Key Temporaria.
Utiliza Lock door, aquelas que não abrem. Elas ou então tira do seu actions as ID's das portas que se modificam ao clicar. =)
-
[Pedido] Porta Key Temporaria.
function onUse(cid, item, toPos) configdoor1 = { [1] = {x=1740,y=1730,z=6}, -- posição na frente da porta para onde o player vai qnd quiser entrar na quest [2] = {x=1740,y=1732,z=6} -- posição na frente da porta para onde o player vai quando clicar para sair na porta } if item.uid == 8800 then if getPlayerStorageValue(cid, 2091) ~= 1 and item.uid == 8800 then doPlayerSendTextMessage(cid,25,'Você precisa encontrar a chave para a porta primeiro!') doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return false end if getPlayerStorageValue(cid, 89042)~=1 and getPlayerStorageValue(cid, 2091)==1 and item.uid == 8800 and doPlayerRemoveItem(cid, 2091, 1)==true then doTeleportThing(cid, configdoor1[1]) doPlayerSendTextMessage(cid,25,'Você pode pegar sua premiação agora!') doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, 89042, 1) return true end if getPlayerStorageValue(cid, 89042) == 1 and item.uid == 8800 then doPlayerSendTextMessage(cid,25,'Adeus! Impossível entrar novamente!') doTeleportThing(cid, configdoor1[2]) doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, 89042, 0) return true end end return true end Em actions.xml: <action uniqueid="8800" event="script" value="nome_do_arquivo.lua"/> Esse é o script, basta mudar as posições, e adicionar a uniqueID na porta: no caso uid = 8800. E também a storage que diz se ele tem a chave ou não no meu caso era a 2091. Ignore a storage 89042 que é para dizer se ele está dentro ou fora da quest, não precisa mexer. Espero que ajude, se ajudar, rep+ =)
-
(Resolvido)AJUDA NPC
Vou te ajudar, estou desenvolvendo o script. Aguarde um minutinho. -------------------------- Bom, não deve ser igual o do global, porque fiz umas modificações em cima de um que já tinha... Ai os oufits e parte visual você edita depois no arquivo do NPC, e não no script. Nesse script você deverá trocar os nomes das Cidades, e a posição de cada uma. Por favor não altere o nome das variáveis, apenas a palavra que o player deverá dizer para ir aquela cidade, por exemplo: elseif msgcontains(msg, 'town 1') then Você deverá mudar apenas o 'Town 1' entre aspas simples, e só. Segue arquivo .lua que deverá estar dentro da pasta NPC\Scripts Agora, em NPC copie um arquivo qualquer de NPC, e substitua: <npc name="Cpt Sparrow" script="data/npc/scripts/travel_boat.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="75" head="114" body="0" legs="114" feet="0" addons="2"/> </npc> Nesse, você deverá mudar o nome do arquivo, dependendo de como você salvá-lo. Depois no RME adicione o NPC no seu server e teste! Encontrei um sistema Vip que vc mencionou, se a parte de viajar vip não funcionar me avisa. Abrs,
-
(Resolvido)RESOLVIDO Npc Vocation
Você utiliza website, começando todos os players como No Vocation ? Abrs,
-
[AJUDA] Spell bugando e fazendo pegar Red
Seguinte, se for uma spells ONE TARGET ou seja, apenas 1 alvo, o script pode ser feito assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 88) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -35.5, 1, -45.5, 1) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Com tag: <instant name="Nome da Spell" words="palavra magica" lvl="16" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="87" needlearn="0" event="script" value="attack/script_da_magia.lua"> <vocation id="1;5"/> </instant> No seu script você está pegando um local da sua posição até a posição do player, ou seja dando os efeitos em área. Desse jeito que te passei o dano será dado apenas em quem receber o target. Peguei como exemplo o script do exori mort e puis suas formulas. Vê se fica do jeito que você quer. Não adicionei efeito de transição ou seja um efeito de você até o target, se quiser é só adicionar: setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) em baixo de: setCombatParam(combat, COMBAT_PARAM_EFFECT, 88) Espero que ajude, se ajudar, agradece =D