Ir para conteúdo
  • Cadastre-se

(Resolvido)broadcast apenas pra quem tem storage


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Bom no meu servidor existe um evento do castle 24 horas, quando alguém domina o castelo é anunciado para todos por broadcast que o castelo foi demonado... e quando outra guild vai tentar dominar também aparece broadcast para todos, eu preciso de ajuda para que apenas os atuais donos do castelo recebam a mensagem de que tem gente invadindo o castelo... talvez por storage? :hum: segue em spoiler o script do castelo onde são feitas as mensagens... grifei em vermelho quais as mensagens que eu quero que apareça apenas para os donos do castelo

 

Spoiler

function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end

    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end

    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
    doBroadcastMessage("[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
   end
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
   doBroadcastMessage("[Castle of Honor] Atençao! A guild "..getPlayerGuildName(cid).." esta muito proxima do domíinio, ataquem!")
  end
 end
 return true
end

 

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

Peguei uma função que o Vodkart criou e modifiquei.

Não testei, espero que funcione.

 

local function getGuildLeaderId(name)
local leader = db.getResult("SELECT `ownerid` FROM `guilds` WHERE `name` = ".. db.escapeString(name) .. ")")
if(leader:getID() ~= -1) then 
return leader:getDataInt("id")
end
return nil
end

function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end
    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end
    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
    doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE1), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
   end
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
   doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE2), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
  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
12 horas atrás, Talesigorvr disse:

Peguei uma função que o Vodkart criou e modifiquei.

Não testei, espero que funcione.

 


local function getGuildLeaderId(name)
local leader = db.getResult("SELECT `ownerid` FROM `guilds` WHERE `name` = ".. db.escapeString(name) .. ")")
if(leader:getID() ~= -1) then 
return leader:getDataInt("id")
end
return nil
end

function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end
    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end
    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
    doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE1), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
   end
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
   doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE2), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
  end
 end
 return true
end

 

 

[25/08/2016 11:08:06] mysql_real_query(): SELECT `ownerid` FROM `guilds` WHERE `name` = '201320111715') - MYSQL ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 (1064)

[25/08/2016 11:08:06] [Error - MoveEvents Interface] 
[25/08/2016 11:08:06] data/movements/scripts/castelo/COH.lua:onStepIn
[25/08/2016 11:08:06] Description: 
[25/08/2016 11:08:06] (luaDoPlayerSendTextMessage) Player not found

 

:/ desculpa pela demora... ocorreu esse erro ai após pisar no tile

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

@pablobion, qual arquivo que seta o storage "COH_PREPARE"?

Eu pensei que fosse uma palavra, mas aparentemente é um número... poderia ver esse arquivo?

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
7 minutos atrás, Talesigorvr disse:

@pablobion, qual arquivo que seta o storage "COH_PREPARE"?

Eu pensei que fosse uma palavra, mas aparentemente é um número... poderia ver esse arquivo?

Spoiler

COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas)
COH_AREA = {{x = 1056, y = 1124, z = 8}, {x = 1096, y = 1185, z = 8}} -- Canto superior esquerdo / inferior direito do Castle

-- // Não mexa daqui para baixo 
COH_STATUS = 201320111714
COH_PREPARE1 = 201320111715 
COH_PUSHSTOR = 201320111716 
COH_PREPARE2 = 201320111717 

function doCastleRemoveEnemies()

 for index, creature in ipairs(getPlayersOnline()) do
  if isInArea(getThingPos(creature), COH_AREA[1], COH_AREA[2]) then
   if getPlayerGuildName(creature) ~= getGlobalStorageValue(COH_STATUS) then
    doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature)))
   end
  end
 end
 return true
end

 

 

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

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

Segundo o log do distro, o erro está nesta linha

local leader = db.getResult("SELECT `ownerid` FROM `guilds` WHERE `name` = ".. db.escapeString(name) .. ")")

 

 

Ali no final, ")" não é esperado.

 

[25/08/2016 11:08:06] mysql_real_query(): SELECT `ownerid` FROM `guilds` WHERE `name` = '201320111715')

Veja que ele aparece no final

 

#edit

 

Tenta esse código:

Spoiler

local function getGuildLeaderId(name)
local leader = db.getResult("SELECT `ownerid` FROM `guilds` WHERE `name` = ".. db.escapeString(name) .. "")
if(leader:getID() ~= -1) then 
return leader:getDataInt("id")
end
return nil
end

