Postado Março 5, 2021 4 anos function onStepIn(cid, item, position, fromPosition) local config = { [18901] = {dir = WEST, sqm = 6}, -- esquerda [18902] = {dir = EAST, sqm = 5} } function irParaPos(cid, dir) doCreatureSetLookDirection(cid, dir) return doMoveCreature(cid, dir) end if not isPlayer(cid) then return true end local ret = config[item.actionid] if ret then doCreatureSetNoMove(cid, true) for i = 1, ret.sqm do addEvent(irParaPos, i*200, cid, ret.dir) addEvent(doCreatureSetNoMove, ret.sqm*200, cid, false) end end return true end Neste caso ele vai "andar" sqm por sqm e não vai poder se mexer, e vai olhar em direção a direção correta... Editado Março 5, 2021 4 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Março 7, 2021 4 anos Em 05/03/2021 em 16:16, Vodkart disse: function onStepIn(cid, item, position, fromPosition) local config = { [18901] = {dir = WEST, sqm = 6}, -- esquerda [18902] = {dir = EAST, sqm = 5} } function irParaPos(cid, dir) doCreatureSetLookDirection(cid, dir) return doMoveCreature(cid, dir) end if not isPlayer(cid) then return true end local ret = config[item.actionid] if ret then doCreatureSetNoMove(cid, true) for i = 1, ret.sqm do addEvent(irParaPos, i*200, cid, ret.dir) addEvent(doCreatureSetNoMove, ret.sqm*200, cid, false) end end return true end Neste caso ele vai "andar" sqm por sqm e não vai poder se mexer, e vai olhar em direção a direção correta... Existe uma maneira de fazer com que pisar no chão o levará um degrau acima? em vez de usar teletransporte .. em esse scripts? algo semelhante a uma escada que quando você clica leva você para cima sem usar um teletransporte, em movements. algo assim, mas eu quero passar para movements. local UP_FLOORS = {1386, 3678, 5543, 8599, 10035, 13010} local FIELDS = {1497, 1499, 11095, 11096} local DRAW_WELL = 1369 function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == DRAW_WELL and item.actionid ~= 100) then return false end local check = false fromPosition.stackpos = STACKPOS_GROUND if(isInArray(UP_FLOORS, item.itemid)) then fromPosition.z = fromPosition.z - 1 fromPosition.y = fromPosition.y + 1 if(doTileQueryAdd(cid, fromPosition, 38) ~= RETURNVALUE_NOERROR) then local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD) if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then fromPosition.y = fromPosition.y - 2 else check = true end end else fromPosition.z = fromPosition.z + 1 end if(not check and doTileQueryAdd(cid, fromPosition, 38) ~= RETURNVALUE_NOERROR) then local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD) if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then return false end end local pos, dir = getCreaturePosition(cid), SOUTH if(pos.x < fromPosition.x) then dir = EAST elseif(pos.x == fromPosition.x) then if(pos.y == fromPosition.y) then dir = getCreatureLookDirection(cid) elseif(pos.y > fromPosition.y) then dir = NORTH end elseif(pos.x > fromPosition.x) then dir = WEST end doTeleportThing(cid, fromPosition, false) doCreatureSetLookDirection(cid, dir) return true end
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.