Ir para conteúdo
  • 0

Black / Red Skull Aol / Amulet


Quorra

Pergunta

Quero 2 aol / amuletos diferentes, então acho que precisarei de 2 Scripts, um para Red Skull e outro para Black Skull.



 

Base dos 2: AOL infinito, quando char morre o amuleto continua lá, e não perde items.

 

Diferencial:

 

Red Skull Amulet: um char normal, ao morrer, perdera apenas 80% de experiencia, não os 100% por causa da morte, enquanto o mesmo char, se for VIP, perdera apenas 50% de experiencia.

 

Black Skull Amulet: um char normal, ao morrer, perdera apenas 30% de experiencia, não os 100% por causa da morte, enquanto o mesmo char, se for VIP, perdera apenas 10% de experiencia.

 

 

Creio que será um bom desafio para os melhores scripters!

 

Lembrando que todos que estão me ajudando tem chances de estar na Staff de meu server.

 

Agradeço se conseguirem fazer isso.

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Quando morremos, perdemos por exemplo, 100 de experiencia. Com o aol red, só irá perder 80 (80%) de experiencia, e se o char for vip vai perder apenas 50 (50%), entendeu?

 

PS: as quantidades de exp são apenas exemplos.

 

O amuleto é um AOL infinito.

 

Qualquer coisa: msn: willovni25@hotmail.com / Skype: dreamer.kof

Editado por Quorra
Link para o comentário
Compartilhar em outros sites

  • 0

Me passe a Storage dos VIPS, e se tiver de players normais. E também preciso que você abra o arquivo login.lua na pasta creaturescripts, aperte CTRL + F e após isso digite EXPERIENCE, e então me diga o valor que está na mesma linha, no meu caso é * 10.

Editado por Roksas
Link para o comentário
Compartilhar em outros sites

  • 0

local config = { 
            redSkullAmulet = 1,
            usarVipSystem = "enabled", -- Se não quiser usar o vip system e usar o premium system deixe "disabled"
            vipStora = 1,
            premium = "enabled", -- Configure com enabled ou disabled
            newLossPercent = 80, -- Aqui você pode editar de 10 a 100%
} 
function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
if not isPlayer(cid) then
  return true or 0
end
    if getPlayerItemCount(cid, config.redSkullAmulet) >= 1 then
         if(getPlayerStorageValue(cid, config.vipStora) >= 1) then
             doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, config.newLossPercent)
         elseif(config.premium == "enabled" and config.usarVipSystem == "disabled" and getPlayerPremiumDays(cid) >= 1) then
             doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, config.newLossPercent)
         end
    end
end

 

tag:

<event type="death" name="RedSkullAmulet" event="script" value="nomedoscript.lua"/>

 

POde usar o primeiro script para a base do outro..

Link para o comentário
Compartilhar em outros sites

  • 0

Tenho ideia de como fazer, até hoje postarei o resultado!

 

Smix acabou com minha graça kkkkkkk. Eu estava fazendo, vlw a tentativa ! Bença :))

 

Cara, de novo vou lhe avisar. Não poste coisas que não ajudam a resolver a dúvida do tópico, isso é flood. REP- assim que liberar aqui.

Link para o comentário
Compartilhar em outros sites

  • 0

Smix

No caso, seu script verifica se o player possui o amulet e se possuir a storage vip ou premiumdays, adiciona a nova porcentagem de exp ao morrer, no caso 80%.

 

Quorra

No caso se possuir a storage vip/premiumdays (dependendo do seu sistema), você quer que o player free red skull com o amulet perca 80% da exp e se for vip/p.a perca 50%, certo ? O mesmo para o black skull só que 30% (free) e 10% (vip/p.a).

 

Aproveitando o script do Smix, se me permite...

Abra a pasta data/creaturescripts/scripts e crie um arquivo chamado redamulet.lua

Adicione o script:

 

local config = {

amulet = 1111,

vipSystem = "enabled",

vipStorage = 2222,

premium = "enabled",

newLossPercent = 80,

vipLossPercent = 50,

}

function onDeath(cid, corpse, lastHitKiller, mostDamageKiller, deathList)

if not isPlayer(cid) then

return true or 0

end

