Ir para conteúdo
  • Cadastre-se

(Resolvido)TFS 1.2 teletransportar ao acabar premium


Ir para solução Resolvido por psychonaut,

Posts Recomendados

Queria um script que teletransportasse o jogar a cidade natal dele quando a premium account acabasse  :D

Editado por TioJapa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Moderador

Vou ver o que posso fazer aqui, se conseguir eu posto.

 

http://www.tibiaking.com/forum/topic/57564-ajuda-com-documento/

Esse script seria para VIP não premium.

Link para o post
Compartilhar em outros sites
  • Solução

Vai na creaturescripts/scripts sempremium.lua

function onLogin(player, cid)


if getPlayerPremiumDays(cid) == 0 then
doTeleportThing(cid, getPlayerMasterPos(cid), false)
doPlayerSendTextMessage(cid,MESSAGE_FIRST,'Sua premium acabou, voce foi pro templo')
doSendMagicEffect(getCreaturePosition(cid),CONST_ME_TELEPORT)


end


return true
end

creaturescripts/others/login.lua:

     'Sempremium'
 
No localevents.
 
Ai no creaturescripts.xml:
<event type="login" name="Sempremium" script="sempremium.lua" />

Qualquer coisa me avisa que arrumo. Não deu pra testar porque no meu servidor PA é grátis, então não cai no templo.

Editado por rogaforyn2 (veja o histórico de edições)

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites

 

Vai na creaturescripts/scripts sempremium.lua

function onLogin(player, cid)


if getPlayerPremiumDays(cid) == 0 then
doTeleportThing(cid, getPlayerMasterPos(cid), false)
doPlayerSendTextMessage(cid,MESSAGE_FIRST,'Sua premium acabou, voce foi pro templo')
doSendMagicEffect(getCreaturePosition(cid),CONST_ME_TELEPORT)


end


return true
end

creaturescripts/others/login.lua:

     'Sempremium'
 
No localevents.
 
Ai no creaturescripts.xml:
<event type="login" name="Sempremium" script="sempremium.lua" />

Qualquer coisa me avisa que arrumo. Não deu pra testar porque no meu servidor PA é grátis, então não cai no templo.

 

 

creaturescripts/others/login.lua:

     'Sempremium'
 
Não entendi essa parte, onde coloco exatamente ?
Link para o post
Compartilhar em outros sites

No seu login.lua, depende de como ele for, tem uns que é assim

player:registerEvent("Sempremium")

Outros ja é

-- ordered as in creaturescripts.xml
local events = {
'Sempremium',
'TutorialCockroach',
'ElementalSpheresOverlords',
'BigfootBurdenVersperoth',
'BigfootBurdenWarzone',
'BigfootBurdenWeeper',
'BigfootBurdenWiggler',
'SvargrondArenaKill',
'NewFrontierShardOfCorruption',
'NewFrontierTirecz',
'ServiceOfYalaharDiseasedTrio',
'ServiceOfYalaharAzerus',
'ServiceOfYalaharQuaraLeaders',
'InquisitionBosses',
'InquisitionUngreez',
'KillingInTheNameOfKills',
'MastersVoiceServants',
'SecretServiceBlackKnight',
'ThievesGuildNomad',
'WotELizardMagistratus',
'WotELizardNoble',
'WotEKeeper',
'WotEBosses',
'WotEZalamon',
'PlayerDeath',
'AdvanceSave',
'AdvanceRookgaard',
'PythiusTheRotten',
'DropLoot'
}

Ve no criature scripts onde ta o login.lua que ta sendo usado, é um desses 2 tipos, ai tu põe la

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites

 

No seu login.lua, depende de como ele for, tem uns que é assim

player:registerEvent("Sempremium")

Outros ja é

-- ordered as in creaturescripts.xml
local events = {
'Sempremium',
'TutorialCockroach',
'ElementalSpheresOverlords',
'BigfootBurdenVersperoth',
'BigfootBurdenWarzone',
'BigfootBurdenWeeper',
'BigfootBurdenWiggler',
'SvargrondArenaKill',
'NewFrontierShardOfCorruption',
'NewFrontierTirecz',
'ServiceOfYalaharDiseasedTrio',
'ServiceOfYalaharAzerus',
'ServiceOfYalaharQuaraLeaders',
'InquisitionBosses',
'InquisitionUngreez',
'KillingInTheNameOfKills',
'MastersVoiceServants',
'SecretServiceBlackKnight',
'ThievesGuildNomad',
'WotELizardMagistratus',
'WotELizardNoble',
'WotEKeeper',
'WotEBosses',
'WotEZalamon',
'PlayerDeath',
'AdvanceSave',
'AdvanceRookgaard',
'PythiusTheRotten',
function onLogin(player)
	local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"
	if player:getLastLoginSaved() <= 0 then
		loginStr = loginStr .. " Please choose your outfit."
		player:sendOutfitWindow()
	else
		if loginStr ~= "" then
			player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
		end

		loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
	end
	player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    --
	-- Stamina
	nextUseStaminaTime[player.uid] = 0

	-- Promotion
	local vocation = player:getVocation()
	local promotion = vocation:getPromotion()
	if player:isPremium() then
		local value = player:getStorageValue(STORAGEVALUE_PROMOTION)
		if not promotion and value ~= 1 then
			player:setStorageValue(STORAGEVALUE_PROMOTION, 1)
		elseif value == 1 then
			player:setVocation(promotion)
		end
	elseif not promotion then
		player:setVocation(vocation:getDemotion())
	end

	-- Events
	player:registerEvent("Sempremium")
	player:registerEvent("PlayerDeath")
	player:registerEvent("DropLoot")
	player:registerEvent("Tasks")
	return true
end


'DropLoot' }

