Ir para conteúdo

Natacao Perfeita!


Forcera

Posts Recomendados

Isso mesmo! sistema de natacao. Vi um aqui no Forum, mais ele quando saia da agua ficava com outfit de Citizen.

Mais esse voce voltara para o outfit anterior

 

PS: Tirei esse script de um outro forum. mais estava tudo errado. pois o player conseguia ficar nadando pelo server todo :boos:

Vamos la!?

 

data\movements\movements.xml - Add isso la dentro:

<movevent event="StepIn" actionid="3333" script="swimm.lua"/>

 

data\movements\scripts - cria um arquivo la dentro chamado "swimm.lua" e insira isso dentro:

 

function onStepIn(cid, item, position, fromPosition)

swimvalue = 3330 --storagevalue to check

diveroutfit = { lookType = 267, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0 }

 

standardoutfit = { lookType = getPlayerStorageValue(cid, 3331), lookHead = getPlayerStorageValue(cid, 3332), lookBody =

 

getPlayerStorageValue(cid, 3333), lookLegs = getPlayerStorageValue(cid, 3334), lookFeet = getPlayerStorageValue(cid, 3335), lookAddons =

 

getPlayerStorageValue(cid, 3336) }

isswimming = getPlayerStorageValue(cid, swimvalue)

if isPlayer(cid) then

if (isswimming == -1) or (isswimming == 2) then

pozycja = {x = 124, y = 58, z= 7}

if item.itemid == 4632 then

pos = {x = position.x, y = position.y - 2, z = position.z}

elseif item.itemid == 4633 then

pos = {x = position.x - 2, y = position.y, z = position.z}

elseif item.itemid == 4634 then

pos = {x = position.x, y = position.y + 2, z = position.z}

elseif item.itemid == 4635 then

pos = {x = position.x + 2, y = position.y, z = position.z}

elseif item.itemid == 4636 then

pos = {x = position.x + 2, y = position.y + 2, z = position.z}

elseif item.itemid == 4637 then

pos = {x = position.x - 2, y = position.y + 2, z = position.z}

elseif item.itemid == 4638 then

pos = {x = position.x + 2, y = position.y - 2, z = position.z}

elseif item.itemid == 4639 then

pos = {x = position.x - 2, y = position.y - 2, z = position.z}

elseif item.itemid == 4640 then

pos = {x = position.x + 2, y = position.y + 2, z = position.z}

elseif item.itemid == 4641 then

pos = {x = position.x - 2, y = position.y + 2, z = position.z}

elseif item.itemid == 4642 then

pos = {x = position.x + 2, y = position.y - 2, z = position.z}

elseif item.itemid == 4643 then

pos = {x = position.x - 2, y = position.y - 2, z = position.z}

end

setPlayerStorageValue(cid, 3331, getCreatureOutfit(cid).lookType)

setPlayerStorageValue(cid, 3332, getCreatureOutfit(cid).lookHead)

setPlayerStorageValue(cid, 3333, getCreatureOutfit(cid).lookBody)

setPlayerStorageValue(cid, 3334, getCreatureOutfit(cid).lookLegs)

setPlayerStorageValue(cid, 3335, getCreatureOutfit(cid).lookFeet)

setPlayerStorageValue(cid, 3336, getCreatureOutfit(cid).lookAddons)

setPlayerStorageValue(cid, swimvalue, 1)

doSetCreatureOutfit(cid, diveroutfit, 60000)

 

if item.actionid == 3333 then

player1pos = {x = position.x + 2, y = position.y + 2, z = position.z}

player1 = getThingfromPos(player1pos)

doTeleportThing(cid, player1pos)

doSendMagicEffect(player1pos, CONST_ME_WATERSPLASH)

end

end

if isswimming == 1 then

if item.itemid == 4632 then

dir = 2

elseif item.itemid == 4633 then

dir = 1

elseif item.itemid == 4634 then

dir = 0

elseif item.itemid == 4635 then

dir = 3

elseif item.itemid == 4636 then

dir = 3

elseif item.itemid == 4637 then

dir = 1

elseif item.itemid == 4638 then

