Ir para conteúdo

fokus090

Cavaleiro
  • Total de itens

    190
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Tudo que fokus090 postou

  1. Pedido Atendido. Reportado para Moverem! Abraços !
  2. function getMinMaxValues(cid, level, magiclevel) local skill = getPlayerSkillLevel(cid, SKILL_DISTANCE) local min = skill * 2 + level/2 + magiclevel/4 local max = min * math.random(105, 125) / 100 return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getMinMaxValues") A fórmula soma os seguintes valores: Skill de Distance do player multiplicado por 2 Level do player dividido por 2 Magic Level do player dividido por 4 Um Player com Distance 70, Level 40 e Magic Level 5 vai tirar no Mínimo 161, e no Máximo 201 com a fórmula.
  3. fokus090

    Npc Que Da Vip

    Seria útil se você coloca-se seu Sistema Vip para poder-mos lhe ajudar!
  4. Crie um arquivo .lua na pasta "data\movements" e adicione isso nele: local config = { position = {x = 1023, y = 1020, z = 7}, outfit = { [0] = {lookType = 159, lookHead = 0, lookBody = 105, lookLegs = 0, lookFeet = 0}, [1] = {lookType = 160, lookHead = 0, lookBody = 105, lookLegs = 0, lookFeet = 0} } } function onStepIn(cid, item, pos) if isPlayer(cid) and not(getCreatureCondition(cid, CONDITION_OUTFIT) then doSetCreatureOutfit(cid, config.outfit[getPlayerSex(cid)]) doTeleportThing(cid, config.position) end return true end Em Movements.xml adicione essa linha nele: <movevent type="StepIn" actionid="2011" event="script" value="Teleport Tile.lua"/> Explicações: 2011 será o ActionID que você ira Colacar no item que estara localizado em seu MAPA. Em Position, você colocara a coordenada para a qual o Player sera teletransportado. Creditos :. Alkz
  5. function onCastSpell(cid, var) if #getCreatureSummons(cid) > 1 then doPlayerSendCancel(cid, "You can only summon one creature.") return false end local summon, useCreateMonster = 0, false if type(doSummonMonster) then summon = doSummonMonster(cid, "Zodom") if summon == 3 then doPlayerSendCancel(cid, "There is not enough room to summon a creature.") return false end summon = getCreatureSummons(cid) summon = summon[#summon] if isCreature(summon) and getCreatureMaster(summon) == cid then doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE) return true else useCreateMonster = true end else useCreateMonster = true end if useCreateMonster then local pos = getThingPos(cid) pos.y = pos.y + 1 summon = doCreateMonster("Zodom", pos, false) if summon == true then doPlayerSendCancel(cid, "There is not enough room to summon a creature.") return false end end if not isCreature(summon) then return false end doConvinceCreature(cid, summon) if getCreatureMaster(summon) ~= cid then doRemoveCreature(summon) return false end doSendMagicEffect(getThingPos(summon), CONST_ME_MAGIC_BLUE) return true end
  6. Poxa Vida! Da um Olhada aí Abaixo :. LINK | LINK | LINK Abraços !
  7. fokus090

    Sistema De Tempo

    Obrigado pela ajuda. REP+ Pedido Atendido, Reportado para Moverem!
  8. fokus090

    Sistema De Tempo

    Esse é o Sistema de Tempo (Solo) que eu criei. Bem básico, mas funciona da maneira que eu queria. Gostaria da ajuda de alguem para poder torna-lá funcional para um Grupo tambem. function onStepIn(cid) addEvent(doMsg, 1*1000, cid) -- Avança para a Contagem setPlayerStorageValue(cid, 11110, 1) -- Minutos setPlayerStorageValue(cid, 11111, 20) -- Segundos return TRUE end function doMsg(cid) local M = 11110 -- Minutos local S = 11111 -- Segundos local City = {x=443, y=500, z=8} -- Fora da Quest if getPlayerStorageValue(cid, M) > 0 and getPlayerStorageValue(cid, S) > 0 then setPlayerStorageValue(cid, S, getPlayerStorageValue(cid, S) - 1) doPlayerSendCancel(cid, "Tempo: " .. getPlayerStorageValue(cid, M) .. " : " .. getPlayerStorageValue(cid, S) .. ".") addEvent(doMsg, 1*1000, cid) elseif getPlayerStorageValue(cid, M) > 0 and getPlayerStorageValue(cid, S) == 0 then setPlayerStorageValue(cid, S, getPlayerStorageValue(cid, S) + 60) setPlayerStorageValue(cid, M, getPlayerStorageValue(cid, M) - 1) doPlayerSendCancel(cid, "Tempo: " .. getPlayerStorageValue(cid, M) .. " : " .. getPlayerStorageValue(cid, S) .. ".") addEvent(doMsg, 1*1000, cid) elseif getPlayerStorageValue(cid, M) == 0 and getPlayerStorageValue(cid, S) > 0 then setPlayerStorageValue(cid, S, getPlayerStorageValue(cid, S) - 1) doPlayerSendCancel(cid, "Tempo: " .. getPlayerStorageValue(cid, M) .. " : " .. getPlayerStorageValue(cid, S) .. ".") addEvent(doMsg, 1*1000, cid) elseif getPlayerStorageValue(cid, M) == 0 and getPlayerStorageValue(cid, S) == 0 then doPlayerSendTextMessage(cid, 22, "O Tempo Acabou!") addEvent(doTeleportThing, 3000, cid, City) return TRUE end end Sua teoria ao meu vê não daria certo, porquê no meu Script há alguns "AddEvent" que faz com que o Script retorne inúmeras vezes. Abraços !!
  9. local sum = {"Demon","Troll","Bug", "Dragon", "Cyclops","Hydra","Rat", "Toad", "Water Element"} function onSay(cid, words, param) local mana = 700 if not isInArray(sum, param) then doPlayerSendCancel(cid, "Você não pode summonar este monstro") return true end if #getCreatureSummons(cid) > 1 then doPlayerSendCancel(cid, "Você já summonou 2 monstro") return true end doSummonMonster(cid, param) doCreatureAddMana(cid, -mana) return true end Transformar isso em uma Spells deve ser complicado. Porque você precisa digitar o nome do monstro no final (Ex: /m Troll). Se fosse algo aleatório, tipo, o Gm fala a Magia e o Monstro summonado aparece de forma aleatória, até poderia dar certo. Abraços !!
  10. Acredito que o Motivo do Report é porquê o Pedido do usuário não tem nada á vê com .Lua ou algo semelhante. Resumindo :. Área Incorreta!
  11. fokus090

    Sistema De Tempo

    Primeiramente, agradeço muito por ter respondido ao meu pedido. Tenho apenas UMA pergunta sobre o seu Script :. Onde eu configuro no Script para por o Player ter 5 Min. ou 10 Min para finalizar a Quest? Eu fiz alguns protótipos aqui, mas minha dificuldade é sempre na hora de 'diminuir o tempo'. Porquê, se eu usar GlobalStorage, não sei fazer o tempo 'diminuir apenas 1 segundo'. Porque o Script é ativado pelo Movements. Então todos os players do Grupo passa pelo mesmo Tile. Então se no Script eu colocar pra diminuir 1 segundo, todos vão diminuir 1 segundo ao mesmo tempo, dependendo de quantos players tem dentro da Quest. Vou dar um exemplo pra ficar mais claro:. if getPlayerStorageValue(cid, hours) == 0 then doPlayerSendCancel(cid, "Tempo: " .. getPlayerStorageValue(cid, hours) .. ".") setPlayerStorageValue(cid, hours, getPlayerStorageValue(cid, hours) - 1) addEvent(doMsg, delay*1000, cid) No exemplo á cima, é para diminuir o 1 segundo (Value) corretamente. Mas se tiver 3 Players na Party, então ao invés de 1 segundos, sumiria 3 segundos. Já tentei por para apenas o Líder acionar essa diminuição, mas aí se o Lider morrer durante á Quest estragaria o Tempo. Então eu estou sem idéias. Sua impolgação só me motiva á continuar Postando Pedidos. shuSHuhsuHSUS OBS: A Quest tem como FOCO o trabalho em Grupo. Agradeceria se pudesse me dar uma ajudinha nesse Sistema.Mas para facilitar á sua Vida, estou Preso apenas á uma barreira. Eu quero diminuir o segundo de maneira ordenada. É como o exemplo que citei alí em cima (se tiver 3 Players na Party, então ao invés de 1 segundos, sumiria 3 segundos). Gostaria de uma idéia de resolver isso. Abraços e Obrigado!
  12. Reportado para Moverem. Abraços !!
  13. Não sei de onde você tirou isso, mas não deu certo não. Espero que tenha outra sugestão.
  14. Eu devo ser muito Noob mesmo, mas eu não estou conseguindo abrir o Client. Arquivos estranhos no Download "Pokemon Venetta B". Numca ví antes. Ao tentar executar o .exe sempre aparece "FATAL ERRO - Unable to add modules directory to the search path". Se alguem puder ajudar eu agradeço, gostaria muito de testar o servidor. Abraços!!
  15. Qual versão você usa? Eu testei o Script do Brun123 e deu tudo certo. Aqui vai a TAG: <action actionid="56789" event="script" value="NomeDoArquivo.lua"/> Na Alavanca, coloque a Action "56789". Testa aí! Abraços !!
  16. Créditos : Jhon992 local quantSqm = 3 -- quantidade de sqms function teleportPlayer(cid, position) if (isPlayer(cid)) then local o = 1 local positions = {} for i=1, quantSqm do if getPlayerLookDir(cid) == 0 then position = {x=position.x, y=position.y-1, z=position.z} elseif getPlayerLookDir(cid) == 1 then position = {x=position.x+1, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then position = {x=position.x, y=position.y+1, z=position.z} elseif getPlayerLookDir(cid) == 3 then position = {x=position.x-1, y=position.y, z=position.z} end if isWalkable(position) then o = o+1 end positions[#positions+1] = position end if o > quantSqm then doTeleportThing(cid, position) for i=1, #positions do doSendMagicEffect(positions[i], CONST_ME_TELEPORT) end return true else doPlayerSendCancel(cid, "Você não pode atravesar isso!") return false end end end function isWalkable(pos, creature, pz, proj) -- nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end local creature = getTopCreature(pos) if creature.type > 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onCastSpell(cid, var) if teleportPlayer(cid, getPlayerPosition(cid)) then return true end end OBS: Ele salta para dentro da PZ. Não sei consertar. Espero que outra pessoa possa te ajudar. Créditos : yazoo (######) local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) arr = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function abs(i) if(i>0) then return i else return (i*(-1)) end end function onCastSpell(cid, var) pos=getPlayerPosition(cid) player = getThingfromPos({x=pos.x,y=pos.y,z=pos.z,stackpos= 253}) raio=5 -- alcance do buraco negro i=((pos.x)-raio) while(i<=((pos.x)+raio)) do j=((pos.y)-raio) while(j<=((pos.y)+raio)) do player=getThingfromPos({x=i,y=j,z=pos.z,stackpos=2 53}) if(((getPlayerLevel(player.uid)>0) or (isCreature(player.uid)==1))and ((abs(i-(pos.x)) > 1) or (abs(j-(pos.y)) > 1))) then -- calcula novo X if(i<pos.x) then newx=i+1 elseif(i==pos.x) then newx=i else newx=i-1 end -- calcula novo Y if(j<pos.y) then newy=j+1 elseif(j==pos.y) then newy=j else newy=j-1 end npos={x=newx,y=newy,z=pos.z} doSendMagicEffect(npos,12) doTeleportThing(player.uid,npos) end j=j+1 end i=i+1 end doCombat(cid, combat, var) end OBS: Coloque a área desejada dentro do "arr". Abraços !!
  17. Não entendi muito bem, desculpe. Explique melhor que eu tentarei ajudar. Abraços!
  18. Usei como base o Anel com ID "2124" Em 'Movements/Scripts' crie um arquivo .lua com o nome de anel e cole isso dentro dele: function onEquip(cid, item, slot) doRemoveCondition(cid, CONDITION_PARALYZE) doSendMagicEffect(getPlayerPosition(cid),13) -- effect addEvent(Paralizy, 1*100, cid) return TRUE end function Paralizy(cid) local ringID = 2124 if getPlayerSlotItem(cid, 9).itemid == ringID then doRemoveCondition(cid, CONDITION_PARALYZE) doSendMagicEffect(getPlayerPosition(cid),13) addEvent(Paralizy, 1*1000, cid) end return TRUE end em Movements.xml adicione isso: <movevent type="Equip" itemid="2124" slot="ring" event="script" value="anel.lua"/>
  19. Tenho um "Sistema de Tempo" em mente mas não consigo desenvolve-lo. Gostaria que pudesse me ajudar. A idéia é colocar um "Tempo" para ficar dentro da Quest. Quando o 'tempo acabar', eles são 'Teleportados para fora'. O Sistema precisa de duas áreas de atuação. Uma para quem "Não está em Grupo (Solo)". E outra para "Quem possue um Grupo". A idéia é simples ~~ Ao Pisar no "Tile", o Jogador é 'Teleportado para Dentro da Quest'. Nisso ele ganha um tempo (5 minutos por exemplo) para finalizá-la. O Tempo eu quero que apareça á 'todo instante' para o Jogador. Para ele saber quanto tempo está faltando. Algo tipo isso: doPlayerSendCancel(cid, "Tempo: " .. getPlayerStorageValue(cid, STORAGE) .. ".") A Mensagem no cancel aparecerá sempre que se passar "1 segundo". Quando o Tempo acabar, o Jogador é 'Teleportado para fora da Quest'. Quero que esse sistema funcione para o "Grupo" também, seguindo o mesmo enredo. O Jogador do Grupo passa pelo Tile, todo o Grupo vai pra dentro da Quest e todos ganham "O mesmo tempo". Quando o tempo acabar, todos vão para fora da Quest. Por favor, me ajudem nessa idéia. Preciso muito dela! Abraços!
  20. fokus090

    Functions

    Obrigado pelas Respostas. Abraços!
  21. fokus090

    Functions

    Eu pequena Duvida pessoal... Eu estou fazendo alguns Scripts em Movements, e esses Scripts tem bastantes Functions dentro deles. Eu queria saber se tem algum problema colocar tantas Functions em um Script. Cada Function faz coisas bem bobas. São bem pequenas. Mas são Muitas!. Então eu queria saber se tem algum problema. E só isso mesmo! Abraços!
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...