Ir para conteúdo
  • Cadastre-se

(Resolvido)Todos ganham item ao matar boss


Ir para solução Resolvido por Bodak Reborn,

Posts Recomendados

28 minutos atrás, Yan Liima disse:

No caso isso daria o item pra qualquer jogador certo? até mesmo um player level 1 que desse 1 de dano no monstro iria receber, sem ajudar/fazer muito esforço. Eu acho que ficaria melhor por uma quantidade certa de dano. Por exemplo se os jogadores desse mais de 50 dano iria receber, já os que não chegaro a bater mais que isso não iria receber. Bom mais como eu não irei utilizar e é você que irá usa fique de sua escolha. Era apenas uma ideia xD

 

Concordo, acho que ficaria justo. Assim todos participariam.

Gostei da ideia.

Link para o post
Compartilhar em outros sites
  • Respostas 51
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

function onDeath(cid, corpse, deathList) local monsters, t = {"Demon","Hydra"}, {} local items = {{2160,1},{2148,2}} -- ITEM ID, QUANTIDADE if isMonster(cid) and isInArray(monsters, getCreatureName

creaturescripts/script nome_arquivo.lua local config = { monster = {"Demon", "Dragon"}, -- nome dos monstros, separado por vírgulas. item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o

@Talesigorvr   se você diz, ta dito!   eu pensei em fazer por onDeath, fiz um esboço, claro que tem que arrumar para checar se o jogador tem CAP suficiente, se não tiver mandar o i

@Yan Liima @ADM Milord Gostei da ideia, porem nao serveria para mim. Por que meu servidor é de war, e a galera seria incentivada a bater no boss pq ele dara o drop de loot de 1 item muito raro, entao a galera iria se matar para pegar o loot. Essa ideia seria uma boa em um ot normal.

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

@Yan Liima @ADM Milord Gostei da ideia, porem nao serveria para mim. Por que meu servidor é de war, e a galera seria incentivada a bater no boss pq ele dara o drop de loot de 1 item muito raro, entao a galera iria se matar para pegar o loot. Essa ideia seria uma boa em um ot normal.

 

Que vale é a intenção! hehehe.

edit:

Poderia depois me passar o link, desse script que ele te ajudou :) por gentileza.

Em 19/05/2016 at 17:00, Talesigorvr disse:

Eu postei essa função para você em algum pedido seu, só pegá-la e aplicar ai.

 

Link para o post
Compartilhar em outros sites
8 minutos atrás, ADM Milord disse:

 

Que vale é a intenção! hehehe.

edit:

Poderia depois me passar o link, desse script que ele te ajudou :) por gentileza.

 

Você quer o post que eu fiz onde ele me mandou o script? nao entendi mt bem, desculpe.

2 horas atrás, Talesigorvr disse:

...


local config = {
monster = {"Demon", "Dragon"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 2, [2] = 5}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}


local function isMC (cid)
	for _, pid in pairs(getPlayersOnline()) do
		if(cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid)) then
			doPlayerSendTextMessage (cid, MESSAGE_STATUS_CONSOLE_BLUE, "MSG caso seja MC.")
		return true
		end
	end
return true
end

function onKill(cid, target)
	if not isMC (cid) then
		if isInArray(config.monster, getCreatureName(target)) then
			for i = 1, #config.item do
				doPlayerAddItem (cid, config.item[i], config.qnt[i])
			end

			doPlayerSendTextMessage (cid, 19, "Você receberá uma recompensa por derrotar o "..getCreatureName(target)..".")
			doSendMagicEffect (getThingPos (cid), config.effect)
		end
	else
		doPlayerSendTextMessage (cid, 19, ".....")
	end
return true
end

 

@Talesigorvr Mano, desculpe o incomodo, porem acabei de testar esse script, ao matar o Dragon, ele morre normalmente porem nao recebo item (NAO ESTOU COM MC). ele apenas manda uma mensagem Laranja no meu Default: 23:20 .....

 

O script anterior, sem o anti mc, estava funcionando perfeitamente!.

Obs: Porque agora tem 2 doPlayerSendTextMessage ?

Link para o post
Compartilhar em outros sites

Tenta assim

local config = {
monster = {"Demon", "Dragon"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 2, [2] = 5}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}