function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end
    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end
    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
    doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE1), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
   end
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
   doPlayerSendTextMessage(getGuildLeaderId (COH_PREPARE2), 21, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
  end
 end
 return true
end

 

 

Editado por Enzo Caue (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
function getGuildLeaderName(GuildName) -- function by vodkart
local leader = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = (SELECT `guilds`.`ownerid` FROM `guilds` WHERE `guilds`.`name` = ".. db.escapeString(GuildName) .. ")")
if(leader:getID() ~= -1) then 
return leader:getDataString("name")
end
return nil
end

function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end
    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end
    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
	local leader = getGuildLeaderName(getGlobalStorageValue(COH_PREPARE1))
	local player = getPlayerByName(leader)
	if player then
    doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
	end
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
   end
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
	local leader = getGuildLeaderName(getGlobalStorageValue(COH_PREPARE2))
	local player = getPlayerByName(leader)
	if player then
	doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atençao! A guild "..getPlayerGuildName(cid).." esta muito proxima do domíinio, ataquem!")
	end
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
  end
 end
 return true
end

 

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

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

 

 


[25/08/2016 14:14:37] [Error - MoveEvents Interface] 
[25/08/2016 14:14:37] data/movements/scripts/castelo/COH.lua:onStepIn
[25/08/2016 14:14:37] Description: 
[25/08/2016 14:14:37] (luaDoPlayerSendTextMessage) Player not found

 

:huh:

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

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

arrumei agr

 

esqueci de deletar uma coisa, tenta agr

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
9 minutos atrás, Vodkart disse:

arrumei agr

 

esqueci de deletar uma coisa, tenta agr

o vod, a mensagem só aparece para a ultima guild que pisou no tile.

exemplo:

guild A = dona do castelo
guild B = pisou as 14:28
guild c = pisou as 14:29

a mensagem aparece apenas pra guild B, inves de aparecer somente para A.

desde já agradeço sua ajuda :D

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

que estranho

 

veja bem:

 

   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
	local leader = getGuildLeaderName(getGlobalStorageValue(COH_PREPARE1))
	local player = getPlayerByName(leader)
	if player then
    doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
	end
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
   end

 

ele está mandando mensagem para o lider da guild, que está na storage global 'COH_PREPARE1'

 

então ele manda mensagem pro lider(atual) e depois que manda a mensagem é que é trocada a storage(ai passa o nome da guild na storage)

 

setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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

que estranho

 

veja bem:

 


   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then
	local leader = getGuildLeaderName(getGlobalStorageValue(COH_PREPARE1))
	local player = getPlayerByName(leader)
	if player then
    doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
	end
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
   end

 

ele está mandando mensagem para o lider da guild, que está na storage global 'COH_PREPARE1'

 

então ele manda mensagem pro lider(atual) e depois que manda a mensagem é que é trocada a storage(ai passa o nome da guild na storage)

 


setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))

 



oi vod, eu consegui o que eu queria... tirei metade da primeira linha, que era COH_PREPARE2 blablabla, e na segunda linha modifiquei de COH_PREPARE1 para COH_STATUS que é pra quem é dono do castelo... e deu certo,  só mais uma duvida, inves de aparecer a mensagem apenas para os lideres, e sim para todos os players, eu modifico onde?   " local player = getPlayerByName(leader) " aqui? coloco o que? Obrigado pela ajuda cara <3
 

Spoiler

   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) then
    local leader = getGuildLeaderName(getGlobalStorageValue(COH_STATUS))
    local player = getPlayerByName(leader)
    if player then
    doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
    end
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
   end
   

 

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites

ai você usa o seu script original, sem nenhuma alteração kk

 

que já mandava a mensagem em broadCast

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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

ai você usa o seu script original, sem nenhuma alteração kk

 

que já mandava a mensagem em broadCast


Na verdade não :hum: coloquei o script original agora pra ver, se eu fui tão burro a ponto disso kkkkkk
mas no original ele mandava broadcast pra todos do servidor, e com as alterações suas, do enzo e do talesigorvr ele manda mensagem apenas pra quem é dono do castelo...
não sei dizer quem conseguiu fazer isso hahahahah mas conseguimos chegar onde eu queria... vou dar +rep pros 3 ja que os 3 ajudaram ;D 

agora só preciso saber como enviar o broadcast para todos da guild que é dona do castelo, em vez de mandar só para o lider da guild dona do castelo :hum:

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
2 minutos atrás, pablobion disse:


Na verdade não :hum: coloquei o script original agora pra ver, se eu fui tão burro a ponto disso kkkkkk
mas no original ele mandava broadcast pra todos do servidor, e com as alterações suas, do enzo e do talesigorvr ele manda mensagem apenas pra quem é dono do castelo...
não sei dizer quem conseguiu fazer isso hahahahah mas conseguimos chegar onde eu queria... vou dar +rep pros 3 ja que os 3 ajudaram ;D 

