Ir para conteúdo
  • Cadastre-se

[RESOLVIDO] Remover Item Premium


Posts Recomendados

 Olá galera, estou aqui para pedir um script que quando o jogador for free, determinado item volta para a bp ou para o dp caso não tenha espaço na backpack. Mas se o jogador for premium, ele pode continuar usando o item. Desde já agradeço!

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

Se foi o que eu entendi aqui está o script...

vá em data/movements/scripts e crie um arquivo chamado item.lua

e coloque isso dentro

function onEquip(cid, item, position, fromPosition)
local OnlyPremium = true -- somente para premium?

if OnlyPremium == true and not isPremium(cid) then
doPlayerPopupFYI(cid, "você não pode equpar esse item")
else
doPlayerPopupFYI(cid, "você equipou com sucesso!")
return true
end 
end

feito isso, abra o movements.xml e coloque isso dentro

<movevent type="Equip" itemid="ITEMID" slot="right-hand" event="script" value="item.lua"/>

OBS: mude o nome slot="right-hand" para o nome de qual slot o item irá ficar(legs, feet, necklace etc).

 

se não for esse o script ou se der algum erro é só falar.

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 Obrigado! Este script funcionou perfeitamente!
Mas talvez eu não especifiquei direito:

-Estou criando um server que tem itens novos e quero que somente premium use estes itens. Se a premium dele acabar, quando ele logar free, estes itens que poderá ser um helmet, legs, shield, weapon, ring, ammo, necklaces ou boots, devem ser desequipados, caso ele não tenha slot nas BPs que carregam, que o item vá parar no DP para evitar a perda do mesmo.

 

 Acho que seria um Creature/Script/login.lua. Para poder conseguir.

 

 Se puder me ajudar, terá minha eterna gratidão, porquê meu server não pode funcionar sem este sistema de Item Premium. Abração cara!

Link para o post
Compartilhar em outros sites

Okay, de manha(hoje) irei fazer o sistema e posto aqui =D
Agora entendi o que você quer ^^

 

OBS: é premium normal(!buypremium/premium points) ou outro tipo de premium(vip)?

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

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

O tem premium é da premium normal, nada de vip. É como as magias premium, só que é importante no login do char, checar se é premium ou free para retirar os itens premium se for free.

Link para o post
Compartilhar em outros sites

Okay, irei providenciar o script.

 

Edit.

 

Aqui o script, não sei se é isso, mas deve ser kkk

vá em data/creaturescripts/script e crie um arquvio chamado item.lua e coloque isso dentro

function onLogin(cid)

	if getPlayerStorageValue(cid, 2025) == 0 and not isPremium(cid)then
    doPlayerRemoveItem(cid, 105, 1)   -- Mude o 105 pelo ID do seu item
    setPlayerStorageValue(cid, 2025, 2)
    doPlayerSendTextMessage(cid, 22, "Ohhh, você perdeu o item")
    return TRUE
    end
    
    if getPlayerStorageValue(cid, 2025) == 2 and isPremium(cid) then
    doPlayerAddItem(cid, 105, 1)
    doPlayerSendTextMessage(cid, 22, "Você recuperou o item")
    end
return TRUE
end

e adicione isso no creature.xml

 

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

depois vá em data/creaturescripts/script e abra o login.lua

e adicione isso

registerCreatureEvent(cid, "item")

e isso aqui

if getPlayerStorageValue(cid, 2025) < 0 then
		setPlayerStorageValue(cid,2025, 0)
	end

Agora é só testar e ser feliz :P

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

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 Preciso fazer uma pergunta: Este script; quando você loga e é free, você perde o item para sempre certo? Mas se você for Premium e tiver  a STORAGE 2025, você recebe o item no login? E por fim; se você for premium e tiver a STORAGE 2025, você vai ganhar o item toda vez que deslogar e logar novamente? É o que me parece, o script está quase perfeito, mas se tiver este erro o povo vai ficar feliz. :D

 

 Toda forma vou esperar você responder para saber, você já está me ajudando muito cara! VLWZÃO!!! rep+

Link para o post
Compartilhar em outros sites