local function isMC (cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return true end
	end
return true
end

function onKill(cid, target)
	if not isMC (cid) then
		if isInArray(config.monster, getCreatureName(target)) then
			for i = 1, #config.item do
				doPlayerAddItem (cid, config.item[i], config.qnt[i])
			end

			doPlayerSendTextMessage (cid, 19, "Você receberá uma recompensa por derrotar o "..getCreatureName(target)..".")
			doSendMagicEffect (getThingPos (cid), config.effect)
		end
	else
		doPlayerSendTextMessage (cid, 19, "MSG caso esteja de MC.")
	end
return true
end

 

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
11 minutos atrás, Talesigorvr disse:

Tenta assim


local config = {
monster = {"Demon", "Dragon"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 2, [2] = 5}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}


local function isMC (cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return true end
	end
return true
end

function onKill(cid, target)
	if not isMC (cid) then
		if isInArray(config.monster, getCreatureName(target)) then
			for i = 1, #config.item do
				doPlayerAddItem (cid, config.item[i], config.qnt[i])
			end

			doPlayerSendTextMessage (cid, 19, "Você receberá uma recompensa por derrotar o "..getCreatureName(target)..".")
			doSendMagicEffect (getThingPos (cid), config.effect)
		end
	else
		doPlayerSendTextMessage (cid, 19, "MSG caso esteja de MC.")
	end
return true
end

 

@Talesigorvr Nada ainda, nao recebo item, e toda vez que eu mato o Dragon agora aparece isso: 23:47 MSG caso esteja de MC.  

Sendo que eu so estou com 1 tibia aberto --'

Link para o post
Compartilhar em outros sites

Ué... tenta trocar 

if not isMC (cid) then

por 

if isMC (cid) then

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
5 minutos atrás, Talesigorvr disse:

Ué... tenta trocar 


if not isMC (cid) then

por 


if isMC (cid) then

@Talesigorvr Certo, testei aqui, agora esta recebendo o item normalmente, porém fui testar com 2 tibias, loguei os 2 chars, fui matar o Dragon com os 2, e recebeu recompensa do msm modo.(era para bloquear pelo uso de mc) :/

Link para o post
Compartilhar em outros sites

Tenta trocar

local function isMC (cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return true end
	end
return true
end

por

local function isMC (cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return false end
	end
return true
end

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
17 minutos atrás, Talesigorvr disse:

Tenta trocar


local function isMC (cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return true end
	end
return true
end

por


local function isMC (cid)
	for _, pid in ipairs(getPlayersOnline()) do
		if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return false end
	end
return true
end

Os 2 nao sao iguais n ?

Link para o post
Compartilhar em outros sites

@Talesigorvr Desculpe voltar a este tópico,  mas mano, o script funcionou perfeitamente, porém algo estranho está acontecendo. Toda vez que eu mato qlqr outro monster (que nao esta citado no script)ou player  aparece mensagem desse script, fica como se fosse um Flood no servidor. Gostaria que esse aviso,  só mande a msg,  caso mate o Demon ou o Dragon. Obg.

 

Esclarecendo: No Script caso o jogador for de MC matar o BOSS (Dragon ou Demon), ele nao receberá recompensa por estar de MC, e essa MSG será enviada a ele: Você nao receberá recompensas usando MC.  Essa mensagem só era para aparecer caso o jogador fosse matar o Boss com MC.

Oque esta acontecendo: Eu vou matar uma Wasp (Exemplo) se eu tiver com MC aberto eu recebo a mensagem como se eu tivesse matando 1 dos bosses, ou se eu matar 1 player também acontece a mesma coisa.

Editado por caioitalo1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
if isMC (cid) and isInArray (config.monster, getCreatureName (target)) then

 

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
3 minutos atrás, Talesigorvr disse:

if isMC (cid) and isInArray (config.monster, getCreatureName (target)) then

 

Ficaria aonde? Tentei trocar aqui sozinho mas acabou dando um errorzinho. :/

Citar

 

local config = {
monster = {"Amon", "Basilisco","Azazel"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 2, [2] = 5}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}


local function isMC (cid)
    for _, pid in ipairs(getPlayersOnline()) do
        if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return false end
    end
return true
end

function onKill(cid, target)
    if isMC (cid) then
        if isInArray(config.monster, getCreatureName(target)) then
            for i = 1, #config.item do
                doPlayerAddItem (cid, config.item, config.qnt)
            end

            doPlayerSendTextMessage (cid, 19, "You will receive a reward for defeating the "..getCreatureName(target)..".")
            doSendMagicEffect (getThingPos (cid), config.effect)
        end
    else
        doPlayerSendTextMessage (cid, 19, "You will not receive a reward for is Multi-Client.")
    end
return true
end

 

 

Link para o post
Compartilhar em outros sites
local config = {
monster = {"Amon", "Basilisco","Azazel"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 2, [2] = 5}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}

local function isMC (cid)
    for _, pid in ipairs(getPlayersOnline()) do
        if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return false end
    end
return true
end
function onKill(cid, target)
	if isInArray (config.monster, getCreatureName (target)) then
		if isMC (cid) then
				for i = 1, #config.item do
					doPlayerAddItem (cid, config.item, config.qnt)
				end
				doPlayerSendTextMessage (cid, 19, "You will receive a reward for defeating the "..getCreatureName(target)..".")
				doSendMagicEffect (getThingPos (cid), config.effect)
		else
			doPlayerSendTextMessage (cid, 19, "You will not receive a reward for is Multi-Client.")
		end
	end
return true
end

 

Editado por Talesigorvr (veja o histórico de edições)

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
25 minutos atrás, Talesigorvr disse:

local config = {
monster = {"Amon", "Basilisco","Azazel"}, -- nome dos monstros, separado por vírgulas.
item = {[1] = 2160, [2] = 2159}, -- [um numero maior que o anterior] = ID do item1, ID do item2, ID do item3...
qnt = {[1] = 2, [2] = 5}, -- [um numero maior que o anterior] = quantidade do item1, quantidade do item2, quantidade do item3...
effect = 27, -- efeito ao matar o monstro.
}

local function isMC (cid)
    for _, pid in ipairs(getPlayersOnline()) do
        if cid ~= pid and getPlayerIp(cid) == getPlayerIp(pid) then return false end
    end
return true
end
function onKill(cid, target)
    if isMC (cid) and isInArray (config.monster, getCreatureName (target)) then
            for i = 1, #config.item do
                doPlayerAddItem (cid, config.item, config.qnt)
            end
            doPlayerSendTextMessage (cid, 19, "You will receive a reward for defeating the "..getCreatureName(target)..".")
            doSendMagicEffect (getThingPos (cid), config.effect)
    else
        doPlayerSendTextMessage (cid, 19, "You will not receive a reward for is Multi-Client.")
    end
return true
end

 

Continua a msm coisa, ao matar algum dos bosses com MC, ele bloqueia a recompensa e manda a msg (Ate ai normal).

Mas qud eu mato um Wasp ou Player, ele manda a msg. :/

@Talesigorvr Mano nao sei se tem algo haver, mas vou mandar meu OnKill (Nao sei se pode ser isso que esteja fazendo acontecer)

 

 

Citar

function onKill(cid, target)
--config----------------------------
local lvl = getPlayerLevel(cid) --players level
local nlvl = getPlayerLevel(cid) + 5 -- add 5 levels
--end-------------------------------
    if isPlayer(target) == TRUE then
        if getPlayerIp(cid) ~= getPlayerIp(target) then
                        local exp = (50 * (lvl) * (lvl) * (lvl) - 150 * (lvl) * (lvl) + 400 * (lvl)) / 5
                        local nexp = (50 * (nlvl) * (nlvl) * (nlvl) - 150 * (nlvl) * (nlvl) + 400 * (nlvl)) / 5
                        local newexp = nexp - exp
                        doPlayerAddExp(cid,newexp)
                        doSendAnimatedText(getPlayerPosition(cid), "Orgasmic~", 198)
                else
            doPlayerAddExperience(cid, -50000)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You have been punished for killing a player of the same IP.")
        end
        end
    return TRUE
end 

 

Link para o post
Compartilhar em outros sites

Editei o comentário com o código, teste novamente.

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
19 minutos atrás, Talesigorvr disse:

Editei o comentário com o código, teste novamente.

Desculpa esta incomadando novamente mas nada ainda... :/ continuo a mesma coisa.

Editado por caioitalo1 (veja o histórico de edições)
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