Ir para conteúdo

Featured Replies

Postado

Desculpe meu portugues ruim, eu sou do chile.

Eu tenho um script que fornece um item para um jogador quando ele mata outro jogador. Eu preciso de um script que impeça o jogador de ganhar a recompensa quando ele estiver usando multiclientes para obtê-la.

Citar

 

aqui está o script:

local config = {
    affected = 10, -- how many players (deathAssits) from table deathList should this script be executed for?
 
    killStorageValue = 3943,
    deathStorageValue = 3944,
 
    -- commands for the texts (those inside of ||, example: |KILLS| to show skills): KILLS, KILLERNAME, TARGETNAME
    rewardItem = {
        use = true,
        itemid = 5953,
        minLevel = false, -- false if you don't want any level req
        minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed).
        text = "This marijuana belongs to |TARGETNAME| [|TARGETLEVEL|] who was killed by |KILLERNAME| [|KILLERLEVEL|]."
    },
 
    killMessage = {
        use = true,
        text = "You owned |TARGETNAME|! You have now |KILLERKILLS| kills!",
        messageClass = MESSAGE_STATUS_CONSOLE_BLUE
    },
 
    broadcastMessage = {
        use = true,
        minLevel = false, -- false if you don't want any level req
        minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed).
        text = "|KILLERNAME| [|KILLERLEVEL|] just killed |TARGETNAME| [|TARGETLEVEL|]!",
        messageClass = MESSAGE_STATUS_WARNING
    },
 
    killerAnimation = {
        use = true,
        text = "Frag!", -- Only 9 letters! No "commands" here.
        color = 215
    },
 
    targetAnimation = {
        use = true,
        text = "Owned!", -- Only 9 letters! No "commands" here.
        color = 215
    }
}
 
function onDeath(cid, corpse, deathList)
    for i = 1, math.min(config.affected, getConfigInfo('deathAssistCount')) do
        local killer = deathList[i]
        if(isPlayer(killer) == TRUE) then
            local targetKills = math.max(0, getPlayerStorageValue(cid, config.killStorageValue)) + 1
            local targetDeaths = math.max(0, getPlayerStorageValue(cid, config.deathStorageValue)) + 1
 
            local killerKills = math.max(0, getPlayerStorageValue(killer, config.killStorageValue)) + 1
            local killerDeaths = math.max(0, getPlayerStorageValue(killer, config.deathStorageValue)) + 1
 
            setPlayerStorageValue(killer, config.killStorageValue, targetKills)
            setPlayerStorageValue(cid, config.deathStorageValue, targetDeaths)
 
            local killerLevel = getPlayerLevel(killer)
            local targetLevel = getPlayerLevel(cid)
            local levelDiff = targetLevel - killerLevel
 
            local values = {
                ["KILLERKILLS"] = killerKills,
                ["KILLERDEATHS"] = killerDeaths,
                ["KILLERNAME"] = getCreatureName(killer),
                ["KILLERLEVEL"] = killerLevel,
 
                ["TARGETKILLS"] = targetKills,
                ["TARGETDEATHS"] = targetDeaths,
                ["TARGETNAME"] = getCreatureName(cid),
                ["TARGETLEVEL"] = targetLevel
            }
 
            function formateString(str)
                return(str:gsub("|([A-Z]+)|", (function(a) return values[a] end)))
            end
 
            if(config.rewardItem.use and (not config.rewardItem.minLevel or targetLevel >= config.rewardItem.minLevel) and (not config.rewardItem.minLevelDiff or levelDiff >= config.rewardItem.minLevelDiff)) then
                local uid = doPlayerAddItem(killer, config.rewardItem.itemid, 1)
             doItemSetAttribute(uid, "description", formateString(config.rewardItem.text))
            end
            if(config.killMessage.use) then
                doPlayerSendTextMessage(killer, config.killMessage.messageClass, formateString(config.killMessage.text))
            end
            if(config.broadcastMessage.use and (not config.broadcastMessage.minLevel or getPlayerLevel(cid) >= config.broadcastMessage.minLevel) and (not config.broadcastMessage.minLevelDiff or levelDiff >= config.broadcastMessage.minLevelDiff)) then
                broadcastMessage(formateString(config.broadcastMessage.text), config.broadcastMessage.messageClass)
            end
            if(config.killerAnimation.use) then
                doSendAnimatedText(getCreaturePosition(killer), config.killerAnimation.text, config.killerAnimation.color)
            end
            if(config.targetAnimation.use) then
                doSendAnimatedText(getCreaturePosition(cid), config.targetAnimation.text, config.targetAnimation.color)
            end
        end
    end
 
    return true
end

 

Muito obrigado!

 

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.1k
  • Posts 512.6k

Informação Importante

Confirmação de Termo