dir = 3

elseif item.itemid == 4639 then

dir = 2

elseif item.itemid == 4640 then

dir = 3

elseif item.itemid == 4641 then

dir = 1

elseif item.itemid == 4642 then

dir = 3

elseif item.itemid == 4643 then

dir = 1

end

doSetCreatureOutfit(cid, standardoutfit, 1)

doMoveCreature(cid, dir)

setPlayerStorageValue(cid, swimvalue, 2)

end

end

return TRUE

end

 

if item.actionid == 3333: ActionID do tile que o player vai pisar para pular no lago/praia/piscina etc....

player1pos = {x = position.x + 2, y = position.y + 2, z = position.z}: Para onde o player ira para ao pisar no Tile com o ActionID

 

x + 2 e y + 2 Quantos pos ira pular para que nao tenha players "nadando" em grama .

por exemplo: faz de conta que o player tem que pisar no pos "1000 1000 7" se vc colocar X+2 ele vai se teleportar para o tile "1002 1000 7"

 

 

--->>NA AGUA COLOCAR ID 4620. Senao o player nao conseguira se mover :secret:

 

Com sua experiencia e criatividade! pode ate fazer um trampulim que nem eu! =D

 

Espero que tenho gostado!

:hi:

Editado por Forcera
Link para o comentário
Compartilhar em outros sites

  • Respostas 36
  • Created
  • Última resposta

Top Posters In This Topic

Cara me explica melhor isso aki

 

 

if item.actionid == 3333: ActionID do tile que o player vai pisar para pular no lago/praia/piscina etc....

player1pos = {x = position.x + 2, y = position.y + 2, z = position.z}: Para onde o player ira para ao pisar no Tile com o ActionID

 

x + 2 e y + 2 Quantos pos ira pular para que nao tenha players "nadando" em grama .

por exemplo: faz de conta que o player tem que pisar no pos "1000 1000 7" se vc colocar X+2 ele vai se teleportar para o tile "1002 1000 7"

 

 

--->>NA AGUA COLOCAR ID 4620. Senao o player nao conseguira se mover

Link para o comentário
Compartilhar em outros sites

Além de estar faltando os créditos o título está incorreto, para algo estar perfeito o código também deve estar impecável, o que não é o caso.

 

E já que você acha ter tal "mínimo conhecimento de script possível", aprenda a edentar e usar TABs nos códigos, para mostrar isso, caso contrário, seja humilde e ajude sem humilhar as pessoas, pois você não tem cacife para isso.

Editado por Nostradamus
Link para o comentário
Compartilhar em outros sites

Forcera eu so bem experiente em scripst mas você não sobe explicar bem pois estava codes fora de seus campos , por isso que pedi uma explicação.

 

Espero que você melhore o poste. :smile_positivo:

Link para o comentário
Compartilhar em outros sites

@Waleker

Se está se referindo ao post do Nostradamus, ele nao falou da natasção,

e sim do Script.

 

@Post

Bem confuso... alem de que "pozycja = {x = 124, y = 58, z= 7}" está boiando ali...

Sem função nenhuma, sem nenhum uso posterior.

 

:hi:

Link para o comentário
Compartilhar em outros sites

Vc retirou do OTLand e não tinha nem tem nenhum erro, vc apenas teria que colocar o piso 4620 ate onde vc ker que ele ande, então manera ai pq eu sei que isso ai é Ctrl+C e Ctrl+V!

 

-- EDIT --

pozycja = {x = 124, y = 58, z= 7} era pra o lugar onde o corpo iria caso o player morre-se, mas não deu certo e o dono do script o abandonou, pois se um corpo morre no tile 4620 (Agua que pode anda em cima) o OT buga e cai!

Editado por morgado4ever
Link para o comentário
Compartilhar em outros sites

existe uma borda de areia nova q a cip fez especialmente pra essas areas de nataçao...tente colocar q quando o player pise nesses novos tiles ele entra na agua 1 sqm na frente...e quanda pisar novamente ele sair da agua...:p

Link para o comentário
Compartilhar em outros sites


×
×
  • Criar Novo...