Perfeito! onjogos inovando sempre, inclusive disponibilizando download gratuito.
parabens!
Por BenitZz, 14 de mar. de 2013 em Archived
Perfeito! onjogos inovando sempre, inclusive disponibilizando download gratuito.
parabens!
Perfeito! onjogos inovando sempre, inclusive disponibilizando download gratuito.
parabens!
Obrigado tamo nessa tamo junto.
@up
Adicionado Painel Guild Shop agora remove e adiciona items, adiciona e remove gild points.
info
Grupo: Conde
Registrado: 03/09/11
Posts: 703
Reputação: +191
Gênero: Masculino
Char no Tibia: Mirade

Nossa Man!Perfeito! Concerteza
Vou Adicionar No Meu Site, Vlw Mesmo!
@Bump
info
Grupo: Campones
Registrado: 23/07/11
Posts: 40
Reputação: +2
Char no Tibia: Sudden Machado

logo em seguida vamos criar a page do shop no modernacc entra com sua conta de admin no site entre e administration [Painel Admin] vai em pages e clique em Create Page depois em Page Name coloque guildshop e clica em Create na proxima page adicione:
onde eu acho essa create page? não achei por nada.... ja cliquei na painel admin ( ADIMIN PAINEL ) só tem o trem de dar reload em spells e monster e criar novo latest news , oq eu faço?
info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino

@BenitZz, cuidado com flood, isso não é permitido no xtibia, fica alerta verbal.
info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Desculpem reviver o tópico, mas eu gostaria muito desse sistema e o link está quebrado.
Seria possível reupar? Obrigado! *-*
info
Grupo: Administrador
Registrado: 08/07/05
Posts: 5.8k
Reputação: +1.4k
Gênero: Outro

Tópico movido para Lixeira Pública por conter link offline.
info
Grupo: Campones
Registrado: 30/01/13
Posts: 42
Reputação: +10
Testado:
Versao: 8.60 ate 9.82
Painel guildshop admin:
Adiciona items
Remove items
Add e Remove guild points
Como funciona?
É um sistema Guild Points, onde há uma Loja EXCLUSIVA para Guilds no Website, [ModernACC] assim Doadores e Guilds tem seu shop separado.
Primeiramente faça o Download: GuildShop
Depois de baixados coloque a pasta guildshop no:
xampp: c:\xampp\htdocs
Linux: /var/www
apos feito isso vamos executar as seguintes querys em sua database:
lembrando execute 1 de cada vez de preferencia para nao ter nenhum bug.
logo em seguida vamos criar a page do shop no modernacc entra com sua conta de admin no site entre e administration [Painel Admin] vai em pages e clique em Create Page depois em Page Name coloque guildshop e clica em Create na proxima page adicione:
<?php include("guildshop/gifts.php"); ?>e cliqe em Edit Page para salvar, pronto shop system instalado, agora vamos pra parte para entregar o item automaticamente ao player, basta entrar em seu ot na pasta /data/globalevents/scripts crie um arquivo guildshop.lua e adicionar:
function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM guild_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM guild_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doItemSetAttribute(received, "description", 'Bought by ' .. getCreatureName(cid) .. ' [iD:' .. id .. '].') doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received >> "..productn.." << from our guild shop system") db.executeQuery("UPDATE `guild_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough space on container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have a container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received >> "..productn.." << from our guild shop system") db.executeQuery("UPDATE `guild_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough space to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true endem seguida entre em globalevents.xml e adicione a linha:
e logo em seguida vamo por o talkactions para as guild pegarem seus guild points, entre em /data/talkactions/scripts e crie uma arquivo com nome guildpoints.lua e adicione:
local playersNeeded = 8 local ipsNeeded = 6 local minimumLevel = 50 local storageId = 41578 local pointsForPlayer = 20 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 table.insert(accounts, getPlayerAccountId(pid)) doCreatureSetStorage(pid, storageId, os.time()) end db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points`+" .. pointsForPlayer .. " WHERE `id` IN (" .. table.concat(accounts, ',') .. ");") 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 enddepois em talkactions.xml adicione a linha:
e pronto fim do tutorial qualquer duvida so perguntar e nao esqueça de agradecerem
Creditos:
A mim: Por ter quebrado a cabeça pra editar o shop para postar aqui
HastlerHost: Pelo Talkactions
Editado Março 15 por BenitZz