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? , 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:
--Configlocal 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.