Ir para conteúdo

Featured Replies

Postado

Tinha postado um anti entrosa que consegui resolver em partes da war continuar depois de uma rodada.

 

Mas tem um problema que se torna grave em questão que os monster ou summon se mata o player no evento entrosa o servidor cai, o erro ocorre no arquivo war.lua

erro na linha 212, abaixo da imagem tem o arquivo lua inteiro..

self.frags[getPlayerGuildId(killer)] = self.frags[getPlayerGuildId(killer)] + 1

 

image.png.7604d475047a5396e03feb410a4132bb.png

 

Mostrar conteúdo oculto

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

Resolvido por WooX

Ir para solução
  • Respostas 7
  • Visualizações 519
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Não tenho como testar e não tenho muita experiência com essa versão do TFS, mas tenta mudar essa função:   function War:kill(killer, cid) self.frags[getPlayerGuildId(killer)] = self.frags[ge

  • @maleskinho A função War:kill não está verificando se o quem matou o player era um player também, e ainda assim a função tenta buscar pelo GuildId de quem matou o player (é óbvio, mas monstros não tem

  • No meu código eu esqueci dos Summons, se o summon de um player matar outro player não vai enviar a mensagem de kill. Tem como melhorar esse código fazendo funcionar o código do @Rusherzin (na verdade

Posted Images

Postado

Não tenho como testar e não tenho muita experiência com essa versão do TFS, mas tenta mudar essa função:
 

function War:kill(killer, cid)
    self.frags[getPlayerGuildId(killer)] = self.frags[getPlayerGuildId(killer)] + 1
    self:broadcast(22, "[City War] \n".. getPlayerName(killer) .. " matou " .. getPlayerName(cid) .. ".\n" .. self:getPlacarString())
end

Deixando assim:
 

function War:kill(killer, cid)
    if(killer:isMonster()) then
        local master = killer:getMaster()
        if(not master or not master:isPlayer()) then
            return true
        end
        killer = master
    end

    self.frags[getPlayerGuildId(killer)] = self.frags[getPlayerGuildId(killer)] + 1
    self:broadcast(22, "[City War] \n".. getPlayerName(killer) .. " matou " .. getPlayerName(cid) .. ".\n" .. self:getPlacarString())
end

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Postado
  • Solução

@maleskinho A função War:kill não está verificando se o quem matou o player era um player também, e ainda assim a função tenta buscar pelo GuildId de quem matou o player (é óbvio, mas monstros não tem GuildId). 

 

Testa ai.

Mostrar conteúdo oculto

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Postado
  • Autor
  Em 08/04/2018 em 14:54, Rusherzin disse:

Não tenho como testar e não tenho muita experiência com essa versão do TFS, mas tenta mudar essa função:
 


function War:kill(killer, cid)
    self.frags[getPlayerGuildId(killer)] = self.frags[getPlayerGuildId(killer)] + 1
    self:broadcast(22, "[City War] \n".. getPlayerName(killer) .. " matou " .. getPlayerName(cid) .. ".\n" .. self:getPlacarString())
end

Deixando assim:
 


function War:kill(killer, cid)
    if(killer:isMonster()) then
        local master = killer:getMaster()
        if(not master or not master:isPlayer()) then
            return true
        end
        killer = master
    end

    self.frags[getPlayerGuildId(killer)] = self.frags[getPlayerGuildId(killer)] + 1
    self:broadcast(22, "[City War] \n".. getPlayerName(killer) .. " matou " .. getPlayerName(cid) .. ".\n" .. self:getPlacarString())
end

 

@Rusherzin Mesmo erro, mas obrigado por tenta ajudar

 

  Em 08/04/2018 em 14:54, Way20 disse:

@maleskinho A função War:kill não está verificando se o quem matou o player era um player também, e ainda assim a função tenta buscar pelo GuildId de quem matou o player (é óbvio, mas monstros não tem GuildId). 

 

Testa ai.

Mostrar conteúdo oculto

 

@Way20 Deu certo amigo, era o único erro nesse evento tinha outro mas consegui resolver.

 

Muito Obrigado :D

Postado
  Em 08/04/2018 em 16:39, maleskinho disse:

@Rusherzin Mesmo erro, mas obrigado por tenta ajudar

 

@Way20 Deu certo amigo, era o único erro nesse evento tinha outro mas consegui resolver.

 

Muito Obrigado :D

 

No meu código eu esqueci dos Summons, se o summon de um player matar outro player não vai enviar a mensagem de kill. Tem como melhorar esse código fazendo funcionar o código do @Rusherzin (na verdade o código dele está correto, mas devido ao uso de metatables no script ele confundiu sua distro com TFS 1.x).

 

Sumona um monstro qualquer e deixa ele matar algum player inimigo na area Anti-Entrosa, verifica se envia a mensagem dizendo que o dono do summon matou o player. Muda essa função.

function War:kill(killer, cid)
	if (isPlayer(killer) or (isMonster(killer) and getCreatureMaster(killer))) then
		killer = isPlayer(killer) and killer or getCreatureMaster(killer)
		self.frags[getPlayerGuildId(killer)] = self.frags[getPlayerGuildId(killer)] + 1
		self:broadcast(22, "[City War] \n".. getPlayerName(killer) .. " matou " .. getPlayerName(cid) .. ".\n" .. self:getPlacarString())
	end
end

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

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.6k

Informação Importante

Confirmação de Termo