Ir para conteúdo
  • Cadastre-se

Um Ideia que precisa de Ajuste!


Posts Recomendados

Pessoal, estou com um problema.

Minha ideia é bem simples:

 

  • Time 1 = Storage Z
  • Time 2 = Storage Y
  • Time 1 e Time 2 matam um mesmo Monstro.
  • Se o Player do Time 1 mata o monstro, o monstro ao morrer deixa a mensagem:
  • doCreatureSay(cid, "Time 1 me matou.", TALKTYPE_ORANGE_1)
  • Se o Player do Time 2 mata o monstro, o monstro ao morrer deixa a mensagem:
  • doCreatureSay(cid, "Time 2 me matou.", TALKTYPE_ORANGE_1)

 

Até aqui, está tudo muito simples. O meu problema é que: O Time 1 é formado por alguns Players - digamos, 5.

O Time 1, com todos os seus integrantes atacam o monstro. Quando o monstro está com o Life em vermelho, basta um único membro do Time 2 dar o ultimo HIT para o Time 2 ganhar o evento. Sendo que o Time 1 teve todo o trabalho.

 

Eu queria uma forma que o monstro identifica-se, ao morrer, qual time lhe atingiu mais vezes.

 

Bem, espero que eu tenho sido claro.

Ficarei no Aguardo.

Abraços!

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites

vc fez por onKill ou onDeath?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

muda onStatschange e seta um global storage pra cada time, dai vc faz
 

se o attacker for do time 1 então

setGlobalStorageValue(storagedotime1, getGlobalStorageValue(storagedotime1) + value) 

elseif o attacker for do time 2 então
setGlobalStorageValue(storagedotime2, getGlobalStorageValue(storagedotime2) + value) 
end

qnd ele morrer vc vê qual dos dois global storages é maior e dá o premio pra todos do time 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Deixa eu ver se entendi:

Está supondo que eu adicione +1 value em uma GlobalStorage cada vez que algum membro do time atacar o monstro - usando attacker - e que no final faça uma verificação de qual GlobalStorage está maior?

 

 

OBS: Aqui esta o Script rascunho que fiz apenas pra testar.

function onDeath(cid, corpse, killer)
--==============================================================================--
local monstName = "Dragon" -- Nome do monstro
--==============================================================================--


if isMonster(cid) then
        if string.lower(getCreatureName(cid)) == string.lower(monstName) then
if getPlayerStorageValue(killer[1], 5000) == 1 then
doCreatureSay(cid, "O Time 1 me matou.", TALKTYPE_ORANGE_1)
end
if getPlayerStorageValue(killer[1], 5001) == 1 then
doCreatureSay(cid, "O Time 2 me matou.", TALKTYPE_ORANGE_1)
end
end
end 


return TRUE
end
Editado por Frenesy (veja o histórico de edições)

cms1-pr%C3%AAmio.png

Link para o post
Compartilhar em outros sites

 

OBS: Aqui esta o Script rascunho que fiz apenas pra testar.
function onDeath(cid, corpse, killer)
--==============================================================================--
local monstName = "Dragon" -- Nome do monstro
--==============================================================================--


if isMonster(cid) then
        if string.lower(getCreatureName(cid)) == string.lower(monstName) then
if getPlayerStorageValue(killer[1], 5000) == 1 then
doCreatureSay(cid, "O Time 1 me matou.", TALKTYPE_ORANGE_1)
end
if getPlayerStorageValue(killer[1], 5001) == 1 then
doCreatureSay(cid, "O Time 2 me matou.", TALKTYPE_ORANGE_1)
end
end
end 


return TRUE
end

Nesse caso, seria utilizado um global storage e como o próprio nome já diz, é global.

E na função, não se inclui um creatureid. Apenas o id do value, pois é global (reforçando):

getGlobalStorageValue(valueid)

Então, seria:

local stor = {1234, 5678} -- storage ~ {team1, team2}
local gstor = {5000, 5001} -- global storage ~ {team1, team2}

function onStatsChange(cid, attacker, type, combat, value)
    if value > 0 and type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then
        if getPlayerStorageValue(attacker, stor[1]) <= 0 then
            if getGlobalStorageValue(gstor[1]) < 0 then
                setGlobalStorageValue(gstor[1], 0)
            end
            
            setGlobalStorageValue(gstor[1], getGlobalStorageValue(gstor[1]) + value)
        elseif getPlayerStorageValue(attacker, stor[2]) <= 0 then
            if getGlobalStorageValue(gstor[2]) < 0 then
                setGlobalStorageValue(gstor[2], 0)
            end
            
            setGlobalStorageValue(gstor[2], getGlobalStorageValue(gstor[2]) + value)
        end
    end
    
    return true
end

function onDeath(cid)
    if getGlobalStorageValue(gstor[1]) > getGlobalStorageValue(gstor[2]) then
        doCreatureSay(cid, 'O Time 1 me matou.', TALKTYPE_ORANGE_1)
    else
        doCreatureSay(cid, 'O Time 2 me matou.', TALKTYPE_ORANGE_1)
    end
    
    return true
end

PS: Já que você registra os creature events no arquivo XML do monstro em específico, não tem necessidade de checar o nome do creatureid ou checar se ele é um monstro.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Estou no serviço agora, mas assim que chegar em casa eu testo.

 

 

 

PS: Já que você registra os creature events no arquivo XML do monstro em específico, não tem necessidade de checar o nome do creatureid ou checar se ele é um monstro.

 

Obrigado pela dica. 


#Suicide

Infelizmente, o seu Script não funcionou.

Independente de quem mate - seja Time 1, seja Time 2

O Time 2 sempre recebe a mensagem.

 

#EDIT²

Fiz uma pequena modificação aqui pra mim testar assim que chegar em casa.

 

local stor = {8888, 9999} -- storage ~ {team1, team2}
local gstor = {5000, 5001} -- global storage ~ {team1, team2}


function onStatsChange(cid, attacker, type, combat, value)
    if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then
        if getPlayerStorageValue(attacker, stor[1]) == 1 then
            if getGlobalStorageValue(gstor[1]) < 0 then
                setGlobalStorageValue(gstor[1], 0)
            end
            
            setGlobalStorageValue(gstor[1], getGlobalStorageValue(gstor[1])+1)
        elseif getPlayerStorageValue(attacker, stor[2]) == 1 then
            if getGlobalStorageValue(gstor[2]) < 0 then
                setGlobalStorageValue(gstor[2], 0)
            end
            
            setGlobalStorageValue(gstor[2], getGlobalStorageValue(gstor[2])+1)
        end
    end
    
    return true
end


function onDeath(cid)
    if getGlobalStorageValue(gstor[1]) > getGlobalStorageValue(gstor[2]) then
        doCreatureSay(cid, 'O Time 1 me matou.', TALKTYPE_ORANGE_1)
    else
        doCreatureSay(cid, 'O Time 2 me matou.', TALKTYPE_ORANGE_1)
    elseif getGlobalStorageValue(gstor[1]) == getGlobalStorageValue(gstor[2]) then
    doCreatureSay(cid, 'Empate Tecnico.', TALKTYPE_ORANGE_1)
    end
    
    return true
end
Editado por Frenesy (veja o histórico de edições)

cms1-pr%C3%AAmio.png

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