Ve no criature scripts onde ta o login.lua que ta sendo usado, é um desses 2 tipos, ai tu põe la

 

 

Poderia ficar assim ?

Link para o post
Compartilhar em outros sites

Achei, ta certo sim

Editado por rogaforyn2 (veja o histórico de edições)

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites

Dessa forma, todos players sem premium serão teleportados quando logarem, seria preciso verificar uma storage, assim não haveria este problema.

                                                                                               1zcn2mb.jpg

 

                                                                                                                       Danera Global Server

                                                                                                                       Versão: 10.77 - 10.79

                                                                                                                       Sem Items VIP

                                                                                                                       Venha se divertir

Link para o post
Compartilhar em outros sites

function onLogin(player, cid)


if (getPlayerPremiumDays(cid) < 1 and getPlayerStorageValue(cid, 64555) > 0)  then
setPlayerStorageValue(cid, 64560, 0) 
doTeleportThing(cid, getPlayerMasterPos(cid), false)
doPlayerSendTextMessage(cid,MESSAGE_FIRST,'Sua premium acabou, voce foi pro templo')
doSendMagicEffect(getCreaturePosition(cid),CONST_ME_TELEPORT)


end

Ai no talkactions/scripts/buyprem.lua:

local config = {
	days = 90,
	maxDays = 365,
	price = 10000
}

function onSay(player, words, param)
	if configManager.getBoolean(configKeys.FREE_PREMIUM) then
		return true
	end

	if player:getPremiumDays() <= config.maxDays then
		if player:removeMoney(config.price) then
			player:addPremiumDays(config.days)
			setPlayerStorageValue(cid, 64555, 1)
			player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have bought " .. config.days .." days of premium account.")
		else
			player:sendCancelMessage("You don't have enough money, " .. config.days .. " days premium account costs " .. config.price .. " gold coins.")
			player:getPosition():sendMagicEffect(CONST_ME_POFF)
		end
	else
		player:sendCancelMessage("You can not buy more than " .. config.maxDays .. " days of premium account.")
		player:getPosition():sendMagicEffect(CONST_ME_POFF)
	end
	return false
end

return true

end

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites

@TioJapa

local STORAGE_PREMIUM = 64555

function onLogin(cid)
	local player = Player(cid)

	if player:getPremiumDays() < 1 and player:getStorageValue(STORAGE_PREMIUM) > 0 then
		player:setStorageValue(STORAGE_PREMIUM, 0)
		player:teleportTo(player:getTown():getTemplePosition())
		player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
		player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua premium acabou!")
	end

	return true
end
function onLogin(player

Esse callback não existe no TFS 1.0 

player:registerEvent("Sempremium")

Não precisa registrar eventos onLogin.

Link para o post
Compartilhar em outros sites

Esse callback não existe no TFS 1.0 

Não precisa registrar eventos onLogin.

 

Opa vlw, é que peguei como base de um que ja tinha no meu mas parece que era antigo, e veio junto com meu tfs 1.0

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites

Mas eu vou usar site pra comprar o premium, como poderia ser esse script ? 

Se possivel organize melhor só com o necessario, pois tá uma bagunça esse topico!

Link para o post
Compartilhar em outros sites

Esses premiuns system tem erros, se tiver como viver na cidade premium...

Bruno de Carvalho Câmara / Administrador TibiaKing

[email protected]


 

btn_donateCC_LG.gif

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

Link para o post
Compartilhar em outros sites

Esses premiuns system tem erros, se tiver como viver na cidade premium...

 

Eu queria um que apenas teletransportace o jogador de volta ao templo, intepende de onde ele esteja quando seu vip Acabar :D 

Link para o post
Compartilhar em outros sites

Esses premiuns system tem erros, se tiver como viver na cidade premium...
 
local STORAGE_PREMIUM = 64555
local TEMPLE_ID = 1

function onLogin(cid)
	local player = Player(cid)

	if player:getPremiumDays() < 1 and player:getStorageValue(STORAGE_PREMIUM) > 0 then
		player:setStorageValue(STORAGE_PREMIUM, 0)
		player:teleportTo(Town(TEMPLE_ID):getTemplePosition())
		player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
		player:setTown(TEMPLE_ID)
		player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua premium acabou!")
	end

	return true
end
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo