Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado
  • Este é um post popular.

image.thumb.png.863c3554a3fd60525ecd8ef8cf1c6ec3.png

Feito por: @Storm (testado em tfs 0.4 - firelement, funciona em 0.3)

 

Quem jogou rozinx server provavelmente conheceu a febre do sistema de weapons por points e consecutivamente o sistema Aegis. Pra quem não conhece, no rozinx haviam vários baús e você podia comprar os itens usando pontos. Esses pontos eram obtidos donatando (por volta de 2007-2015), porém na nova geração (2018) foi introduzido o sistema Aegis, um monstro que após você matá-lo 3 vezes recebia 1 ponto vip, e podia então coletar esses pontos para obter as armas pagas de forma gratuita. Trago a vocês uma versão diferente do Aegis. O Star system.

 

Gratidão ao @Storm por criar o script e refazê-lo quase um ano depois, após não reconhecer o próprio script ?

Vc é fera! ?

 

Como funciona:

O star system funciona em conjunto com o Advanced Minin System (elements) (se você preferir), diferente do servidor Rozinx, que entrega pontos vip, o Star system entrega 1 dos 4 massive element substance aleatoriamente (as pedras mais raras e difíceis de obter no mining: Earth, Ice, Fire ou Energy) após você matar 3 estrelas.

 

image.png.bc6eb7744086cb1504d9406cac1f723e.png

 

image.png.0d2fedfdd821205618da93037587a765.png

 

image.png.731d8b2f58e5b02539c5b353ba5063d9.png

 

 

INSTALAÇÃO

 

-- Código para entregar item após matar o monstro

data/creaturescripts/scripts/star.lua:

local config = {
    
    monster = { 
        name = "star",
        count = 3,
        storage = 6665,
        storage2 = 7775
    },
    
    premio = {{8298, 1}, {8302, 1}, {8299, 1}, {8303, 1}} -- {item_id, count}
    
}

