Ir para conteúdo

[Scripts] Para Otserv


Roksas

Posts Recomendados

Bom, galera vou postar um Script muito legal. Fireworks , traduçao: Fogos de artificio, ja pensou no natal, ate mesmo no ano novo voce utilizar ele? Procurei no forum e nao achei entao vou postar para voces, para o script funcionar voce deve colocar um firework (Id: 6576), sabe aquele que parece um rojao? Fireworks_Rocket.gif, entao este mesmo, voce devera colocalo em cima de um Fire Field (chama de fogo)! Agora que ja sabemos como iremos usa-lo maos a obra com o Script!

 

1º: Va na pasta do seu Otserv! data/actions/scripts, crie um arquivo chamado fireworks.lua, abra-o com o bloco de notas/notepad, oque voce prefirir, e entao cole isto!

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

if fromPosition.x ~= CONTAINER_POSITION then

fireWorkRocketBoom(fromPosition)

else

doSendMagicEffect(fromPosition, CONST_ME_HITBYFIRE)

doSendMagicEffect(fromPosition, CONST_ME_EXPLOSIONAREA)

doCreatureSay(cid, "Ouch! Rather place it on the ground next time.", TALKTYPE_ORANGE_1)

doCreatureAddHealth(cid, -10)

end

doRemoveItem(cid, item.uid, 1)

return TRUE

end

 

Agora va em data/actions e abra o arquivo actions.xml, adicione a seguinte tag:

 

<action itemid="6576" script="fireworks.lua" />

 

Agora vamos criar os movements, va na pasta data/movements/scripts e crie um arquivo chamado fireworksrocket.lua, abra-o com um editor de texto, cole isto:

 

--Config

local timeToBoom = 5

local fireFields = {1487, 1488, 1489, 1492, 1493, 1494}

 

function fireWorkTimer(seconds, pos, itemid)

local tmp = getTileItemById(pos, itemid)

if tmp.uid == FALSE then

return FALSE

end

 

if seconds == 0 then

fireWorkRocketBoom(pos)

doRemoveItemFromPos(pos, itemid)

return TRUE

end

 

doSendAnimatedText(pos, seconds, 150)

 

seconds = seconds - 1

addEvent(fireWorkTimer, 1000, seconds, pos, itemid)

end

 

function onAddItem(moveitem, tileitem, pos)

pos.stackpos = STACKPOS_TOP_FIELD

if isInArray(fireFields, getThingFromPos(pos).itemid) == TRUE then

fireWorkTimer(timeToBoom, pos, moveitem.itemid)

end

 

return TRUE

end

Agora va em movements, abra o movements.xml e adicione a seguinte tag:

 

<!-- FIREROCKET -->

<movevent event="AddItem" itemid="6576" script="fireworks.lua" />

 

Otimo, agora, para o bom funcionamento, voce devera ter a funçao "doRemoveItemFromPos" , e caso nao tenha abra seu "global.lua" ou "function.lua" e adicione isto:

 

function doRemoveItemFromPos(position, itemid, count)

local tmp = count or 1

local item = getTileItemById(position, itemid)

if item.uid ~= FALSE then

return doRemoveItem(item.uid, tmp)

end

 

return FALSE

end

 

Otimo! Fim de Script.

 

Bom, agora o segundo script, eh baseado num tipo de "vidente" , voce da use em tal item e ele te da uma mensagem de "premoniçao" ,rsrs nao e nenhum futuro mais e apenas um complemento e um entreterimento aos players, vamos la:

 

Va na pasta actions/scripts, crie um arquivo chamado "ankhvidente.lua" ,abra-o com algum editor de texto e adicione isto dentro dele:

 

function onUse(cid, item, frompos, item2, topos)

luck = math.random(1,10)

pos = getPlayerPosition(cid)

 

if item.itemid == 2193 and luck == 1 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Seu futuro será a morte!")

 

elseif item.itemid == 2193 and luck == 2 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Você será muito rico pelo longo de sua jornada!")

 

elseif item.itemid == 2193 and luck == 3 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Você será banido por desrespeita os Gamemaster. Tome cuidado!")

 

elseif item.itemid == 2193 and luck == 4 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"É, incrivel que apareça um deer irá te matar! Fica esperto!")

 

elseif item.itemid == 2193 and luck == 5 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Pare de comprar items ou runas, você pode ficar pobre!")

 

elseif item.itemid == 2193 and luck == 6 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Você será premiado no servidor por está muito educado!")

 

elseif item.itemid == 2193 and luck == 7 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Compre uma casa agora pois você poderá ir morar debaixo da ponte!")

 

elseif item.itemid == 2193 and luck == 8 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Hoje é bom você não caçar, pois os bixos estão muito revoltados!")

 

elseif item.itemid == 2193 and luck == 9 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Você será o TOP level do servidor, continue pegando level assim!")

 

elseif item.itemid == 2193 and luck == 10 then

doPlayerRemoveItem(cid,2193,1)

doSendMagicEffect(pos,14)

doPlayerSendTextMessage(cid,22,"Brasil será HEXA!")

 

end

return 1

end

 

Muito bem, agora abra o arquivo actions.xml e adicione esta seguinte tag:

 

<action itemid="2193" script="ankhvidente.lua"/>

 

Fim de Script!

 

Bom, galera estes foram scripts simples, eu e mais dois amigos testamos e vimos que deu certo, testamos em TFS, no caso obrigado gente, gostaria de receber criticas e dicas, tenho muito no que melhorar ainda! Obrigado.

 

 

Atensiosamente,

Roksas.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...