agora só preciso saber como enviar o broadcast para todos da guild que é dona do castelo, em vez de mandar só para o lider da guild dona do castelo :hum:

 

Vou pegar a função aqui, perai!

Agora que vi, o script não é feito em metatable.. então não sei a função exata :\

 

Mas, se quiser dar uma olhada ai, aqui está o link dos metatables do tfs.

Link para o post
Compartilhar em outros sites

ah ta, agora você explicou, você quer que manda a mensagem para todos daquela guild? no caso a que está sendo dominada né?

 

me manda seu script com as modificações que você fez!

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
2 minutos atrás, Vodkart disse:

ah ta, agora você explicou, você quer que manda a mensagem para todos daquela guild? no caso a que está sendo dominada né?

 

me manda seu script com as modificações que você fez!


asuhdusahdasu simm!! no momento está mandando apenas para o lider da guild que está sendo dominada.
 

Spoiler

function getGuildLeaderName(GuildName) -- function by vodkart
local leader = db.getResult("SELECT `players`.`name` FROM `players` WHERE `players`.`id` = (SELECT `guilds`.`ownerid` FROM `guilds` WHERE `guilds`.`name` = ".. db.escapeString(GuildName) .. ")")
if(leader:getID() ~= -1) then 
return leader:getDataString("name")
end
return nil
end

function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end
    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end
    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   

   
   -- primeiro tile --
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) then
    local leader = getGuildLeaderName(getGlobalStorageValue(COH_STATUS))
    local player = getPlayerByName(leader)
    if player then
    doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
    end
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
   end
   
   
   
   
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
    local leader = getGuildLeaderName(getGlobalStorageValue(COH_STATUS))
    local player = getPlayerByName(leader)
    if player then
    doPlayerSendTextMessage(player, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atençao! A guild "..getPlayerGuildName(cid).." esta muito proxima do domíinio, ataquem!")
    end
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
  end
 end
 return true
end

 

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
function onStepIn(cid, item, pos, fromPosition)
 local pos = getThingPos(cid)
 
 if item.actionid == 16203 then 
  if not isPlayer(cid) then
      return true
  end 
  if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then
   doSendMagicEffect(getThingPos(cid), 14)
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  else
   doSendMagicEffect(getThingPos(cid), 2)
      doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[CoH] Você nao pertence a guild "..getGlobalStorageValue(COH_STATUS)..".")
  end
  return true
 end
    if item.actionid == 16202 then
     if not isPlayer(cid) then
      return true
  end
  
  if getPlayerGuildId(cid) > 0 then
   if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then
          doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!")
       setGlobalStorageValue(COH_PREPARE1, -1)
       setGlobalStorageValue(COH_PREPARE2, -1)
       setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid))
       doCastleRemoveEnemies()
    doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estao no comando do castelo, va dominar e impedir isso!")
      end
     else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")
   end
      return true
 end
    if item.actionid == 16200 then
  if not isPlayer(cid) then
      return true
  end
  if getPlayerGuildId(cid) > 0 then
   doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
   
   
   -- primeiro tile --
   if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) then
    	for _, cid in pairs(getPlayersOnline()) do
	if getPlayerGuildId(cid) > 0 and getPlayerGuildName(cid) == getGlobalStorageValue(COH_STATUS) then
    	doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atencao! A guild "..getPlayerGuildName(cid).." esta tentando dominar o castelo, preparem-se!")
 	end
	end   
    setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid))
   end
  else
   doSendMagicEffect(pos, 2)  
   doTeleportThing(cid, fromPosition, false)
   doPlayerSendCancel(cid, "[Castle of Honor] Voce nao possui uma guild.")   
   return true
  end   
 end
 
 if item.actionid == 16201 then
  if not isPlayer(cid) then
      return true
  end
  doSendAnimatedText(pos, "[CoH]", math.random(1, 255))
  if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then
	for _, cid in pairs(getPlayersOnline()) do
	if getPlayerGuildId(cid) > 0 and getPlayerGuildName(cid) == getGlobalStorageValue(COH_STATUS) then
    	doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "[Castle of Honor] Atençao! A guild "..getPlayerGuildName(cid).." esta muito proxima do domíinio, ataquem!")
	end
	end
   setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid))
  end
 end
 return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart  Funcionou direitinho :grin: muito obrigado cara!! +rep

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

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