LE
pedido

Dois Sripts..

Por leo420, 25 de ago. de 2012 em Scripts

tibia
script
otserv
12
1.4k
leo420L
25 de agosto de 2012 às 16:19

Opa boa tarde galera,

 

To com um projeto de um ot que vo colocar on, queria dois scripts:

 

1 - Uma quest, pros players começarem que ganha 20k, porém adiciona aqueles ( marks ) no minimap, porque como meu servidor vai ser mapa próprio queria marcar locais como DP,Temple,Lojas ( aquelas marcas que tem no tibia global tipo de missao )

 

2 - Uma Talkaction pra GM que cria um teleport pra onde o GM configurar e o tempo que ele quiser, tipo: !createtp 160,54,7,2 Minutos, ai cria o teleport que vai pra cordenada 160,54,7 (Templo) que no caso seria um evento e em 2 minutos o tp some..Eu tinha o script mais perdi =//

 

No aguardo, se alguém puder me ajudar, Agraçedoo =)..

Editado Agosto 25 por leo420

victormatosV
25 de agosto de 2012 às 17:11

informe versão

LuckOakeL
25 de agosto de 2012 às 17:50

Segundo pedido:

 

talkactions.xml:

 

<talkaction log="yes" words="/createteleport" access="3" event="script" value="createteleport.lua"/>

 

createteleport.lua:

 

-- Script by LuckOake

function onSay(cid, words, param)

local t = string.explode(param, ",")

 

local tp = {

["/createteleport"] = {id = 1387, pos = {x=t[1], y=t[2], z=t[3]}, goto = {x = t[4], y = t[5], z = t[6]}, tempo = t[7]}

}

 

local tp_table = tp[words]

 

if not t[7] then

doPlayerSendCancel(cid, "Especifique a posição e o tempo.")

return true

end

 

function doRemoveTp(tp_table)

local telepos = getTileItemById(tp_table.pos, tp_table.id)

doSendMagicEffect(tp_table.pos, CONST_ME_POFF)

doRemoveItem(telepos.uid, 1)

end

 

local telep = doCreateTeleport(tp_table.id, tp_table.goto, tp_table.pos)

addEvent(doRemoveTp, tp_table.tempo*60*1000, tp_table)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Teleport aberto nas coordenadas X = "..t[1]..", Y = "..t[2]..", Z = "..t[3].." por "..tp_table.tempo.." minutos.")

return true

end

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Como funciona:

 

/createteleport 100,100,7,200,200,8,1

 

Verde: Position em que o teleport aparecerá

Vermelho: Position em que o teleport levará

Azul: Tempo em minutos

 

 

Caso queira alguma modificação, avise.

 

PS: Pro seu primeiro pedido, detalhe ele melhor, não compreendi direito.

Editado Agosto 25 por LuckOake

leo420L
25 de agosto de 2012 às 19:04

eu uso 8.60 ( 1.0.0 ) Mix Soft Distro

 

---------------------------------------------

 

Valeu Luckoake, funcionou bem o script da talktp, pra colocar outra talk como essa de players no teleport, tipo ao invez de tempo, limite de 20 players, hora que entrar os 20 ele some?

Editado Agosto 25 por leo420

SkymagnumS
25 de agosto de 2012 às 20:05

Você teria que adicionar uma actionid ou uniqueid no teleport usando doAddItemAttribute~ e fazendo um movements para que quando 20 pessoas entrarem no tp ele sumira

leo420L
26 de agosto de 2012 às 18:03