if (getPlayerItem(cid, config.amulet) == 1) and getPlayerSkullType(cid) >= 4 then

if (getPlayerStorageValue(cid, config.vipStorage) >= 1) and getPlayerPremiumDays(cid) >= 1 then

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, config.vipLossPercent)

doCreatureSetDropLoot(cid, false)

elseif(config.premium == "disabled" and config.vipSystem == "disabled" and getPlayerPremiumDays(cid) <= 0) then

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, config.newLossPercent)

doCreatureSetDropLoot(cid, false)

end

return true

end

end

 

Vermelho: ItemID do amuleto.

Amarelo: Se o Vip System está enabled (habilitado) disabled (desabilitado).

Roxo: StorageID de seu Vip System.

Azul: Se a Premium Account está enabled (habilitado) disabled (desabilitado).

Verde: Porcentagem de perda de Exp Free como Red Skull.

Rosa: Porcentagem de perda de Exp Vip/P.A como Red Skull.

 

Abra o arquivo login.lua da mesma pasta (data/creaturescripts/scripts) e adicione a linha script junto as outras:

registerCreatureEvent(cid, "RedSkullAmulet")

Agora volte a pasta data/creaturescripts e abra o arquivo creaturescripts.xml

Adicione a tag:

<event type="death" name="RedAmulet" event="script" value="redamulet.lua"/>

Para fazer Black Skull Amulet, apenas troque a parte:

getPlayerSkullType(cid) >= 4 then

por:

getPlayerSkullType(cid) >= 5 then

e reconfigure com sua preferência.

Editado por HidekiKty
Link para o comentário
Compartilhar em outros sites

  • 0

HidekiKty, meu problema é mais fundo, porque alem disso, preciso de um sistema VIP, de preferencia do Vodkart, mais que a VIp seja comprada por item, não por comando, e não acho esse sistema completo... O unico que "achei" o tópico tava com os spoilers bugados. Poderiam me passar o sistema que preciso já com esse script dos amuletos configurados ? Agradeço MESMO.

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz aqui o sistema de comprar VIP por item usando a VIP do Vodkart:

 

function onUse(cid, item)
local days = 10 -- Dias que serão adicionados
local cobrar = "sim" -- Cobrar? (Sim / Não)
local price = 50000 -- Preço

if cobrar == "sim" and not doPlayerRemoveMoney(cid, price) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa de "..price.." gold coins para comprar a VIP.") return true
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Foram adicionados "..days.." dias de VIP em seu character.")  
addCharacterAcess(cid, days)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui agora "..getCharacterDays(cid).." dias de VIP. Ela acaba em "..getVipAcessDate(cid))
return true
end

 

Agora o script dos amuletos:

 

creaturescripts.xml:

 

<event type="death" name="Amulets" script="amulets.lua"/>

 

login.lua:

 

registerCreatureEvent(cid, "Amulets")

 

amulets.lua:

 

function onDeath(cid)
vipSystem = "enabled" -- VIP System ativado? (enabled / disabled)
a = {
[1111] = {skull = 4, newLossPercent = 80, vipLossPercent = 50, loot = false},
[1112] = {skull = 5, newLossPercent = 30, vipLossPercent = 10, loot = false},
}

b = a[getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid]

if not b then return true end
if getPlayerSkullType(cid) == b.skull then
doCreatureSetDropLoot(cid, b.loot)
if vipSystem == "enabled" and HaveCharaterAcess(cid) then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, b.vipLossPercent)
elseif vipSystem == "enabled" and not HaveCharaterAcess(cid) or vipSystem == "disabled" then
doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, b.newLossPercent)
end
end
return true
end

 

 

Configurando:

vipSystem = "enabled" -- VIP System ativado? (enabled / disabled)
a = {
[1111] = {skull = 4, newLossPercent = 80, vipLossPercent = 50, loot = false},
[1112] = {skull = 5, newLossPercent = 30, vipLossPercent = 10, loot = false},
}

 

A tabela funciona assim:

[id do amuleto] = {id da skull, porcentagem de xp que free perde, porcentagem de xp que VIP perde, dropar loot? (true, false)}

 

Com ela, você pode colocar mais amuletos nesse único script quase sem mudar nada.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...