eliaspalermo 0 Postado Abril 10, 2014 Share Postado Abril 10, 2014 PDA 8.54 , Uso OTClient. Eu estava precisando muito de um sistema já existente nos jogos de MMO RPG, para colocar no meu Poketibia. Esse sistema tinha até no Pokemon Arena. Eu não entendo muito dessas paradas de script, mas creio que seja uma coisa não muito complicada de fazer. Eu quero acabar com essa coisa de deslizar o dedo do f1 ao f12 e usar todas as skills de uma só vez. Então queria um sistema de cd que bloqueasse a outra skills pelos segundos de cd dela. EX : Usei Razor Leaf : cd dela é de 6 segundos Então para eu usar novamente a skill ou outra skill, devo esperar 6 segundos. Estou a muito tempo a procura de um sistema desse, mas não acho em canto nenhum, agradeço muito a quem pode me ajudar ! Obrigado desde já ! Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 10, 2014 Share Postado Abril 10, 2014 (editado) Seu move1.lua, por favor? Editado Abril 10, 2014 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Omega 377 Postado Abril 11, 2014 Share Postado Abril 11, 2014 Movido para pedidos e dúvidas - servidores derivados. Por favor, poste qualquer pedido ou dúvida nessa seção na próxima vez. Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Abril 11, 2014 Share Postado Abril 11, 2014 ta se o cara usar solar beam vai ter q esperar 60s pra usar outra skill? cade o sentido nisso? ;x -sem fla q coitado do bulba, vai ser triturado nesses 60s- Link para o comentário Compartilhar em outros sites More sharing options...
MunizFelippe 0 Postado Abril 11, 2014 Share Postado Abril 11, 2014 uahauasushsu isso mesmo que o slicer falou, meio sem sentido isso... Link para o comentário Compartilhar em outros sites More sharing options...
eliaspalermo 0 Postado Abril 11, 2014 Autor Share Postado Abril 11, 2014 Não gente, como eu já falei... é um cd de MMO RPG, eu vou colocar um cd menor pra cada skill é claro '-' Tipo o Digimon Masters Online, os digimons tem cd nas skills de 4 a 7 segundos ! Claro que faz sentido '-' , o pvp fica muito mais demorado e acaba com a coisa de deslizar o dedo e usar todas as skills... Zipter ai está meu move1 move1.zip Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 11, 2014 Share Postado Abril 11, 2014 Hm, seria mais interessante você postar o código direto aqui, se possível. Link para o comentário Compartilhar em outros sites More sharing options...
eliaspalermo 0 Postado Abril 12, 2014 Autor Share Postado Abril 12, 2014 Ai está local msgs = {"use ", ""} function doAlertReady(cid, id, movename, n, cd) if not isCreature(cid) then return true end local myball = getPlayerSlotItem(cid, 8) if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") esta pronto!") return true end local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) if not p or #p <= 0 then return true end for a = 1, #p do if getItemAttribute(p[a], cd) == "cd:"..id.."" then if isInArray({"m1", "m2", "m3"}, n) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (t"..n..") esta pronto!") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") esta pronto!") end return true end end end function onSay(cid, words, param, channel) if param ~= "" then return true end if string.len(words) > 3 then return true end if #getCreatureSummons(cid) == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa de um pokemon para usar as moves.") return 0 end --alterado v2.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke) local it = string.sub(words, 2, 3) local move = movestable[name].move1 if getPlayerStorageValue(mypoke, 212123) >= 1 then cdzin = "cm_move"..it.."" else cdzin = "move"..it.."" --alterado v2.5 end if it == "2" then doPlayerSendTextMessage(cid, 26, "sounds/105.wav") move = movestable[name].move2 elseif it == "3" then move = movestable[name].move3 elseif it == "4" then move = movestable[name].move4 elseif it == "5" then move = movestable[name].move5 elseif it == "6" then move = movestable[name].move6 elseif it == "7" then move = movestable[name].move7 elseif it == "8" then move = movestable[name].move8 elseif it == "9" then move = movestable[name].move9 elseif it == "10" then move = movestable[name].move10 elseif it == "11" then move = movestable[name].move11 elseif it == "12" then move = movestable[name].move12 elseif it == "13" then move = movestable[name].move13 end if isInArray({1,2,3,4,5,6,7,8,9,10,11,12,13}, it) then mLevel = move.level mCD = move.cd mName = move.name mTarget = move.target mDist = move.dist else m = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "t"..it.."") mLevel = tmList[m].level mCD = tmList[m].cd mName = m mTarget = tmList[m].target mDist = tmList[m].dist end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end --if false and getLevel(mypoke) < mLevel then if getLevel(mypoke) < mLevel then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu Pokemon ainda nao sabe usar essa move.") return 0 end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (mCD + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "voce deve esperar "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." segundos para usar "..mName.." novamente.") return 0 end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Voce nao pode atacar em area protegida.") return 0 end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v2.3 end if (mName == "Team Slice" or mName == "Team Claw") and #getCreatureSummons(cid) < 2 then --alterado v2.5 doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return 0 end --alterado v2.6 if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then local target = getCreatureTarget(cid) if isCreature(getMasterTarget(target)) then --alterado v2.6 --alterado v2.5 doSendMagicEffect(getThingPos(target), 211) doSendAnimatedText(getThingPos(target), "TOO BAD", 215) doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false) doSendMagicEffect(getThingPos(target), 211) doFaceCreature(target, getThingPos(mypoke)) return true --alterado v2.6 end end if mTarget == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nao ha pokemon na mira.") return 0 end if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then return 0 end if getCreatureHealth(getCreatureTarget(cid)) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja derrotou seu oponente.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > mDist then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.") return 0 end if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then return 0 end end local newid = 0 if isSleeping(mypoke) or isSilence(mypoke) then --alterado v2.5 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.") return 0 else newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, mCD) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..mName.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v2.6 addEvent(doAlertReady, mCD * 1000, cid, newid, mName, it, cdzin) for i = 2, #summons do if isCreature(summons) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons, mName) --alterado v2.6 end end docastspell(mypoke, mName) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 12, 2014 Share Postado Abril 12, 2014 local msgs = {"use ", ""} function doAlertReady(cid, id, movename, n, cd) if not isCreature(cid) then return true end local myball = getPlayerSlotItem(cid, 8) if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") esta pronto!") return true end local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) if not p or #p <= 0 then return true end for a = 1, #p do if getItemAttribute(p[a], cd) == "cd:"..id.."" then if isInArray({"m1", "m2", "m3"}, n) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (t"..n..") esta pronto!") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") esta pronto!") end return true end end end function onSay(cid, words, param, channel) local storage = 918271 if param ~= "" then return true end if string.len(words) > 3 then return true end if #getCreatureSummons(cid) == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa de um pokemon para usar as moves.") return 0 end --alterado v2.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke) local it = string.sub(words, 2, 3) local move = movestable[name].move1 if getPlayerStorageValue(mypoke, 212123) >= 1 then cdzin = "cm_move"..it.."" else cdzin = "move"..it.."" --alterado v2.5 end if it == "2" then doPlayerSendTextMessage(cid, 26, "sounds/105.wav") move = movestable[name].move2 elseif it == "3" then move = movestable[name].move3 elseif it == "4" then move = movestable[name].move4 elseif it == "5" then move = movestable[name].move5 elseif it == "6" then move = movestable[name].move6 elseif it == "7" then move = movestable[name].move7 elseif it == "8" then move = movestable[name].move8 elseif it == "9" then move = movestable[name].move9 elseif it == "10" then move = movestable[name].move10 elseif it == "11" then move = movestable[name].move11 elseif it == "12" then move = movestable[name].move12 elseif it == "13" then move = movestable[name].move13 end if isInArray({1,2,3,4,5,6,7,8,9,10,11,12,13}, it) then mLevel = move.level mCD = move.cd mName = move.name mTarget = move.target mDist = move.dist else m = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "t"..it.."") mLevel = tmList[m].level mCD = tmList[m].cd mName = m mTarget = tmList[m].target mDist = tmList[m].dist end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end --if false and getLevel(mypoke) < mLevel then if getLevel(mypoke) < mLevel then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu Pokemon ainda nao sabe usar essa move.") return 0 end if getPlayerStorageValue(mypoke, storage) > os.time() then return doPlayerSendCancel(cid, "You need wait "..getPlayerStorageValue(mypoke, storage) - os.time().." second"..getPlayerStorageValue(mypoke, storage) - os.time() > 1 and "s" or "".." to cast this spell.") end --[[if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (mCD + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "voce deve esperar "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." segundos para usar "..mName.." novamente.") return 0 end]]-- if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Voce nao pode atacar em area protegida.") return 0 end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v2.3 end if (mName == "Team Slice" or mName == "Team Claw") and #getCreatureSummons(cid) < 2 then --alterado v2.5 doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return 0 end --alterado v2.6 if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then local target = getCreatureTarget(cid) if isCreature(getMasterTarget(target)) then --alterado v2.6 --alterado v2.5 doSendMagicEffect(getThingPos(target), 211) doSendAnimatedText(getThingPos(target), "TOO BAD", 215) doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false) doSendMagicEffect(getThingPos(target), 211) doFaceCreature(target, getThingPos(mypoke)) return true --alterado v2.6 end end if mTarget == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nao ha pokemon na mira.") return 0 end if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then return 0 end if getCreatureHealth(getCreatureTarget(cid)) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ja derrotou seu oponente.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > mDist then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.") return 0 end if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then return 0 end end local newid = 0 if isSleeping(mypoke) or isSilence(mypoke) then --alterado v2.5 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.") return 0 else newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, mCD) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..mName.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v2.6 addEvent(doAlertReady, mCD * 1000, cid, newid, mName, it, cdzin) for i = 2, #summons do if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons[i], mName) --alterado v2.6 end end docastspell(mypoke, mName) setPlayerStorageValue(mypoke, storage, os.time() + mCD) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Link para o comentário Compartilhar em outros sites More sharing options...
eliaspalermo 0 Postado Abril 12, 2014 Autor Share Postado Abril 12, 2014 Obrigado cara, está funfando perfeitamente ! Mas tipo, enquanto a skill está em cd, se eu tento usar as outras fica aparecendo no chat "m1, m2,m3" e assim as que eu usar... Seria possível tirar isso? Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 12, 2014 Share Postado Abril 12, 2014 Hm, a mensagem de cancel aparece? Link para o comentário Compartilhar em outros sites More sharing options...
eliaspalermo 0 Postado Abril 12, 2014 Autor Share Postado Abril 12, 2014 Que cancel?? Bom eu uso a skill, e enquanto ela ta no cd se eu usar outra vai aparecendo isso ai, somente isso Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Abril 12, 2014 Share Postado Abril 12, 2014 Estranho. Algum erro no console? Link para o comentário Compartilhar em outros sites More sharing options...
eliaspalermo 0 Postado Abril 13, 2014 Autor Share Postado Abril 13, 2014 Não Não, a função dele funfa de boa, mas só que esses "m1,m2,m3" e etc acaba atrapalhando tanto no combat como no chat tendeu? Aeee Zipter eu tava olhando a script, e vi a função que você falou do "cancel" , realmente ela não está funfando, oque tenho que fazer pra funfar? Link para o comentário Compartilhar em outros sites More sharing options...
Techrlz 39 Postado Abril 13, 2014 Share Postado Abril 13, 2014 Opa, antes disso vou adiantar que você vai precissar fazer table para todos os "cds" mas caso mesmo assim você queira configurar todas as tables para todos os "cds" diz que eu faço para você. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados