Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/24/17 em todas áreas

  1. [8.6] Invite Players System!

    poko360 e um outro reagiu a Vodkart por uma resposta no tópico

    2 pontos
    Resumo: Para quem já jogou league of legends, o sistema é "parecido" com o Invite Friends, e para quem não jogou irei dar uma breve descrição sobre o sistema. Descrição: O sistema oferece algumas premiações como: Itens, Premium Days, Premium Points(para site) e Outfits. Claro que isso tudo é configurável. A ideia principal do sistema foi que essas premiações fossem exclusivas do sistema, digamos, que os jogadores só fossem recompensados e tivessem certas outfits se ele atingisse num número "X" de pontos por ter ajudado seu servidor a crescer! Como todo mundo almeja algo exclusivo e difícil de ser obtido, iria instigar os jogadores a usar o sistema e convidar seus amigos para o servidor! Como Funciona o Sistema? O sistema foi planejado para que jogadores "espertinhos" não burlassem o sistema e acontece da seguinte maneira: Temos o jogador João e a jogadora Maria: Maria necessita ser level 30 ou menor que 30(Configurável) para utilizar uma talkactions e dizer por quem foi invitada para o servidor, vamos supor que João a convidou Maria para jogar, João por sua vez necessita também ter um level avançado, digamos 50 ou superior(Configurável). Feito com sucesso o uso do sistema, ele funciona da seguinte maneira: OBS: Você pode dizer o nome do jogador mesmo que ele esteja OFFLINE! OBS2: Um ou mais Players podem ser invitador pelo MESMO JOGADOR! ENTÃO QUANTO MAIS PLAYER VOCÊ CHAMAR, MAIS FÁCIL DE RECEBER PONTOS E PREMIAÇÕES O jogador invitado, no caso o João, teria que atingir um número "X" de pontos para receber premiações, por exemplo: * Com 10 Pontos jogão recebe: Itens * Com 25 Pontos jogão recebe: Itens e Premium Points * Com 50 Pontos jogão recebe: Itens * Com 100 Pontos jogão recebe: Itens, Premium Points, Premium Days e Outifit (Claro que isso é tudo configurável em uma Tabela) E como recebo Recebo esses Pontos VODKART SEU FILHO DA PUTA! Se lembra que João Convidou Maria para Jogar? Então... Maria tem que atingir certos leveis para que João receba esses pontos! Por exemplo a tabela do sistema: levels_win = { [50] = 5, [80] = 6, [100] = 8, [150] = 10 } Se Maria atingir level 50, João recebe 5 pontos Se Maria atingir level 80, João recebe 6 pontos Etc... Claro que isso tudo é acumulativo! E sabe o que mais? João recebe Pontos mesmo se estiver ONLINE ou OFFLINE! Sem mais delongas, Vamos instalar o sistema! data\creaturescripts\scripts InviteFriends.lua function onLogin(cid) registerCreatureEvent(cid, "FriendsPoints") if getPlayerStorageValue(cid, _invite_friends.storages[1]) < 0 then setPlayerStorageValue(cid, _invite_friends.storages[1], 0) setPlayerStorageValue(cid, _invite_friends.storages[4], 0) end if getInvitePoints(cid) > 0 then getRewardsFriend(getCreatureName(cid), getPlayerGUID(cid)) end return true end function onAdvance(cid, skill, oldLevel, newLevel) if (skill == SKILL__LEVEL) then if hasInviteFriend(cid) and getPlayerStorageValue(cid, _invite_friends.storages[3]) < newLevel and _invite_friends.levels_win[newLevel] then local f_name, points = getNameFriend(cid), _invite_friends.levels_win[newLevel] local f_pid = getPlayerGUIDByName(f_name) setPlayerStorageValue(cid, _invite_friends.storages[3], newLevel) addInvitePoints(f_name, points) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Invite Friends] você atingiu o level "..newLevel.." e o seu amigou "..f_name.." recebeu "..points.." Friend Points. Obrigado!") if isPlayer(getPlayerByNameWildcard(f_name)) then getRewardsFriend(f_name, f_pid) end end end return true end creaturescript.xml <event type="login" name="FriendsLogin" event="script" value="InviteFriends.lua"/> <event type="advance" name="FriendsPoints" event="script" value="InviteFriends.lua"/> data\talkactions\scripts InviteFriends.lua function onSay(cid, words, param, channel) local param = param:lower() if param == "" or not param then doPlayerSendCancel(cid, "Você precisa digitar o nome de um jogador.") return true elseif param == "points" then doPlayerPopupFYI(cid,"[+] Invite Friend System [+]\n\nvocê tem ["..getInvitePoints(cid).."] Friends Points.") return true elseif hasInviteFriend(cid) then doPlayerSendCancel(cid, "Você já agradeceu o jogador ["..getNameFriend(cid).."] por te convidar a jogar neste servidor.") return true elseif not getPlayerGUIDByName(param) then doPlayerSendCancel(cid, "Desculpe, mas o jogador [" .. param .. "] não existe.") return true elseif getPlayerLevel(cid) > _invite_friends.level_max or db.getResult("SELECT `level` FROM `players` WHERE `id` = "..getPlayerGUIDByName(param)):getDataInt("level") < _invite_friends.level_need then doPlayerSendCancel(cid, (getPlayerLevel(cid) > _invite_friends.level_max and "Desculpe, mas você precisa ter no minimo level ".._invite_friends.level_max.." para usar este comando." or "Desculpe, mas o jogador ["..param.."] precisa ter no minimo level ".._invite_friends.level_need.." para ser escolhido.")) return true elseif getPlayerIp(cid) == tonumber(db.getResult("SELECT `lastip` FROM `players` WHERE `id` = "..getPlayerGUIDByName(param)):getDataString("lastip")) then doPlayerSendCancel(cid, "Desculpe, mas você não pode se auto invitar por estar com o mesmo IP.") return true elseif getCreatureName(cid):lower() == param then doPlayerSendCancel(cid, "Desculpe, mas você não pode se auto invitar.") return true end doInviteFriend(cid, getPlayerGUIDByName(param)) doPlayerSendTextMessage(cid, 25, "Você indicou o jogador "..param..", este sistema é uma forma de agradecer a vocês por trazerem seus amigos para jogar.") doSendMagicEffect(getCreaturePosition(cid), math.random(28,30)) return true end talkactions.xml <talkaction words="/invited;!invited" event="script" value="InviteFriends.lua"/> data/lib InviteFriends.lua _invite_friends = { storages = {202301, 202302, 202303, 202304}, -- points, jogador, recompensa lvl, recompensa items level_max = 20, -- até que level ele precisa falar seu friend level_need = 30, -- que lever o jogador precisa ser para ganhar pontos levels_win = { -- leveis que receberão os pontos(feito pelo onAdvance) [50] = 5, [80] = 6, [100] = 8, [150] = 10 }, rewards = { -- a cada tantos pontos, que tipo de reward ele irá receber(automático onLogin) [10] = {items = {{2160,1},{2173,1}}, p_days = 1, p_points = 0 , out = {0,0}}, [25] = {items = {{2160,2},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [50] = {items = {{2160,3},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [100] = {items = {{2160,4},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [200] = {items = {{2160,5},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [250] = {items = {{2160,6},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [500] = {items = {{2160,7},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}} } } function getInvitePoints(cid) return getPlayerStorageValue(cid, _invite_friends.storages[1]) < 0 and 0 or getPlayerStorageValue(cid, _invite_friends.storages[1]) end function hasInviteFriend(cid) return getPlayerStorageValue(cid, _invite_friends.storages[2]) > 0 and true or false end function doInviteFriend(cid, GUID) return setPlayerStorageValue(cid, _invite_friends.storages[2], GUID) end function getNameFriend(cid) return getPlayerNameByGUID(getPlayerStorageValue(cid, _invite_friends.storages[2])) end function addInvitePoints(name, amount) local pid, Guid = getPlayerByNameWildcard(name), getPlayerGUIDByName(name) if not pid then local getFriendPoints = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. Guid .." AND `key` = ".._invite_friends.storages[1]) if (getFriendPoints:getID() ~= -1) then db.executeQuery("UPDATE `player_storage` SET `value` = ".. (getFriendPoints:getDataInt("value")+amount) .." WHERE `player_id` = ".. Guid .." AND `key` = ".._invite_friends.storages[1]) end else setPlayerStorageValue(getPlayerByName(name), _invite_friends.storages[1], getInvitePoints(getPlayerByName(name))+amount) end return true end function getRewardsFriend(name, pid) local acc = getAccountIdByName(name) if isPlayer(getPlayerByNameWildcard(name)) then local target = getPlayerByNameWildcard(name) local FriendPoints, CheckPoints = getInvitePoints(target), getPlayerStorageValue(target, _invite_friends.storages[4]) for vod, ka in pairs(_invite_friends.rewards) do local str = "" if FriendPoints >= vod and CheckPoints < vod then str = str.."--> Invite Players System <--\n\nVocê acaba de receber algumas recompensas:\n\nItems: \n"..getItemsFromList(ka.items)..".\n\n" if ka.p_days > 0 then doPlayerAddPremiumDays(target, ka.p_days) str = str.."Premium Days:\n"..ka.p_days.." Premium Days." end if ka.p_points > 0 then db.executeQuery('UPDATE accounts SET premium_points=premium_points+' .. ka.p_points ..' WHERE id=' .. acc) str = str.."Premium Points:\n"..ka.p_points.." Premium Points." end if ka.out[1] > 0 then doPlayerAddOutfit(target, getPlayerSex(target) == 0 and ka.out[1] or ka.out[2], 3) str = str.."[New Outfit]\nRecebeu uma Nova Outfit." end setPlayerStorageValue(target, _invite_friends.storages[4], FriendPoints) MandarItensProDp(name, ka.items, str) doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_ORANGE,"[Invite Players System] Você Recebeu algumas premiações por estar convidando jogadores para o servidor, Por favor conferir os itens no Depot.") end end end return true end function MandarItensProDp(name, items, texto) local parcel = doCreateItemEx(ITEM_PARCEL) for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(parcel, item, amount) else for i = 1, amount do doAddContainerItem(parcel, item, 1) end end end local carta = doAddContainerItem(parcel, 1952) doItemSetAttribute(carta, "writer", "[+] Invite Players System [+]") doItemSetAttribute(carta, "text", texto) doPlayerSendMailByName(name, parcel) return true end -- function adicional -- function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end Configurando o Sistema: *Vá na LIB do sistema que você adicionou* level_max = 30, -- até que level ele precisa falar seu friend level_need = 50, -- que lever o jogador precisa ser para ganhar pontos levels_win = { -- [LEVEL QUE PRECISA ATINGIR] = QUANTIDADE DE PONTOS QUE O OUTRO JOGADOR VAI RECEBER [50] = 5, [80] = 6, [100] = 8, [150] = 10 } rewards = { [10] = {items = {{2160,1},{2173,1}}, p_days = 1, p_points = 0 , out = {0,0}}, [25] = {items = {{2160,2},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [50] = {items = {{2160,3},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [100] = {items = {{2160,4},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [200] = {items = {{2160,5},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [250] = {items = {{2160,6},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, [500] = {items = {{2160,7},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}} } rewards = { [PONTOS NECESSÁRIO PARA OBTER A PREMIAÇÃO] = exemplo: [10] = {items = {{2160,1},{2173,1}}, p_days = 0, p_points = 0 , out = {0,0}}, com 10 pontos ele irá receber aquele itens acima /\ items = {} -- Poderá adicionar itens em uma tabela dizendo {id do item, quantidade} p_days = 0 -- se o jogador vai receber Premium Days? 0 ou Quantidade que vc deseja dar p_points = 0 -- se o jogador vai receber Premium Points? 0 ou Quantidade que vc deseja dar out = {0,0} -- se vai receber outfit? {FEMALE, MALE} OU {0 , 0} para nenhuma. obs:(lembrando que o id das outfits ficam em outfits.xml)
  2. 1 ponto
    Dragon Ball Rox Servidor 100% estável com mais de 200 horas online. 38 Vocações sendo 9 delas vip que são: Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame Chilled,C8 e King Vegetta. Spells de fast attack (Usa uma vez sai 10 hits). Eventos automaticos como: Castle,Battlefield,Run event. Reborn level maximo 600. Vamos aos bugs que eu encontrei: * Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra. * Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo. * Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora. Update v2 Adicionado 7 novas vocações vips sendo elas: Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo. Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black. Vocações que antes era vip no update v1 agora são free. Fazer reborn não precisa mais fazer quest das esferas do dragão. Adicionado cassino que se ganha small diamonds que se troca por: Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet. Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama. Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama. Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip. Adicionado 3 bosses espalhados pelo mapa (Earth). Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno. Adicionado sistema de upgrade fazendo seu item ficar mais forte. Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja. Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars. Area de evento pvp e dice/bag adicionada no Yama. Area vip adicionada. Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip. Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo. Algumas modificações no mapa, hunts, quest. Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico. Gostou ? Clique em Gostei logo abaixo. Para consertar o erro da loteria só executar essa query na sua database: CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Downloads Server (Distro para windows e linux já compilada) Scan Cliente Scan Sources Scan Site (Modern Acc) Scan Database Scan Creditos server: Kramer, WhiteBubble Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
  3. DEV C++ Compilando TFS no Windows

    Gabriel485 reagiu a Natanael Beckman por uma resposta no tópico

    1 ponto
    DEV C++, aprenda a compila uma source TFS! Downloads(Baixe de acordo as configurações do seu windows): DEV C++ CONFIGURADO PARA 32BITS DEV C++ CONFIGURADO PARA 64BITS REV 3884 TFS 0.4 Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos. ====================================== Abra o DEV C++: ====================================== ====================================== Abra a Source: ====================================== ====================================== Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev: ====================================== ============================================================= ====================================== Aguarde carregar todos os arquivos: ====================================== ====================================== Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK: ====================================== ====================================== Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo: ====================================== ====================================== Se der tudo certo em Log vai estar como mostra a imagem abaixo: ====================================== ====================================== Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou! ====================================== =========================================== Só isso galera tutorial rápido resumido e útil! Créditos Natanael Beckman! =========================================== Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar: Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone. Abra o DEV-C++, clique em File> New> Project: Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos: Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp. No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros: -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs: -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK. Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project: Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9: OpenSSL 0.9.8 1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa! Clica aqui \/
  4. Wand of Elements

    gabriel28 reagiu a Bruno Minervino por uma resposta no tópico

    1 ponto
    Introdução: É uma wand que ataca vários elementos aleatoriamente, porém não somente isso, você pode alterar o elemento dela com uma talkaction. Instalação: Vá até data/weapons/scripts e crie um arquivo chamando wandelementos.lua e coloque o seguinte conteúdo: local min, max = 1700,1900 --Ataque mínino e ataque máximo local w = { [1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 46, sh = 38, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [5] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [6] = {ef = 36, sh = 31, dmg = COMBAT_PHYSICALDAMAGE}, [7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end Altere o min e max de acordo com sua necessidade. Agora vá em data/weapons/weapons.xml e coloque o seguinte conteúdo: <wand id="7424" level="100" mana="30" event="script" value="wandelementos.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand> Altere o id, level e mana de acordo com sua necessidade. Agora vamos configurar a talkaction que troca os elementos. Vá até data/talkactions/scripts e crie um arquivo chamando elementos.lua e coloque o seguinte conteúdo: local config = { wand_id = 7424, --ID da wand types = { ["all"] = -1, --Ataca os elementos aleatoriamente ["fire"] = 1, ["ice"] = 2, ["poison"] = 3, ["death"] = 4, ["energy"] = 5, ["physical"] = 6, ["holy"] = 7 } } function onSay(cid, words, param) local wand_left = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid local wand_right = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid if wand_left ~= config.wand_id and wand_right ~= config.wand_id then doPlayerSendCancel(cid, "Voce deve estar equipado com uma ".. getItemNameById(config.wand_id) .." para usar este comando.") return true end if config.types[param] then setPlayerStorageValue(cid, 4561, config.types[param]) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Sua wand ira atacar ".. param .. ".") else local str = "" for i, _ in pairs(config.types) do str = str .. ", ".. i end doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Os elementos disponiveis sao: ".. string.sub(str, 3, #str) ..".") end return true end Altere o wand_id conforme configurado em weapons. Agora vá em data/talkactions/talkactions.xml e coloque o seguinte conteúdo: <talkaction words="!elemento;/elemento" event="script" value="elementos.lua"/> Exemplo de funcionamento: https://www.youtube.com/watch?v=HHmZ1RpsrD0 Gostaria de deixar um agradecimento especial para MaXwEllDeN, pela ajuda.
  5. [8.60]Winchester Server (Exp Alta)

    Aim0w0w reagiu a Slaake por uma resposta no tópico

    1 ponto
    Fala moçada, depois de tanto tempo voltei a editar mapas. Bom, como estava atoa nessas ferias, decidi editar um mapzinho pra mim. E como no final das contas, n vou poder deixar online (só vo estar online a noite, entao nem compensa neh kkk). Entao resolvi postar o server aq pra voces (se porem on me chama pra jogar hein kkk) Vamo la, deixa de conversa e vamo falo oq o server tem. Mapa totalmente editado (se parece com o server rozin) Experiencia Alta 11 novas vocations, ambas com reset (igual ao server rozin: mixed, lonely, sacred... e por ai vai) VIP e GOLDEN VIP funcionando 100% (vip para players com 1 a 89 dias de vip e golden vip para players com mais de 90 dias de vip) Itens totalmente editados (reflection boots e mult element arrow funcionando) Quest's novas Monster's novos systema de !fly para players vip's e g vip's Varias magias de acordo com vocation e level Loja de Iten's vip (sistema de point, q se consegue dentro do jogo a partir de um npc) Dentre outras coisas que nao vou por aq so para dar uma animada hahahah, mas pode ter certeza que sao top's. comando para saber a proxima vocation e o level necessario !promoinfo Agora vamos as ss. *Temple: *Area VIP *Area Golden VIP *Uma das hunt's area VIP *Uma das hunt's area Free *Reflection boot's funcionando *sistema de !fly *local de venda de itens vip *Uma das armas VIP scan senha do god: accgod/godacc Bom, eu sei que nao vai ser possivel agradar a todos neh, mas fazer oq, entao, esse é o mapa que editei, e como disse la em cima, caso alguem crie um server com ele, só mandar ip que eu vo la jogar hahahaha. Creditos: slaake (por editar o mapa, editar script's, entre varias outras coisas) slayer (pois peguei o mapa dele como base) e a alguns scripter do tk pois usei uns script's que peguei aq do site
  6. Como Arrumar Experiencia de Pokemon com Level e outros : Para Quem não sabe aumentar experiencia , arrumar tempo de ataque de Pokemon's e até mesmo trocar a Portrait , esse tutorial Escrito Por Min "Ryukicho" Venho lhe mostra o básico do configuration.lua. Como aumentar/abaixar Experiencia do PokeTibia , speed , ataque/defesa . 1 abra o arquivo configuration.lua com bloco de notas ou outro que se encontra na pasta server/data/lib . Procure isso no script , que se encontra logo no começo: explicação : Experiencia no config.lua Procure por isso: Explicação : Como arrumar os tempos e ataque dos pokemon's Vá em configuration.lua e procure isso : Obs : procure o pokemon que queira editar em ( movestable = { ), no meu caso peguei Salamence ! Explicação : Bom galera se ajudei Rep+ Tutorial feito Por Min , aqui fiz somente o básico . caso tenha duvida Posta , que lhe ajudo
  7. [CTF] Capture The Flag 2.0(Automático)

    Deathstroke reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    #Introdução Este é um sistema de rouba bandeira, no qual tem dois times que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela. #Instalação Faça o download do sistema (anexado ao tópico) e cole na pasta do seu servidor. Atualizado 28/03/2014 Após ter instalado os arquivos nas suas respectivas pastas e instalado as tags nos arquivos xml, abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de function onCastSpell(cid, var) cole isso: if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end ficando assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end #Configuração Como na maioria dos meus códigos: as configurações ficam na lib, então: waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir xp_percent = 0.5, -- Porcentagem de xp que o player vai receber quando ganhar timeclose = 1, -- Tempo para iniciar o CTF winp = 10, waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera Posição onde os players que entrarem no teleport vão ficar esperando, até o evento iniciar tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer Posição de onde o teleport vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir Dias que o evento vai iniciar. xp_percent = 0.5, -- Porcentagem de exp que o player vai ganhar Quando o evento acaba, os players da equipe que venceu ganham uma quantidade de experiência baseada na experiência que eles já têm, exemplo: Meu player tem 1200000000 de exp, quando o evento acabar, ele vai ganhar 0.5% da exp que ele tem, no caso desse exemplo 6000000 de exp. timeclose = 1, -- Tempo, em minutos, para iniciar o CTF Tempo para o teleport sumir e os players que estão na sala de espera serem teletransportados para o evento. winp = 10, -- Quantos pontos uma equipe precisa marcar para vencer Quantos pontos uma equipe precisa marcar para vencer o evento. Para configurar o horário que o evento vai abrir, é só você modificar na tag do globalevents.xml: <globalevent name="CTFCheck" time="19:33:00" event="script" value="CTFMax.lua"/> Você não precisa criar as bandeiras pelo map editor. O script irá adicioná-las automaticamente. É isso, essa versão é uma remake, vários bugs reportados pela galera na v.1 foram corrigidos, o script ficou mais simples Capture The Flag.rar
  8. Bird Hunt System [8.54+]

    Soldoran reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera do TK, vim compartilhar com vcs um dos sistemas que eu fiz baseado no jogo Bird Hunt e que foi imbutido em alguns servidores famosos, sendo o Korelin um deles. Obs: Testado em TFS 0.3.6 mas deve funcionar em TFS 0.4 sem problema aqui tem uma pequena imagem demonstrando o sistema sendo utilizado: Bom, antes de tudo eu vou ensinar vocês a criar um mapa apropriado pois isso é 90% das dificuldades que os players enfrentam quando tentam adicionar o sistema. Inicialmente vc vai precisar criar uma area no seu mapa editor +- parecida com a que eu fiz na imagem abaixo: Feito isso vc deverá colocar uniqueid 16480 na porta e actionid 14872 em todos os lugares que o player pode percorrer (da placa pra \/ todos os quadrados verdes deverão conter esse actionid) Colocado os ids, vc deverá fazer a sala à prova de bugs, para isso você terá que seguir essas especificações: Note que em verde são os lugares que vc deverá colocar protect zone e em roxo os locais onde vc deve colocar no logout zone. Agora perceba que nas posições onde o player irá andar, você vai colocar tanto no logout zone como protect zone, isso pra evitar ele de matar o bixo com spells e pra evitar que ele deslogue durante o mini game. Essa contagem de sqms eu vou explicar mais tarde na configuração do script, mas tenham ela em mente. Agora vamos aos scripts: Comece criando em data/lib um arquivo chamado 045- Bird Hunt Lib.lua e colocando isso dentro dele: Feito isso vá em data/actions/scripts e adicione um arquivo chamado seagul.lua que deverá conter: e adicione em actions.xml: <action uniqueid="16480" event="script" value="seagul.lua"/> Agora vá em data/movements/scripts e crie um arquivo chamado seagulmove.lua com o seguinte conteúdo: E adicione as tags em movements.xml: <movevent type="StepIn" actionid="14872" event="script" value="seagulmove.lua"/> <movevent type="StepOut" actionid="14872" event="script" value="seagulmove.lua"/> Agora, pra deixar nosso sistema mais real e difícil, altere a velocidade do seagul de 200 pra 300 na pasta data/monsters/Birds/seagull.xml eu alterei tb a quantidade de vida q ele começa a fugir pra vida atual dele e fiz outras alterações pra tornar mais difícil, mas isso é com vcs. A maioria das coisas tá bem compreensível, com exceção das duas primeiras linhas de actions: rangecima = {x = -8, y = -4}, -- distancia em x e y da topos (ate a pos de cima) rangebaixo = {x = 0, y = 4}, -- distancia em x e y da topos (ate a pos de baixo) é aqui que entra aquela imagem, vc vai considerar a porta (o ponto cinza) como sendo nossa origem, ou seja, o ponto (0,0) rangecima é a distancia que eu tenho que percorrer em x e y pra chegar até a ponta de cima < e rangebaixo é a distancia que eu tenho que percorrer em x e y pra chegar até a ponta de baixo. Se vcs mudarem o tamanho da sala, fiquem ligados nisso. Obs: algumas pessoas fazem a sala virada pra direita também, nesse caso vc mantém a actions (pode usar inclusive o mesmo arquivo), só tem que alterar o movements pois lá vc define se é direita ou esquerda. É isso, espero que tenham gostado. O jogo é só por diversão mas vc pode alterar a função de atirar pra ganhar dinheiro por cada acerto ou então criar um npc que vc te dá X premio dependendo do seu recorde.. podendo esse premio inclusive ser uma key pra uma quest. Usem a imaginação e espero que aproveitem esse sistema. Abraços do Lobo.
  9. 1 ponto
    Sei não faz qualquer tamanho dps corta em 32x32 com varios pisos e junta
  10. 1 ponto
    data/items/items.xml acho que o vip é o bills bills armor bills legs bills boots
  11. Tento criar wall mas so sai pilar

    Ishiban reagiu a Biinhow por uma resposta no tópico

    1 ponto
    Apera no seu teclado a tecla " a ", ou vá em Edit, Border Options, e clica em Border Automagic A.
  12. 1 ponto
    nome do seu script.lua local pos, time = {x = 26247, y = 25926, z = 4}, 60 function removeLever() local t = getTileItemById(pos, 9825).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(pos, CONST_ME_POFF) end function onTimer() local lever = doCreateItem(9825, 1, pos) doItemSetAttribute(lever, "aid", 9900) addEvent(removeLever, time*1000*60) return true end tag <globalevent name="CreateLever" time="03:00" event="script" value="nome do seu script.lua"/>
  13. 1 ponto
    Instalou o curl? No Windows com xampp atual, não precisa instalar nada, no Linux, tem que instalar o curl/Perl. Provavelmente o curl não está instalado. Veja no log do seu serviço web para ter certeza.
  14. (Resolvido)Backpack Por Comando !Bp

    Luck its Me reagiu a oloku5 por uma resposta no tópico

    1 ponto
    Se a versão for 0.4 Testa ai: Crie um arquivo lua chamado "bps" na pasta talkactions: function onSay(cid, words, param, channel) local config = { s = 10546, -- n mexa exhau = 30 -- tempo em seegundos para comprar denovo } if (getPlayerStorageValue(cid, config.s) <= os.time()) then doPlayerSave(cid) doPlayerAddItem(cid, 9774, 1) -- ID da backpack 9774, mude o id conforme desejado setPlayerStorageValue(cid,config.s,os.time()+config.exhau) doCreatureSay(cid, "Backpack", 19) else doPlayerSendCancel(cid, "Você tem que esperar " .. config.exhau .. " segundos para comprar outra bp novamente.") end return TRUE end EM talkactions.xml adicione a tag: <talkaction words="!bp;!backpack;/bp;/backpack;bp" script="bps.lua"/>
  15. 1 ponto
    Acabei de resolver meu problema sozim qem qiser saber manda pm acabei de arrumar qebrei cabeça ate agora e arrumei o bug Vlws.....
  16. (Resolvido)[PEDIDO] Agrupar/juntar itens

    samuelandrade45 reagiu a GBs por uma resposta no tópico

    1 ponto
    Sim, faz assim. vai no seu dat editor (eu uso o Object Build). Vai no seu item > propriedades > Marque a caixinha Agrupável (Stackable) e compila. Agora vai no Otitemeditor > Seu item > Marque a caixinha Stackable e salva.
  17. Vai na coluna houses, clica em limpar >>/\ e solved
  18. (AJUDA) Comando /cb erondino

    messogamerggg reagiu a Erondino por uma resposta no tópico

    1 ponto
    Ae kra use o comando /gogo Arcanine obs : lembra de usar a primeira letra do pokemon maiuscula se por /gogo arcanine o pokemon n sai da ball
  19. Aumentar lvl max

    jackielson reagiu a Cat por uma resposta no tópico

    1 ponto
    creio eu que é só na source ja tentei muito isso, mas o zmovir deu um script que aparentemente upa um level acima do máximo, tenta usar ele: function onSay(cid, words, param) maximum = { player = getPlayerGUID(cid), lvlmax = 717218, -- Level que o player vai ficar apos usar o comando. } if getPlayerLevel(cid) == 717217 then doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..maximum.lvlmax..", `experience` = 10000 WHERE `id` = "..maximum.player) else doPlayerSendCancel(cid, 'You do not have the level max 717217.') doSendMagicEffect(getPlayerPosition(cid),37) end end
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo