-
Total de itens
26 -
Registro em
-
Última visita
Tudo que brainless postou
-
ok, agora posta pra mim o conteúdo do seu arquivo data\movements\scripts\arena.lua ^^
-
só acrescentando, já existe o TFS 3.1 final (superior às versões beta e alpha) http://www.xtibia.com/forum/84-Tfs-31-Official-t108457.html
-
tem, se vc usa SVN, o link é esse: http://svn.otland.net/public/forgottenserver/tags/0.3.1pl2/
-
Como Vocês Pronunciam As Spells?
tópico respondeu ao wedneyyuri de brainless em Notícias e Discussões - Tibia Global
existe também as variações echôri e echóri =) -
vc provavelmente criou um arquivo .xml (kra nunk mexi com arena então to boiando bonito mas sei como solucionar o erro =D) que tem a seguinte expressão script="lib/movements.lua" se eu estiver certo, basta adicionar uma / antes ficando script="/lib/movements.lua" se der o mesmo erro vc também pode tentar script="/data/lib/movements.lua"
-
se não me engano, se vc utilizar a ferramenta pvpTool no map editor, akele tile passa a ser parte de uma 'arena' e morrendo lá vc não perde nada (só aol) faça o teste
-
eu axo q outra alternativa seria substituir todas as ocorrencias de doPlayerRemoveItems por doPlayerRemoveItem(cid,item,count) sem o S
-
ta faltando MUITA informação kra =\ o erro completo no console... qual o nome desse arquivo q vc postou, onde ele está, distro do server e acredito eu que ele não tá completo tb
-
antes depois aproveite e dê uma olhada no Easy Oracle by Brainless http://www.xtibia.com/forum/Easy-Oracle-t108504.html
-
config.lua localize troque por
-
data\npc\npc.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Alto-falante" script="data/npc/scripts/alto falante.lua" walkinterval="2000" floorchange="0" access="6"> <health now="150" max="150"/> <look type="134" head="57" body="59" legs="40" feet="76" corpse="2212"/> </npc> data\npc\scripts\alto falante.lua local cost = 100 -- custo do serviço local broadcastCommand = '/b' function broadcastIt(cid, message, keywords, parameters, node) if (doPlayerRemoveMoney(cid,cost) == TRUE) then selfSay(broadcastCommand..message) else selfSay('I\'m sorry, but you don\'t have the money.') end end 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 npcHandler:setMessage(1,'Hi, |PLAYERNAME|. I can {broadcast} any message for '..cost..'gps') node = keywordHandler:addKeyword({'broadcast'},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text='What do you want to broadcast?'}) node:addChildKeyword({},broadcastIt,{npcHandler=npcHandler}) npcHandler:addModule(FocusModule:new()) fiz na correria e não testei... mas posta a resposta que chegando no serviço eu te respondo
-
bom, este oracle é mais pra quem tem server grande, e frequentemente adiciona novas cidades, ele traz a facilidade de configurar uma nova cidade ou vocations personalizadas -- AREA EDITÁVEL local Cities = { -- {id,'nome',x,y,z,'premium/free'} {1,'Varak',242,429,12,'premium'}, {2,'Rhyves',159,387,6,'free'}, {3,'Jorvik',469,172,7,'free'}, } local Vocations = { -- {id,'name'} {2,'druid'}, {4,'knight'}, {3,'paladin'}, {1,'sorcerer'}, } local phrases = { -- event = 'phrase', noLevel = 'CHILDREN! COME BACK WHEN YOU\'VE GROWN UP!', greet = 'HELLO, |PLAYERNAME|. ARE YOU PREPARED TO FACE YOUR DESTINY?', askVoc = 'WHAT VOCATION YOU WANT TO BE? ', confirmVoc = 'ARE YOU SURE? THIS DECISION IS IRREVERSIBLE.', askCity = 'DO YOU WANT TO LIVE IN ', confirmCity = {'I\'LL TURN YOU INTO A ',' AND LEAVE YOU IN ',' RIGHT?'}, endMessage = 'GOOD LUCK IN YOUR JOURNEY!', playerDecline = 'COME BACK WHEN YOU FEEL PREPARED', } -- FIM DA ÁREA EDITÁVEL local function mainMe(cid, message, keywords, params, node) doPlayerSetVocation(cid, params.voc[1]) doPlayerSetTown(cid, params.cit[1]) params.npcHandler:releaseFocus(cid) local tmp = getCreaturePosition(cid) doTeleportThing(cid, params.cit[3]) doSendMagicEffect(tmp, CONST_ME_POFF) doSendMagicEffect(params.cit[3], CONST_ME_TELEPORT) end 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 onThink() npcHandler:onThink() end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) if (not npcHandler:isFocused(cid)) then return false end if getPlayerLevel(cid) < 8 then npcHandler:say(phrases.noLevel,cid) npcHandler:releaseFocus(cid) return false end end local cityList = '' local ableCity = {} local node2 = {} local node3 = {} local node4 = {} local pos = {} for i=1,#Cities do pos = {x=Cities[i][3],y=Cities[i][4],z=Cities[i][5]} if (isPremium(cid) == TRUE) then ableCity[#ableCity+1] = {Cities[i][1],Cities[i][2],pos} elseif (Cities[i][6] == 'free') then ableCity[#ableCity+1] = {Cities[i][1],Cities[i][2],pos} end end if #ableCity > 1 then cityList = '{'..ableCity[1][2]..'}' end for i=2,#ableCity-1 do cityList = cityList..', {'..ableCity[i][2]..'}' end phrases.askCity = string.upper(phrases.askCity..cityList..' or {'..ableCity[#ableCity][2]..'}?') local VocList = '{'..Vocations[1][2]..'}' for i=2,#Vocations-1 do VocList = VocList..', {'..Vocations[i][2]..'}' end phrases.askVoc = string.upper(phrases.askVoc..VocList..' or {'..Vocations[#Vocations][2]..'}?') keywordHandler:addKeyword({'no'},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,reset=true,text=phrase s.playerDecline}) local node1 = keywordHandler:addKeyword({'yes'},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text=phrases.askVoc}) for i=1,#Vocations do node2[i] = node1:addChildKeyword({Vocations[i][2]},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text=phrases.confirmVo c}) node2[i]:addChildKeyword({'no'},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text=phrases.askVoc,mo veup=1}) node3[i] = node2[i]:addChildKeyword({'yes'},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text=phrases.askCity}) for j=1,#ableCity do askCity = string.upper(phrases.confirmCity[1]..Vocations[i][2]..phrases.confirmCity[2]..ableCity[j][2]..phrases.confirmCity[3]) node4[j] = node3[i]:addChildKeyword({string.lower(ableCity[j][2])},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text=askCity}) node4[j]:addChildKeyword({'no'},StdModule.say,{npcHandler=npcHandler,onlyFocus=true,text=phrases.askCity,m oveup=1}) node4[j]:addChildKeyword({'yes'},mainMe,{voc=Vocations[i],cit=ableCity[j],npcHandler=npcHandler}) end end npcHandler:setMessage(1,phrases.greet) npcHandler:addModule(FocusModule:new()) para adicionar uma nova cidade, bastar ir dps da última e adicionar {id no map editor, nome da cidade, x, y, z, free} e pronto, seu oracle já está pronto pra oferecer a nova cidade! mesmo que não usem, comentem :smile_positivo:
-
ele tá "perfeito" é a versão final.. não é mais beta... se for encontrado bug é coisa normal que todo server tem, aí é só reportar pra galera da equipe corrigir... to usando pra testes quando vou ajudar a galera da sessão de dúvidas de script e tá se portando MUITO bem tanto no vista quanto no XP
-
Normalmente não testo os scripts... só quando algo começa a dar muita dor de cabeça (3 ou 4 tentativas sem sucesso) aí eu faço testes e posto apenas o resultado final outro errinho, mas este é coisa de aprendizado percebeu que vc montou uma linha de "parameters" ? então.. ela não é a toa não... é pra usar quando vc chama uma função utilizando addEvent(function, delayTime, parameters) TODAS as variáveis que você usa são enviadas dentro de parameters{} em forma de array ficaria assim então: addEvent(onCastSpell1,100,parameters) addEvent(onCastSpell2,200,parameters) addEvent(onCastSpell3,300,parameters) addEvent(onCastSpell4,400,parameters) addEvent(onCastSpell5,500,parameters) as funções devem ser mudadas para local function onCastSpell[b]X[/b](parameters) doCombat(parameters.cid,parameters.combatX,parameters.var) end teste e me dê uma resposta... agora, se me permite, se deseja trabalhar com estágios, sugiro que aprenda a programar utilizando arrays e loopings, além de o script ficar muito mais limpo, esta edição que vc vai ter que fazer em 3 setores diferentes, por 5 vezes, vc faria em apenas um lugar, apenas uma vez. o script ficaria assim: local myCombat = {} local areas = { { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} }, { {1, 1, 1, 1, 1}, {1, 0, 0, 0, 1}, {1, 0, 2, 0, 1}, {1, 0, 0, 0, 1}, {1, 1, 1, 1, 1} }, { {1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 2, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1}, [1, 1, 1, 1, 1, 1, 1} }, } areas[4] = areas[2] areas[5] = areas[1] function castMySpell(param) doCombat(param.cid,param.combat,param.var) end for i=1,5 do myCombat[i] = createCombatObject() setCombatParam(myCombat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(myCombat[i], COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatFormula(myCombat[i], COMBAT_FORMULA_SKILL, 1, 0, 2, 0) setCombatArea(myCombat[i],createCombatArea(areas[i])) param = {cid=cid,var=var,combat=myCombat[i]} addEvent(castMySpell,i*100,param) end vê como fica mais limpo?? mas matenha o seu até ficar claro como funcionam as funções OK? dando errado ou não, poste a resposta por favor
-
falha simples: troque por {1,1,1,1,1,1,1}
-
data\movements\movements.xml ID do item vocations que podem usar
-
The Forgotten Server Versão: 3.1 Patch: 2 Codename: Crying Damson Protocolo: 8.4 Onde reportar Bugs: aqui (em inglês) DLL Files: http://www.xtibia.com/forum/Todas-Dlls-Aqui-t50030.html Changelog: link direto Sources: Online / Download com Tortoise SVN Console Version: Scan / Download Gui Version: Scan / Download Via OTLand
-
http://www.xtibia.com/forum/Melhorando-Os-...rv-t104292.html
-
[scripts,mapping]criando Tile Para Area P.a
tópico respondeu ao Henrique Moura de brainless em Lixeira Pública
se o seu ot tiver o arquivo data\globals.lua mande localizar, veja se existe a função "isPremium(cid)" se o seu ot tiver o arquivo data\lib\function.lua é certeza que terá a função isPremium(cid) aí basta fazer algumas poucas alterações no script do MUTANO: original Corrigido function onStepOut(cid, item, pos) if (not isPremium(cid)) then doMoveCreature(cid, NORTH) doCreatureSay(cid, "Compre VIP para passar aqui.", TALKTYPE_ORANGE_1) else doMoveCreature(cid, SOUTH) end end -
[scripts] Como Criar Aol Com Duas Ou Mais Cargas?
tópico respondeu ao Henrique Moura de brainless em Lixeira Pública
desconfio que não vá dar certo mas, não custa tentar arquivo data\items\items.xml procure por adicione a linha <attribute key="charges" value="2" /> antes de </item> -
antes de tudo, informo que tem que ser feito com um monstro imóvel onStepIn(cid,item,pos,fromPos) local monster = 'Training Monk' local spawn = {x=100,y=100,z=7} checkpos = {x=spawn.x,y=spawn.y,z=spawn.z,stackpos=256} if (getThingFromPosition(checkpos) == getCreatureByName(monster)) then return false end doSummonCreature(monster,spawn) end algumas considerações trainer e trainer3 possuem o mesmo valor... dispense a ambiguidade, trabalhe apenas com 'trainer' esta checagem é redundante... este script SÓ SERÁ CHAMADO se a action id for 20001, logo, esta condição SEMPRE retornará VERDADEIRO particularmente não entendi esta checagem, se o valor retornado for um monstro, vc causará um erro ao tentar pegar o ITEMid de uma CREATURE por fim, poste a mesnagem de erro COMPLETA do console, estão faltando as informações da linha que está causando o erro
-
vc detalhou tanto, e acabou faltando os detalhes que realmente importam =\ tente desenhar no paint, o char, e as áreas de efeito, os estágios e poste a imagem. cole aqui, o conteúdo da spell e a mensagem de erro que aparece no console as vezes, foi um comandinho que faltou e sua spell está correta resumindo eu preciso de 1. imagem explicando a área de efeito da magia: 2. conteúdo do arquivo da spell 3. mensagem de erro do console
-
vc deve ter percebido que eu não gosto muito de npc's em modo CreatureSayCallback né =) então vai aí minha sugestão local keywords {'change','piece','four','amulet'} local phrases = { tradeMsg = 'I can fix all the four pieces of the broken {amulet} into one!', fourpobaMsg = 'Do you want me to fix all the four pieces of that broken amulet?', hasNoMsg = 'You need all four pieces of the broken amulet to get all, or I can\'t fix it!', noMsg = 'I have no time, I\'m a busy man, LEAVE!', startWorking = 'Here we go! Come back in 24 hours to get your necklace.', working = 'Wait until your paste is ready, is a delicate work.', done = 'Take your necklace, it was hard but it was perfect.', } 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 npcHandler:addKeyword({'fix'}, StdModule.say, {npcHandler=npcHandler,onlyFocus=true,text=phrases.tradeMsg}) local node = '' for i=1,#keywords do node = npcHandler.addKeyword({keywords[i]},StdModule.say, {npcHandler=npcHandler,onlyFocus=true,text=phrases.fourpobaMsg}) node:addChildKeyword({'yes'},npcActions,{}) node:addChildKeyword({'no'},StdModule.say, {npcHandler=npcHandler,onlyFocus=true,text=phrases.noMsg,reset=true}) end function npcActions() if getPlayerStorageValue(cid,3218) == nil then local parts = 0 for i=8262,8265 do if getPlayerItemCount(cid,i,1) then parts = parts + 1 end end if parts == 4 then for i=8262,8265 do getPlayerTakeItem(cid,i,1) end setPlayerStorageValue(cid,3218,os.time()+24*60*60) selfSay(phrases.startWorking,cid) else selfSay(phrases.hasNoMsg,cid) end elseif getPlayerStorageValue(cid,3218) < os.time() then selfSay(phrases.working,cid) else selfSay(phrases.done,cid) doPlayerAddItem(cid,8266,1) end npcHandler:resetNpc() end npcHandler:addModule(FocusModule:new()) se não der certo, ou preferir manter o seu, o que eu ACHO que esteja causando os erros são os seguintes pontos: apague TODO o trecho em negrito mude para true boa sorte. Outro ponto que é interessante ressaltar, é a contagem da criação do amuleto, armazenada em um evento caso seu server caia, todos que estiverem com amuleto em espera, perderão os itens entregues ao npc, e não terão dirieto a receber seu amuleto de volta recomendo que faça o storage do tempo em banco de dados substituindo addEvent(recompensa, 86400000, params) por setPlayerStorageValue(cid,storageId,os.time()+24*60*60) e a checagem da seguinte maneira não falou com o npc amuleto em espera amuleto pronto
-
tira a primeira linha deixa só
-
Npc De Addon Não Vende Alguns Addons, Os Outros Vende Perfeitamente!
tópico respondeu ao gnomow157 de brainless em Lixeira Pública
socoooorro!! hauhauhauhau tente usar o script do alisson linneker: http://www.xtibia.com/forum/npcaddon-Por-I...ts-t104419.html
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.