Dois Sripts..

leo420
Por leo420
em Scripts

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

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 =)..

victormatos

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/08/12Posts: 11

informe versão

LuckOake

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/07/12Posts: 1104Gênero: MasculinoChar no Tibia: Luck Oake

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.

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

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?

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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

jeoz.png

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

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

KennyConrad

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/08/11Posts: 470Char no Tibia: ...

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

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

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

KennyConrad

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/08/11Posts: 470Char no Tibia: ...

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.

1579091

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 06/11/11Posts: 1088Char no Tibia: Stroked

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?

KennyConrad

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/08/11Posts: 470Char no Tibia: ...

vai aparecer pra geral assim que logar

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

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