function onDeath(cid, corpse, deathList)
    local killer = deathList[1]
    local pos = getCreaturePosition(killer)
    if not isMonster(cid) or not isPlayer(killer) then return true end
    if getPlayerStorageValue(killer, config.monster.storage) == -1 then
        setPlayerStorageValue(killer, config.monster.storage, 0)
    end
    setPlayerStorageValue(killer, config.monster.storage, getPlayerStorageValue(killer, config.monster.storage) + 1)
    if getPlayerStorageValue(killer, config.monster.storage) == config.monster.count then
        doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE)
        local item = config.premio[math.random(1, #config.premio)]
        doPlayerAddItem(killer, item[1], item[2])
        if getPlayerStorageValue(killer, config.monster.storage2) == -1 then
            setPlayerStorageValue(killer, config.monster.storage2, 0)
        end
        setPlayerStorageValue(killer, config.monster.storage2, getPlayerStorageValue(killer, config.monster.storage2) + 1)
        setPlayerStorageValue(killer, config.monster.storage, 0)
        doPlayerSendTextMessage(killer, MESSAGE_STATUS_CONSOLE_RED, "You receive ".. item[2] .." ".. getItemNameById(item[1]) .." by kill ".. config.monster.count .."x the monster ".. config.monster.name ..".")
        return true
    else
        doPlayerSendTextMessage(killer, MESSAGE_STATUS_CONSOLE_BLUE, "You killed ".. getPlayerStorageValue(killer, config.monster.storage) .." of ".. config.monster.count .." ".. config.monster.name ..", There are still ".. config.monster.count - (getPlayerStorageValue(killer, config.monster.storage)) .." ".. config.monster.name .." left to receive the reward.") 
        return true 
    end
    return true
end

data/creaturescripts/creaturescripts.xml:

	<!-- star system -->
	<event type="death" name="Star" event="script" value="star.lua"/>

 

-- Código para checar monstros abatidos e recompensas obtidas

data/talkactions/scripts/starcheck.lua:

local config = {
    
    name = "star",
    count = 3,
    storage2 = 7775
    
}

function onSay(cid, words, param, channel)
    doPlayerPopupFYI(cid, "--- ".. config.name .." Status ---\n\nKills = ".. config.count * getPlayerStorageValue(cid, config.storage2) .."\nRewards = ".. getPlayerStorageValue(cid, config.storage2) ..".")
    return true
end

data/talkactions/talkactions.xml:

	<talkaction log="yes" words="!starcheck" event="script" value="starcheck.lua" />

 

-- Código do monstro

data/monster/star.lua:

<?xml version="1.0" encoding="UTF-8"?>
<monster name="Star" nameDescription="a star" race="blood" experience="10000" speed="500" manacost="200">
<health now="15000000" max="15000000"/>
<look type="294" corpse="6324"/>
    <targetchange interval="2000" chance="0"/>
    <strategy attack="100" defense="0"/>
	<flags>
    <flag summonable="0"/>        
    <flag attackable="1"/>
    <flag hostile="1"/>
    <flag illusionable="0"/>
    <flag convinceable="0"/>
    <flag pushable="0"/>
    <flag canpushitems="1"/>
    <flag canpushcreatures="1"/>
    <flag targetdistance="1"/>
    <flag staticattack="1"/>
    <flag runonhealth="0"/>
  </flags>
  	<attacks>
		<attack name="melee" interval="2000" skill="1000" attack="1000"/>
		<attack name="holy" interval="1500" chance="1000" range="6" radius="7" target="0" min="-100" max="-500">
			<attribute key="areaEffect" value="holydamage"/>
		</attack>
		<attack name="outfit" interval="150" chance="10000" range="6" monster="star" duration="1000">
			<attribute key="areaEffect" value="holydamage"/>
		</attack>
		<attack name="energy" interval="2000" chance="1000" range="6" radius="6" target="0" min="-200" max="-300">
			<attribute key="areaEffect" value="purpleenergy"/>
		</attack>
		<attack name="fire" interval="2000" chance="1000" range="6" radius="5" target="0" min="-100" max="-500">
			<attribute key="areaEffect" value="holydamage"/>
		</attack>
		<attack name="physical" interval="2000" chance="1000" range="6" radius="4" target="0" min="-200" max="-300">
			<attribute key="areaEffect" value="groundshaker"/>
		</attack>
		<attack name="death" interval="3000" chance="1000" range="6" radius="3" target="0" min="-200" max="-700">
			<attribute key="areaEffect" value="holyarea"/>
		</attack>
	</attacks>
	<elements>
        <element energyPercent="20"/>
        <element holyPercent="40"/>
        <element icePercent="-40"/>
        <element firePercent="30"/>
    </elements>

	<script>
    <event name="Star"/>
  </script>
  
  <script>
<event name="noattack"/>
</script>
	
</monster>

data/monster/monster.xml:

<monster name="star" file="star.xml"/>

 

-- Código para os monstros não se matarem com as magias

data/creaturescripts/scripts/noattack.lua:

function onStatsChange(cid, attacker, type, combat, value)
    -- This should block all damage monster cause on eachother expect player summons
    if isMonster(cid) and isMonster(attacker) then
        local master = getCreatureMaster(cid)
        if not master or not isPlayer(master) then
            return false
        end
    end
 
    return true
end

data/creaturescripts/creaturescripts.xml:

	<event type="statschange" name="noattack" event="script" value="noattack.lua"/>

 

  • Respostas 9
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Ja cheguei a jogar o servidor porém eu nem lembrava mais disso, valeu pelo conteúdo.

  • luanluciano93
    luanluciano93

    @Vinni012  local config = { monsterName = "star", countKillMonster = 3, storageKillMonster = 6665, storagePoints = 7775 } function onDeath(cid, corpse, deathList) local killer = deathList[1

Posted Images

Postado

Ja cheguei a jogar o servidor porém eu nem lembrava mais disso, valeu pelo conteúdo.

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

  • 2 months later...
  • 1 month later...

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo