AB

!buyrank

Por Aberos, 23 de ago. de 2013 em Scripts

otserv
tibia
script
14
1.6k
AberosA
23 de agosto de 2013 às 16:11

GALERA DO XTIBIA QUERIA SABER SE ALGUEM PODERIA ME ARRUMAR UM SCRIPT DE UMA TALKACTIONS EM Q O PLAYER COMPRA-SE RANK DE CLAN POR DIAMONDS ? DESDE JA AGRADEÇO

RoksasR
23 de agosto de 2013 às 17:54

Cara, esta seção serve para postar códigos prontos e não dúvidas. Preste mais atenção hein!

#Movido.

 

E quanto ao tópico, me diga quais são as storages dos clãns.

AberosA
23 de agosto de 2013 às 18:37

a storage é 86228; ai ta a de cada clan

86228 1 é do volcanic

: 86228 2 é do seavell
86228 3 é do orebound",
86228 4 é do wingeon",
86228 5 é do malefic",
86228 6 é do gardestrike",
86228 7 é do psycraft ",
86228 8 é do naturia",
RoksasR
23 de agosto de 2013 às 19:55

Muito bem, vá em data/talkactions/scripts, crie um arquivo chamado clans.lua e adicione dentro:

local clans = {
    ["volcanic"] = {v = 1, p = 10},
    ["seavell"] = {v = 2, p = 150},
    ["orebound"] = {v = 3, p = 20},
    ["wingeon"] = {v = 4, p = 5},
    ["malefic"] = {v = 5, p = 3},
    ["gardenstrike"] = {v = 6, p = 12},
    ["psycraft"] = {v = 7, p = 8},
    ["naturia"] = {v = 8, p = 30},
}

function onSay(cid, words, param)
local rank = clans[param]

if not param or param == "" then
    return doPlayerSendTextMessage(cid, 20, "Você deve digitar o nome do clãn corretamente.") and true
end

if getPlayerItemCount(cid, 2145) < rank.p then
    return doPlayerSendTextMessage(cid, 20, "Os seus diamonds são insuficientes, você precisa ter ["..rank.p.."] diamonds.") and true
end

if getPlayerStorageValue(cid, 86228) == rank.v then
doPlayerSendTextMessage(cid, 20, "Você já faz parte deste mesmo clãn, escolha outro, os disponíveis são:")

for a, b in pairs(clans) do
    doPlayerSendTextMessage(cid, 20, "Clãn ["..a.."] - Preço: "..b.p.." diamonds.")
end

    return true
end

    doPlayerRemoveItem(cid, 2145, rank.p)
    setPlayerStorageValue(cid, 86228, rank.v)
    doPlayerSendTextMessage(cid, 20, "Você acaba de entrar para o clãn ["..param.."], relogue para obter alterações.")
    return true
end

Em talkactions.xml adicione a seguinte tag:

<talkaction words="!clan;/clan;!rank;/rank" event="script" value="clans.lua"/>

No código de primeira, você encontra uma tabela, onde v é o valor da storage e p é o preço do clãn. Caso queira adicionar mais basta seguir o exemplo conforme a tabela.

 

#GoodLuck!

Editado Agosto 23 por Roksas

StrogmanS
23 de agosto de 2013 às 21:05

so um pequeno errozinho roksas ele que por diamond nao por gold

RoksasR
23 de agosto de 2013 às 21:22

Qual o ID do diamond?

StrogmanS
23 de agosto de 2013 às 21:29

2145

RoksasR
23 de agosto de 2013 às 21:35

#Editado.

StrogmanS
23 de agosto de 2013 às 23:41

agora sim so falta pode escolher o rank tbm ai so munda o clan tipo !rank volcanic,5 ja vai direto pro rank 5 do clan volcanic a storage é essa 862281

Editado Agosto 24 por gristony

AberosA
24 de agosto de 2013 às 09:08

Roksas é igual o gristony falow aki em cima ^^

RoksasR
24 de agosto de 2013 às 09:50

Tem isso é? Mas como funciona os ranks?Tem storage? é oq?

StrogmanS
24 de agosto de 2013 às 09:56
function getPlayerClanRank(cid)

if not isCreature(cid) then return -1 end

return getPlayerStorageValue(cid, 862281)

end


deve ser essa a storage 862281

AberosA
29 de agosto de 2013 às 08:40

Galera o Clebberadm Me ajudou

 

local item = 2145

local qtd = 2
function onSay(cid, words, param, channel)
if param == "" then
return sendMsgToPlayer(cid, 20, "Estao faltam os parametros! [clan name], [rank]")
end
local t = string.explode(param, ",")
local clans = {'Volcanic', 'Seavell', 'Orebound', 'Wingeon', 'Malefic', 'Gardestrike', 'Psycraft', 'Naturia', 'Raibolt'}
if getPlayerClanRank(cid, rank) <= 4 then
sendMsgToPlayer(cid, 20, "Voce nao eh rank 5 bitch")
return TRUE
end
if not isInArray(clans, t[1]) then
return sendMsgToPlayer(cid, 20, t[1].." nao e uma clan valido!")
elseif not tonumber(t[2]) then
return sendMsgToPlayer(cid, 20, "Parametros errados! [clan name], [rank]")
end
local rank = tonumber(t[2])
local clan = t[1]
if doPlayerRemoveItem(cid, item, qtd) == TRUE then
if setPlayerClan(cid, clan) then
setPlayerClanRank(cid, rank)
doPlayerSendCancel(cid, "#getSto# ".. getPlayerStorageValue(cid, 86228))
doPlayerSendCancel(cid, "Congratulations, you now changed your clan")
else
doPlayerSendCancel(cid, "You don't have enough diamonds")
end
return true
end
end

Podem Fechar o Topico

BeekiB
29 de agosto de 2013 às 09:49

Movido para a sessão correta :)