Eu coloquei a storage para não acontecer isso kkk
o player normal, ao logar no server vai ganhar storage 2025(0), assim que ele se tornar premium e logar, o server vai fazer uma checagem, se ele for premium e tiver a storage(0), vai mudar pra storage(2), se ele for free com storage(2), vai mudar pra storage(1) e remover o item, e só irá receber novamente quando for premium com storage(2) kkk
é algo doido de entender, mas funciona(ou não) kkk

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 Eu testei o script e ele funciona da seguinte maneira:

1 - A STORAGE 2025 é válida para toda conta.

2 - Depois de enviar a mensagem "Ohhh, você perdeu o item" uma vez, ele não envia novamente para nenhum char da conta por ser uma STORAGE pra conta.

3 - Se eu deixar o item no DP por exemplo, ou antes de deslogar guardar o item, ele não vai sumir.

Link para o post
Compartilhar em outros sites

Esqueci de colocar para setar a storage para 1, esse é o motivo de não enviar a mensagem novamente.

mas como é item de dp + char, será um pouco complicado...
Mesmo assim irei tentar fazer.

e teste com esse aqui para vê se remove direitin.

function onLogin(cid)

    if getPlayerStorageValue(cid, 2025) =< 1 and not isPremium(cid)then
doPlayerRemoveItem(cid, 105, 1) -- Mude o 105 pelo ID do seu item
setPlayerStorageValue(cid, 2025, 2)
doPlayerSendTextMessage(cid, 22, "Ohhh, você perdeu o item")
return TRUE
end

if getPlayerStorageValue(cid, 2025) == 2 and isPremium(cid) then
doPlayerAddItem(cid, 105, 1)
setPlayerStorageValue(cid, 2025, 1) -- a linha que faltava kkk
doPlayerSendTextMessage(cid, 22, "Você recuperou o item")
end
return TRUE
end
Editado por joadson (veja o histórico de edições)

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 Joadson, eu testei e não funcionou, dizia que o end da linha 3 está no lugar errado, tente de todas as meneiras e até corrigi isto, mas não teve efeito algum.

 No entanto, resolvi o problema que sem sua ajuda seria impossível:

 

 Criei uma sala Premium com quests para recuperar os itens de quest (ITENS PREMIUM), em todo o SQM da sala, coloquei isto:
 

local npos = {x=1532, y=1520, z=8} --- posição para onde sera teleportado
 
 
function onStepIn(cid, item, position, fromPosition, toPosition)
 
if isPremium(cid) then
doPlayerSendCancel(cid, "")
else
doPlayerSendTextMessage(cid,25,"Acesso negado para Free Account - Voce foi levado para area Free")
doPlayerSendTextMessage(cid,25,"Seus itens premium foram removidos - Renove sua Premium Account e recupere seus itens na sala premium no Templo de Cormassyo")
-- ITENS PREMIUM
-- Great Shield
doPlayerRemoveItem(cid,2522,1)
setPlayerStorageValue(cid,10000,2)
 
 
doTeleportThing(cid, npos)
doSendMagicEffect(npos,10)
end
return true
end

 

 

 Assim se o cara for free, será levado para o Templo da área free caso deslogue dentro da sala, ou ainda eu espalho este ACTIONID em pontos estratégicos de áreas PREMIUM evitando que os player andem por aí com itens premium. Como viu, este script também remove os itens PREMIUM e envia um aviso.

 

 Já nos baús da sala PREMIUM, eu fiz isto:

 

function onUse(cid, item, frompos, item2, topos)
 
if item.uid == 10000 then
if getPlayerStorageValue(cid,10000) == 2 and getPlayerStorageValue(cid,8000) == 1 then
doPlayerSendTextMessage(cid,25,"Adicionado Great Shield")
doPlayerAddItem(cid,2522,1)
setPlayerStorageValue(cid,10000,1)
else
doPlayerSendTextMessage(cid,25,"Voce nao pode recuperar este item!")
end
 
end
return TRUE
end

 

 

 10000 é o STORAGE que você ganha quando perde os itens, 8000 é o STORAGE após fazer a quest (Clicar no baú). Como viu, precisa ter os dois para recuperar o item, resumindo: Você precisa ter feito a quest e ter perdido o item para poder recuperá-lo.

 Com este sistema sei que não terei mais problemas com os ITENS PREMIUM. Obrigado! Tudo de bom cara! Claro! Você sempre me ajudando muito! Até a próxima dúvida!

Editado por Steeven (veja o histórico de edições)
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