ED
pedido

VIP no nome, ao usar item que da Vip Time.

Por EddyHavaiano, 18 de dez. de 2015 em Scripts

8
1.5k
EddyHavaianoE
18 de dezembro de 2015 às 02:05

Eu uso no meu OTserv um item que da dias de vip donate (1, 5 , 15 e 30 Dias)...Eu queria que esse item adicionasse o nome VIP antes do nome do personagem Ex:. ('VIP Sephroth') e quando acabasse o VIP Time o player era teletransportado para o templo Ex:. (X= 160,Y= 54,Z= 7) sem o "VIP" no nick.

 

Quem puder me ajuda ficarei grato e reputarei, Grato :)

 

IDs caso forem precisos:. 10311, 10309, 10310

18 de dezembro de 2015 às 11:28
Melhor resposta

actions:

<action itemid="xxxx" script="vipdonat.lua"/> 

vipdonat.lua: (13778) storage, mude-a para desejada

function onUse(cid, item, fromPosition, itemEx, toPosition)
local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
local days = 30 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13778)
local timenow = os.time()
if getPlayerStorageValue(cid, 13778) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
setPlayerStorageValue(cid, 13778, time)
local quantity = math.floor((getPlayerStorageValue(cid, 13778) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";")
doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.")
doPlayerAddAddons(cid, 1)
addEvent(doRemoveCreature, 5*1000, cid, true)
end
return TRUE
end

creaturescripts.xml: add

        <event type="login" name="FimVip" event="script" value="fimvip.lua"/>

fimvip.lua: \creaturescripts\scripts

function onLogin(cid)
local temple = { x =160, y = 54, z = 7}
if vip.hasVip(cid) == true then
if getPlayerStorageValue(cid,13778) ~= 1 then
setPlayerStorageValue(cid,13778,1)
end
else
if getPlayerStorageValue(cid,13778) == 1 then
doTeleportThing(cid, temple)
doPlayerSendTextMessage(cid, 22, "Sua vip acabou!")
db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";")
setPlayerPromotionLevel(cid, 1)
setPlayerStorageValue(cid, 13778, 0)
end
end
return true
end


function onLogin(cid)
local name = string.gsub(""..getCreatureName(cid).."", ".VIP. ", "")
if getPlayerStorageValue(cid, 13778) <= 0 then
if getCreatureName(cid) ~= name then
db.executeQuery("UPDATE `players` SET `name` = '"..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")
addEvent(doRemoveCreature, 2*1000, cid, true)
end
end
return true
end

movements.xml: 29859 (action id do piso que expulsará intrusos)

        <movevent type="StepIn" actionid="29859" event="script" value="viptile.lua"/>

viptile.lua:

function onStepIn(cid, item, position, fromPosition)
local config = {
msgDenied = "Este lugar é só para vips donate, adquira sua vip no site..",
msgWelcome = "Bem vindo a area vip, você tem 20% a mais de xp, bom up.."
}
if getPlayerStorageValue(cid, 13778) - os.time() <= 0 then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
return TRUE
end

Qualquer coisa manda um salve ^^

 

Editado Dezembro 18 por alissonxzff2

EddyHavaianoE
18 de dezembro de 2015 às 15:30

Esse sistema VIP ele adiciona o nome VIP e no final retira ?

 

18 de dezembro de 2015 às 17:13


removeOnUse = "yes" -- remover quando usar ("yes" or "no")

db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";")

 

18 de dezembro de 2015 às 18:39

sim, no arquivo fim vip (creature scripts) ele verifica, retira o [VIP] e manda pro templo (160, 54, 7) observe os códigos, é nois xD

EddyHavaianoE
18 de dezembro de 2015 às 19:18

REP +

 

Valeu tava precisando :)

CaronteC
18 de dezembro de 2015 às 22:46

, marque como melhor resposta o post que resolveu sua dúvida.

<p><strong class='bbc'>Tópico Movido</strong><br />Este tópico foi movido de "<a href='http://www.xtibia.com/forum/forum/2-otserv/'>OTServ</a>→ <a href='http://www.xtibia.com/forum/forum/988-suporte-otserv/'>Suporte OTServ</a> → <a href='http://www.xtibia.com/forum/forum/86-suporte-scripting/'>Suporte Scripting</a>"<br />para "<a href='http://www.xtibia.com/forum/forum/2-otserv/'>OTServ</a> → <a href='http://www.xtibia.com/forum/forum/988-suporte-otserv/'>Suporte OTServ</a> → <a href='http://www.xtibia.com/forum/forum/86-suporte-scripting/'>Suporte Scripting</a> → <a href='http://www.xtibia.com/forum/forum/718-pedidos-e-duvidas-resolvidos-scripting/'>Pedidos e dúvidas resolvidos - Scripting</a>".</p><p> </p><p> </p>

3 meses depois...
AdriezA
20 de março de 2016 às 21:08

esse sistema vip no nome é bugado da pra criar um char com mesmo do cara só q fica sem vip no nome