Cd de MMO RPG

eliaspalermo
em Lixeira Pública
  • 1
  • 2

eliaspalermo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/13Posts: 18

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á !

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Seu move1.lua, por favor?

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

ta se o cara usar solar beam vai ter q esperar 60s pra usar outra skill? o.O cade o sentido nisso? ;x -sem fla q coitado do bulba, vai ser triturado nesses 60s-

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

MunizFelippe

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/04/14Posts: 8

uahauasushsu isso mesmo que o slicer falou, meio sem sentido isso...

eliaspalermo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/13Posts: 18

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

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Hm, seria mais interessante você postar o código direto aqui, se possível.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

eliaspalermo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/13Posts: 18

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

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

 

 

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

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

eliaspalermo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/13Posts: 18

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?

post-366361-0-11218100-1397327188_thumb.png

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Hm, a mensagem de cancel aparece?

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

eliaspalermo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/13Posts: 18

Que cancel??

 

Bom eu uso a skill, e enquanto ela ta no cd se eu usar outra vai aparecendo isso ai, somente isso

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Estranho. Algum erro no console?

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

eliaspalermo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/03/13Posts: 18

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?

post-366361-0-04490500-1397391389_thumb.png

Techrlz

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 03/03/14Posts: 239

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ê.

 

 

  • 1
  • 2