Sky eu nao sei fazer nenhum script :( nao manjo, tem como vc me ajudar ?

KennyConradK
27 de agosto de 2012 às 01:46

1 pedido

 

crie um arquivo em creaturescripts/scripts com o nome mapmark e cole isso dentro

 

local config = {

storage = 030220122041,

version = 1, -- Increase this value after adding new marks, so player can step again and receive new map marks

marks = {

{mark = 5, pos = {x = 100, y = 40, z = 6}, desc = "Dorion Temple"},

{mark = 11, pos = {x = 103, y = 64, z = 6}, desc = "Tools Shop!"},

{mark = 7, pos = {x = 92, y = 64, z = 6}, desc = "Paladin Shop!"},

{mark = 8, pos = {x = 93, y = 75, z = 6}, desc = "Weapon Shop!"},

{mark = 8, pos = {x = 97, y = 78, z = 6}, desc = "Armor Shop!"},

{mark = 4, pos = {x = 81, y = 69, z = 6}, desc = "Dorion Depot!"},

{mark = 9, pos = {x = 45, y = 79, z = 6}, desc = "Boat!"},

{mark = 2, pos = {x = 26, y = 51, z = 6}, desc = "Football!"},

{mark = 5, pos = {x = 119, y = 98, z = 6}, desc = "Sanctuary!"},

{mark = 12, pos = {x = 48, y = 103, z = 6}, desc = "Arena PVP!"},

{mark = 1, pos = {x = 666, y = 666, z = 7}}

}

}

 

local f_addMark = doPlayerAddMapMark

if(not f_addMark) then f_addMark = doAddMapMark end

 

function onThink(cid, interval)

if(isPlayer(cid) ~= TRUE or getPlayerStorageValue(cid, config.storage) == config.version) then

return

end

 

for _, m in pairs(config.marks) do

f_addMark(cid, m.pos, m.mark, m.desc ~= nil and m.desc or "")

end

setPlayerStorageValue(cid, config.storage, config.version)

return TRUE

end

 

 

em data/creaturescripts/creaturescripts adicione esta tag

 

<event type="think" name="MapMark" event="script" value="mapmark.lua"/>

 

 

 

em login adicione está tag

 

registerCreatureEvent(cid, "MapMark")

 

explicação do script

 

{mark = 5, pos = {x = 100, y = 40, z = 6}, desc = "Dorion Temple"},

 

mark = 5 é o id do icon que vai aparecer no map

 

pos = {x = 100, y = 40, z = 6} a position de onde o icon vai fikar aparecendo no map

 

Dorion Temple quando o player clicar em cima do icon ou passar o malz por cima vai aparecer o nome do lugar de onde está marcado

Editado Agosto 27 por KennyxD

leo420L
27 de agosto de 2012 às 02:38

deu certo kenny, isso que eu queria, no caso teria como elas piscar de X em X tempo ?

KennyConradK
27 de agosto de 2012 às 16:32

leo420 vixi isso ai nen sei =(

 

+ da um REP + ae se voce gostou ^^

 

eu uso 8.60 ( 1.0.0 ) Mix Soft Distro

 

---------------------------------------------

 

Valeu Luckoake, funcionou bem o script da talktp, pra colocar outra talk como essa de players no teleport, tipo ao invez de tempo, limite de 20 players, hora que entrar os 20 ele some?

 

não seria melhor do geito que está ? por exemplo voce quer usar esse script pra um evento se voce usar ele como esta o teleport vai fika aberto até X horas ai quem entro entro quem nao entro nao entro ai ja comesa o evento agora se voce usar do outro geito como voce ta pedindo vai que voce usa ele tbm pra um evento e seu servidor naquele momento so tem 10 players online ai os 10 players que entraram vao fikar prezo até que voce tire-os de la + ai voce que sabe neh.

15790911
27 de agosto de 2012 às 16:40

Kenny no caso pra apareçer esses marks o player tem q fazer alguma quest e receber akele storage ou vai apareçer pra geral?

KennyConradK
27 de agosto de 2012 às 16:43

vai aparecer pra geral assim que logar

leo420L
27 de agosto de 2012 às 17:41

achei o script que eu tinha, mas da um erro, alguém sabe oque é ?

 

O ERRO É:

 

[Error - TalkAction Interface]

data/talkactions/scripts/portal.lua:onSay

Description:

data/talkactions/scripts/portal.lua:5: attempt to call global 'doSetItemSpecialDescription' <a nil value>

stack traceback:

data/talkactions/scripts/portal.lua:5: in function <data/talkactions/scripts/portal.lua:1>

 

Segue o Script: Talkaction:

 

 

function onSay(cid, words, param)

local param = param.explode(param, ',')

if param then

teleport = doCreateTeleport(1387, {x=param[1], y=param[2], z=param[3]}, getPlayerPosition(cid))

doSetItemSpecialDescription(teleport, 'The portal may enter '..param[4]..' people left.')

doSetItemActionId(teleport, 100+param[4])

else

doPlayerSendCancel(cid, "You must set param.")

end

return TRUE

end

 

Movements:

 

 

function onStepIn(cid, item, position, fromPosition)

if item.actionid > 100 then

doSetItemSpecialDescription(item.uid, 'The portal may enter '..(item.actionid-101)..' people left.')

doSetItemActionId(item.uid, item.actionid-1)

end

return TRUE

end

 

 

function onStepOut(cid, item, position, fromPosition)

if item.actionid == 100 then

doSendMagicEffect(position, 2)

doRemoveItem(item.uid, 1)

end

return TRUE

end