Postado Junho 24, 2015 10 anos Autor 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
Postado Junho 24, 2015 10 anos 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 [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Junho 26, 2015 10 anos Autor @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!
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.