Ir para conteúdo
  • Cadastre-se

Derivado [Script] Item ao matar um player


Posts Recomendados

Ola pessoal, preciso de um script que quando uma pessoa matar a outra no pvp, quem matou ganhe um item. Se alguém puder ajudar eu agradeço.

 

Vale REP +

Link para o post
Compartilhar em outros sites

Qual item? Qual TFS está usando?

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
1 hora atrás, Rusherzin disse:

Qual item? Qual TFS está usando?

 

Na realidade eu vou fazer um outro tipo de moeda, ainda to pensando no que vai ser, e eu to usando o PDA 1.0

Link para o post
Compartilhar em outros sites

Aí mano brau para Tfs

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 = 2152,
        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).
    },

    killMessage = {
        use = true,
        text = "Voce matou o player |TARGETNAME|!",
        messageClass = MESSAGE_STATUS_CONSOLE_BLUE
    },

    broadcastMessage = {
        use = false,
        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 = "MIX KILL!", -- Only 9 letters! No "commands" here.
        color = 144
    },

    targetAnimation = {
        use = true,
        text = "Morri!", -- Only 9 letters! No "commands" here.
        color = 180
    }
}

function onDeath(cid, corpse, deathList)
    for i = 1, math.min(config.affected, getConfigInfo('deathAssistCount')) do
        local killer = deathList
        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, 5)
            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
 

Link para o post
Compartilhar em outros sites

 

Seria algo mais ou menos assim:

 <event type="kill" name="Reward" event="script" value="reward.lua"/>
function onKill(cid, target)

if isPlayer(cid) and isPlayer(target) then
    if getPlayerIp(cid) ~= getPlayerIp(target) then
		local itemid = 2160
		doPlayerAddItem(cid, itemid, 1)
	end
end
return true
end

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
31 minutos atrás, Rusherzin disse:

 

Seria algo mais ou menos assim:


 <event type="kill" name="Reward" event="script" value="reward.lua"/>

function onKill(cid, target)

if isPlayer(cid) and isPlayer(target) then
    if getPlayerIp(cid) ~= getPlayerIp(target) then
		local itemid = 2160
		doPlayerAddItem(cid, itemid, 1)
	end
end
return true
end

 

 

Exatamente ! So pela leitura do script eu entendi, mas esse script ta funcional ou foi so um exemplo? Mas é exatamente disso ai que eu preciso amigo.

Link para o post
Compartilhar em outros sites

Não testei, mas creio que esteja funcional. Só que na hora de testar, ele não vai dar a recompensa se o ip for igual, aconselho a tirar aquela condição antes de testar.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
2 horas atrás, Rusherzin disse:

Não testei, mas creio que esteja funcional. Só que na hora de testar, ele não vai dar a recompensa se o ip for igual, aconselho a tirar aquela condição antes de testar.

Antes de mais nada, onde eu devo exatamente colocar o script?

 

Se for no creaturescripts.xml eu ja testei e mesmo removendo a condição não funcionou :x

Link para o post
Compartilhar em outros sites

Sim, é um creaturescript. Deu algum erro? Não sei se as funções são compatíveis com a versão que tu me indicou.

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
29 minutos atrás, Rusherzin disse:

Sim, é um creaturescript. Deu algum erro? Não sei se as funções são compatíveis com a versão que tu me indicou.

 

Erro não deu, pelo menos no game e no console não deu nenhum erro. Mas quando o player é morto, eu não recebo o item.

Link para o post
Compartilhar em outros sites

Isso é estranho, costumava usar um script quase idêntico a esse e ele funcionava. Não lembro se precisa registrar no login.lua. Mas tenta.
 

registerCreatureEvent(cid, "Reward")

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
16 minutos atrás, Rusherzin disse:

Isso é estranho, costumava usar um script quase idêntico a esse e ele funcionava. Não lembro se precisa registrar no login.lua. Mas tenta.
 


registerCreatureEvent(cid, "Reward")

 

Registrei no login.lua e tirei condição de IP mas mesmo assim ele não funcionou.. o egraçado é que ele não retorna erro.

Link para o post
Compartilhar em outros sites
1 minuto atrás, Deemolidor disse:

Registrei no login.lua e tirei condição de IP mas mesmo assim ele não funcionou.. o egraçado é que ele não retorna erro.

Pois é, tenta botar uns prints para ver se aparecem no console, aí podemos saber se ele pelo menos está executando o arquivo.
 

function onKill(cid, target)

print(1)
if isPlayer(cid) and isPlayer(target) then
print(2)
		local itemid = 2160
		doPlayerAddItem(cid, itemid, 1)
end
return true
end

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
4 minutos atrás, Rusherzin disse:

Pois é, tenta botar uns prints para ver se aparecem no console, aí podemos saber se ele pelo menos está executando o arquivo.
 


function onKill(cid, target)

print(1)
if isPlayer(cid) and isPlayer(target) then
print(2)
		local itemid = 2160
		doPlayerAddItem(cid, itemid, 1)
end
return true
end

 

Ele nem mesmo printou... acho que pode ser devido à versão do distro :/

 

Uso esse aqui ===> 

 

Bump

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.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo