Seu move1.lua, por favor?
- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Cd de MMO RPG
Editado Abril 10 por zipter98
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Movido para pedidos e dúvidas - servidores derivados.
Por favor, poste qualquer pedido ou dúvida nessa seção na próxima vez.
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

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-
info
Grupo: Campones
Registrado: 05/04/14
Posts: 8
Reputação: 0

uahauasushsu isso mesmo que o slicer falou, meio sem sentido isso...
info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0

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
Hm, seria mais interessante você postar o código direto aqui, se possível.
info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0

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)
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
info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0

Hm, a mensagem de cancel aparece?
info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0

Que cancel??
Bom eu uso a skill, e enquanto ela ta no cd se eu usar outra vai aparecendo isso ai, somente isso
Estranho. Algum erro no console?
info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0








info
Grupo: Campones
Registrado: 18/03/13
Posts: 18
Reputação: 0
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á !