Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Queria um tile pro meu ot 8,60

 

- Só passa se tiver guild

- Tem que ter 5 membros da guild ou mais (todos acima do lvl 50)

- Quando um membro (não todos) passa pelo tile manda uma msg pra todos online (A guild X está entrando no castelo)

Link para o post
Compartilhar em outros sites
function onStepIn(cid, item, position, fromPosition)
    --- config elton123  ---
    local exhaust = 20  -- Tempo para player poder manda messagem denovo! (1 por segundos)
    local frase1 = "O player"  -- frase que vem antes do nome da guild
    local frase2 = "da guild"  -- frase que vem antes do nome dos players
    local frase3 = "está invadindo o castelo."   -- frase que vem depois do nome do player
    --- config elton123  ---
    if getPlayerStorageValue(cid, 14799) >= os.time() and doPlayerSendCancel(cid, "aguardando "..(getPlayerStorageValue(cid, 14799) - os.time()).." segundos.") then
        return true
    end
    broadcastMessage(""..frase1.." ["..getCreatureName(cid).."] "..frase2.." ["..getPlayerGuildName(cid).."] "..frase3.." ", MESSAGE_STATUS_WARNING)
    setPlayerStorageValue(cid, 14799, os.time() + exhaust)
    return true
end
Link para o post
Compartilhar em outros sites

Em lib/050-function adicione:

function getGuildMembers(GuildId)
local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");")
	  if (query:getID() ~= -1) then  
		 repeat
				table.insert(players,query:getDataString("name"))
				until not query:next()  
				query:free()
		 end
		 return #players > 0 and players or false
end

o tile:

http://pastebin.com/raw.php?i=7vdESjFS

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

Em lib/050-function adicione:

function getGuildMembers(GuildId)
local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");")
	  if (query:getID() ~= -1) then  
		 repeat
				table.insert(players,query:getDataString("name"))
				until not query:next()  
				query:free()
		 end
		 return #players > 0 and players or false
end

o tile:

http://pastebin.com/raw.php?i=7vdESjFS

 

 

 

Parece que deu ruim, inciei o ot com esse script, todas as guilds foram deletadas e olha o que apareceu no console qnd abriu

 

RU6RMXn.png

Link para o post
Compartilhar em outros sites

vdd arrumei o erro, ta ai o movements:

 

function onStepIn(cid, item, position, fromPosition)
local c_amount, k = 5, 0
if not isPlayer(cid) then return true end
if getPlayerGuildId(cid) <= 0 or #getGuildMembers(getPlayerGuildId(cid)) < c_amount then
pass = false
else
for _, var in ipairs(getGuildMembers(getPlayerGuildId(cid))) do
if db.getResult("SELECT `level` FROM `players` WHERE `id` = "..getPlayerGUIDByName(var)):getDataInt("level") >= 50 then
k = k +1
if k > c_amount then break end
end
end
pass = k < c_amount and false or true
end
if not pass then
doPlayerSendCancel(cid,"você precisa estar em guild ou sua guild precisa ter no minimo "..c_amount.." jogadores level 50 ou mais.") 
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) 
doTeleportThing(cid, fromPosition, true)
return true
end
doBroadcastMessage("A guild "..getPlayerGuildName(cid).." Está penetrando no castelo.")
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

Nossa vc é fera, obrigadão, to te dando uns reps por aí

 

Se liga, ta quase tudo perfeito, menos:

 

doBroadcastMessage("A guild "..getPlayerGuildName(cid).." Está penetrando no castelo.")

Essa msg não é enviada qnd eles conseguem passar

 

E outras duas coisas que eu não me liguei em pedir, mas iam ficar muito ruins sem elas

1- IP, o unico trabalho que os players vão ter vai ser pegar MC, pesquisei mt consegui achar um script se checava se os caras tem o mesmo IP, mas não to conseguindo adaptar, pega a base ai ve se vc consegue

local playersNeeded = 5
local ipsNeeded = 5
local minimumLevel = 10
local storageId = 47582

local function sendPlayersList(cid, list)
for i, pid in ipairs(list) do
local level = getPlayerLevel(pid) < minimumLevel and " - " .. getPlayerLevel(cid) .. " level " or ""
local valid = getCreatureStorage(pid, storageId) > 1 and " - already received!" or ""
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(pid) .. level)
end
end

function onSay(cid, words, param, channel)
if(getPlayerGuildLevel(cid) == 3) then
local leaderGuild = getPlayerGuildId(cid)
local players = getPlayersOnline()
local guildMembersValid = {}
local guildMembersInvalid = {}
for i, pid in ipairs(players) do
if(leaderGuild == getPlayerGuildId(pid)) then
if(getPlayerLevel(pid) >= minimumLevel and tonumber(getCreatureStorage(pid, storageId)) < 2) then
table.insert(guildMembersValid, pid)
else
table.insert(guildMembersInvalid, pid)
end
end
end

if(#guildMembersValid >= playersNeeded) then
local IPs = {}
for i, pid in ipairs(guildMembersValid) do
local ip = getPlayerIp(pid)
if(IPs[ip] == nil) then
IPs[ip] = ip
end
end
if(#IPs >= ipsNeeded) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that received points:")
sendPlayersList(cid, guildMembersValid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that did not receive points:")
sendPlayersList(cid, guildMembersInvalid)
local accounts = {}
for i, pid in ipairs(guildMembersValid) do

local item = doCreateItemEx(6527, 20)
doPlayerAddItemEx(cid, item, true)

table.insert(accounts, getPlayerAccountId(pid))
doCreatureSetStorage(pid, storageId, os.time())
end
-- aqui coloca pra dar uma vez pro líder
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid (" .. playersNeeded .. " required), but you have together only " .. #IPs .. " IPs (" .. ipsNeeded .. " required)")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:")
sendPlayersList(cid, guildMembersValid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:")
sendPlayersList(cid, guildMembersInvalid)
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid, " .. playersNeeded .. " required. Minimum level required is " .. minimumLevel)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:")
sendPlayersList(cid, guildMembersValid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:")
sendPlayersList(cid, guildMembersInvalid)
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.")
end
return true
end

 

2- E outra os caras invadem e os donos não podem matar eles sem catar frag, não sei se isso é possivel:

Tem como qnd passarem pelo piso pegarem PK como se tive-sem matado alguem pros caras que vierem conseguirem matar eles?
Pensei em colcoar PVenforced tile, mas ia ficar meio bosta tlg? Pq os caras não iam ter medo de invadir, tem como isso

 

Vlws brother se é fera!

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