DA
pedido

Sub-vocaçao

Por Dasdor, 27 de dez. de 2013 em Scripts

sub-vocaçao
resolvido
otserv
tibia
script
17
2.9k
DasdorD
27 de dezembro de 2013 às 22:09

Olá a todos eu vim fazer esse pedido aqui no xtibia porque eu sei que aqui tem os melhores scriptshappy.png


É o seguinte, é um item q o player usa e ganha a promotion dele, mais nao é so uma promotion que tem, intao precisaria de 2 items pra ele escolher qual das vocation ele quer ser, por exemplo eu tenho um sorcerer e a duas promotion, fire sorcerer e energy sorcerer para eu me tornar um fire sorcerer eu tenho q usar uma fire stone e se eu quizer ser um energy sorcerer eu uso uma energy stone entendes??


BennyB
27 de dezembro de 2013 às 22:10

Então seria 2 items, duas actions, certo ?

DasdorD
28 de dezembro de 2013 às 00:21

não tem como fazer em um arquivo só? caso não, sim são duas actionssmile.png

Editado Dezembro 28 por Dasdor

zipter98Z
28 de dezembro de 2013 às 01:13

Esse código será direcionado unicamente à sorceres? Ou para todas as vocations?

E dá pra fazer em um só arquivo, sim.

E terá condições? Por exemplo, cada item tem um nível necessário mínimo que o jogador deve ter; só poderá usar o item uma vez(quando eu digo o item, eu quero dizer todos os items configurados que mudam a vocation), etc.

Editado Dezembro 28 por zipter98

DasdorD
28 de dezembro de 2013 às 01:31

vão ser todas as vocs e sim só pode usar uma vez e nao tera condições

Editado Dezembro 28 por Dasdor

zipter98Z
28 de dezembro de 2013 às 01:55

Fiz aqui, espero que seja isso que você quer.

Suponho que saiba como adicionar novos IDs na tag, e também novas "linhas" na tabela cfg. Qualquer dúvida, só falar.

Código:

local cfg = {
    [id do item] = {vocation necessária, para qual vocation o player irá},
    [id do item] = {vocation necessária, para qual vocation o player irá},
    --basta seguir o modelo das duas acima para adicionar novas linhas.
}
 
function onUse(cid, item, frompos, item2, topos)
 
local item = cfg[item.itemid]
 
    if getPlayerStorageValue(cid, 928721) >= 1 then
        return doPlayerSendCancel(cid, "Sorry, not possible.")
    elseif getPlayerVocation(cid) ~= item[1] then
        return doPlayerSendCancel(cid, "Sorry, not possible.")
    end
    
    doPlayerSendTextMessage(cid, 27, "Congratulations, you advanced for a better vocation. Remember: you won't be able to use another item to chance your vocation!")
    setPlayerStorageValue(cid, 928721, 1)
    setPlayerVocation(cid, item[2])
    doRemoveItem(item.uid, 1)
    return true
end
Tag:
<action itemid="id do item;id do item" event="script" value="nome do arquivo.lua"/>

Editado Dezembro 28 por zipter98

DasdorD
28 de dezembro de 2013 às 02:08

pode colocar o id da vocation? ou tem que ser o nome mesmo?

BennyB
28 de dezembro de 2013 às 02:08

pode colocar o id da vocation? ou tem que ser o nome mesmo?

Nome ...

Mas acho que se ele editar tu consegue

zipter98Z
28 de dezembro de 2013 às 02:14

Tem que ser o ID.

DasdorD
28 de dezembro de 2013 às 02:27

deu um erro

261ez2f.jpg

Editado Dezembro 28 por Dasdor

zipter98Z
28 de dezembro de 2013 às 02:34

Hm, troque

setPlayerVocation(cid, item[2])
por
doPlayerSetVocation(cid, item[2])

Editado Dezembro 28 por zipter98

DasdorD
28 de dezembro de 2013 às 02:38

Ótimo funcionou vc é d++

viu é... temq como por pra quando da use ele teleporta pra um lugar x ?wacko.png

zipter98Z
28 de dezembro de 2013 às 02:53

Esse lugar varia dependendo do item, ou é único para qualquer item?

DasdorD
28 de dezembro de 2013 às 03:04

é unico pra qual quer itemhappy.png

zipter98Z
28 de dezembro de 2013 às 03:16

 

local cfg = {
    [id do item] = {vocation necessária, para qual vocation o player irá},
    [id do item] = {vocation necessária, para qual vocation o player irá},
    --basta seguir o modelo das duas acima para adicionar novas linhas.
}
 
local pos = {x = x, y = y, z = z}   --Para onde o jogador será teleportado.
 
function onUse(cid, item, frompos, item2, topos)
 
local item = cfg[item.itemid]
 
    if getPlayerStorageValue(cid, 928721) >= 1 then
        return doPlayerSendCancel(cid, "Sorry, not possible.")
    elseif getPlayerVocation(cid) ~= item[1] then
        return doPlayerSendCancel(cid, "Sorry, not possible.")
    end
    
    doPlayerSendTextMessage(cid, 27, "Congratulations, you advanced for a better vocation. Remember: you won't be able to use another item to chance your vocation!")
    setPlayerStorageValue(cid, 928721, 1)
    setPlayerVocation(cid, item[2])
    doRemoveItem(item.uid, 1)
    doTeleportThing(cid, pos)
    return true
end