Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/31/12 em todas áreas
-
Iae galera !! hoje trago um script muito interessante adicionar premium por action ao dar use num item e comprar o item por 1 buyitem então vamos la va em data / talkactions / scripts / e ponha o nome de algum arquivo para premium e ponha isto la dentro function onSay(cid, words, param) local itens = { ["santa doll"] = {id = 6567, preco = 2000, count = 1 }, ["teddy bear"] = {id = 6568, preco = 1000, count = 1 }, ["jester doll"] = {id = 9663, preco = 500, count = 1 } } local param = string.lower(param) if (param == "lista") then local str = "" str = str .. "itens :\n\n" for name, preco in pairs(itens) do str = str..name.."\n" end str = str .. "" doShowTextDialog(cid, 7529, str) return TRUE end if not itens[param] or param == "" or not param then return doPlayerSendCancel(cid,"Desculpe esse item nao existe") end if itens[param] and doPlayerRemoveMoney(cid,itens[param].preco) then doPlayerAddItem(cid,itens[param].id,itens[param].count) doPlayerSendTextMessage(cid,27,"Parabéns Vc comprou 1 item") end return TRUE end <talkaction words="!buy" event="script" value="itens.lua"/> dps em data / actions / scripts / ponha o nome de algum arquivo de premium e adicionar isto la dentro --((Script By Skylight Xtibia.com))-- function onUse(cid, item) if doRemoveItem(item.uid, 1) then end if item.itemid == 6567 then doPlayerAddPremiumDays(cid, 30) doPlayerSendTextMessage(cid, 22, "Parabéns Você Recebeu 30 dias de premium") return true end if item.itemid == 6568 then doPlayerAddPremiumDays(cid, 30) doPlayerSendTextMessage(cid, 22, "Parabéns Você Recebeu 15 dias de premium") return true end if item.itemid == 9693 then doPlayerAddPremiumDays(cid, 30) doPlayerSendTextMessage(cid, 22, "Parabéns Você Recebeu 10 dias de premium") end return true end dps em actions.xml <action itemid="6567" script="premium.lua"/> <action itemid="6568" script="premium.lua"/> <action itemid="9693" script="premium.lua"/> Então e so isso espero que gostem e se puder nao custara 1 rep + Créditos TnTSlin 30 %(Pelo script do buy) SkyLigh 70 % (Pelo Script Do Action E A Ideia E Adicionar A Lista no script do buy)6 pontos
-
Npc Maker
akinkalidus e 4 outros reagiu a Raidou por um tópico no fórum
Fala XTibia hoje mais uma ves,estou trazendo este utilitario para otserv,é o incrivel npc maker. Screen: Download: Aqui. Scan Aqui Ajudei REP++5 pontos -
Mapa Wodbo 8.0 Compativel Wodbo By Crazzymaster
MarfTxp e um outro reagiu a proview110 por um tópico no fórum
Eae galera, bom esse é um dos meus primeiros tópicos que faço, eu fiz um mapa de wodbo por que eu ajudo o crazzy eo bianco, ai descidi postar esse que eu fiz e vou fasendo mapas e postando pra vocês de vez enquando se tiver tempo. Bom vou postar algumas screnshots. Nessa parte você vai no site e no config.lua na pasta acc do site, você edita onde o player vai nasce. Bota essas cordeenadas x:300 y:47 z:5 Eo player vai nascer aqui: Agora uma SS do Yama, o npc que te manda pra cidade: AVISO: ESTAS FOTOS FORAM TIRADAS DO WODBO MAP EDITOR OU SEJA NO JOGO O MAPA NAO VAI FICAR ASSIM PODEM FICAR TRANQUILOS, VAI FICAR TUDO NORMAL E BONITO Centro (templo) Mini Arena na parte de cima da cidade: Bom galera é isso espero que gostem, abaixo ta o download do mapa lembrando que é compativel com wodbo by crazzymaster. Download. 2Shared Scan. VirusTotal Obrigado por visitar meu tópico, se gostou da um REP+ ai custa nada nao. Mapa By Striker (powerbrass)2 pontos -
Olhem A Mina Do Apocarai
SkyDangerous e um outro reagiu a joaohd por um tópico no fórum
Anyway, o julgamento não cabe a ninguém aqui além de mim. Sim, as fotos estão apenas para amigos e ainda estou estou aguardando a remoção. E a questão não é de exposição das imagens, quem quiser ver, que vá no meu facebook. A questão é a separação do que é pessoal e o que é virtual. Muito fácil vir aqui e falar um monte, fazer várias intrigas quando se está coberto por um nickname. Mas talvez seja isso, tão frustrado com a vida pessoal dele que prefere se esconder atrás de um apelido onde pode viver e falar da vida dos outros.2 pontos -
NPCDEPALADIN NPCDEKNIGHT NPCDEMAGES1 ponto
-
Olá xtibianos! Acredito que esse seja meu primeiro tutorial feito por mim mesmo aqui no fórum, espero que gostem e aprovem Rep + Introdução: Nesse tutorial, vou lhes ensinar como instalar e configurar o sistema de PagSeguro automático, para que quando o pagamento for Aprovado pelo PagSeguro, o sistema entregar os pontos automaticamente. Testado e funcionando em Gesior e Modern Acc. Funciona para qualquer versão de Tibia, desde que seja em MySQL. Quando você for testar, pode acontecer que os pontos sejam entregues com um atraso de no máximo 5~10 minutos depois de Aprovado o pagamento, porém, geralmente os pontos são entregues NA HORA do Aprovado pagamento. Instalação: Primeiramente vamos adicionar uma tabela na sua DataBase do MySQL, Executem esta query para criar a tabela: Feito isso, vamos editar ou adicionar se você já não tiver, essas linhas no seu htdocs/config/config.php : Depois, vamos adicionar essas linhas no seu htdocs/index.php : Agora, troque todo o seu htdocs/shopsystem.php (pode variar, mas no gesior geralmente é shopsystem.php)por este: Também troque todo o seu htdocs/donate.php (pode variar, mas no gesior geralmente é donate.php) por este: Agora, crie um novo arquivo .php com o nome pag_retorno.php com este conteúdo: Por último mas não menos importante, entre no site do PagSeguro e logue, após logar, vai aparecer várias opções na parte inferior do site do PagSeguro, clique em "Retorno Automático". Nesta página, é onde você gera o seu Token PagSeguro e configura sua URL de retorno. Você deve ativar a URL de retorno, e colocar este link na URL de Retorno: Pronto, já está tudo OK, agora vou ensinar como configurar algumas partes de alguns arquivos que citei acima. Configuração Adicional: Depois que você já alterou as informações no config.php no que é pedido, algumas alterações devem ser feitas também no arquivo htdocs/pag_retorno.php : (não esqueça de editar as partes que pedem informações sobre usuario, senha, nome db do MYSQL) 1 - Nas linhas: Você deve alterar o que está sendo pedido, e no "127.0.0.1", se você usa seu site no mesmo PC ou Dedicado/VPS que o seu Server, pode deixar "127.0.0.1" mesmo, se não (no caso de usar domínio), deve colocar ali o seu IP Externo Numérico do Server. 2 - Nas linhas: Esta parte é a que entrega os pontos automaticamente pra account, se você tem algum tipo de promoção no seu server, deve alterar aqui conforme sua promoção, exemplo: Se você tem a promoção de Double Points no seu Server, deve alterar: Por este: Para que os pontos sejam DOBRADOS na hora de entregar automaticamente, entendeu? Bom Galera, é isso aí, espero que gostem. Dúvidas, Sugestões ou Críticas, postem aqui para que eu possa atender a todos. Créditos: Tutorial feito 100% por mim (Lucas502 - xtibia.com) Te Ajudei? Então REP+ aew! EDIT: Adicionados Spoilers para melhor visualização do tópico.1 ponto
-
Baiak Extreme OTProjects 0.7 - O MELHOR BAIAK! (8.60) Servidor feito pela Otprojects. Fala galera estou aqui para apresentar o novo Baiak Extreme, A OTProjects trabalhou muito tempo neste servidor. Ele custava cerca de 35 Reais na loja da OTprojects, mas foi liberado de graça e eu estou repassando pra vocês. Este servidor é um dos Mapas Baiak mais completos, possui WoE, Dota, Coliseum, Zombie e outros Eventos. Tá esperando o que? Confira logo! Cidades: ├ Baiak City ├ Desert City ├ Hydraland ├ Yalahar (Cidade VIP) └ Thais Imagem #1: Templo - Baiak City Imagem #2: Glacial Area Imagem #3: Baiak City O Que Contêm no Servidor: ├ Eventos Exclusivos : ├DotA ├ WoE ├ Coliseum ├ Zombie Event ├ Yalahar como City VIP ├ City do Baiak Totalmente Reformulada. ├ Novos Teleports e Quests ├ War Castle ├ Novos NPC'S ├ War System. └ TFS 0.4 DEV Rev: 3777 Já Compilado. Lista Das Principais Quests (Todas Funcionando 100%): ├ The Annihilator Quest ├ Demon Helmet Quest ├ Firewalker Boots Quest ├ The Inquisition Quest ├ The Pits of Inferno Quest ├ The Demon Oak Quest └ In Service of Yalahar Quest Update 0.7: - Sem o Bug dos Stages - Com TFS 0.4 REV 3884 - O MELHOR PARA WINDOWS - Crashes no Console Removidos - Agora em MYSQL, Recomendo que usem o Xampp e o Gesior para fazer o Site. Senha do God: god/god Como Abrir o Mapa Caso dê Erro: Vai no RME Aperta em File>New>Import Map e Selecione o Mapa do Baiak Extreme. Download & Scan ATENÇÃO: UTILIZE MYSQL para Melhor Resultado! Download Os vírus acusados estão no Distro, o Servidor está Limpo! ATENÇÃO! Para o MELHOR FUNCIONAMENTO DO OT, Recomendo que USEM MYSQL! Créditos:1 ponto
-
Então pessoal arrumei punhado de bugs e visual no baiak LukinhasAcedo vamo la arrumei o tp para tibia bug >(NewMonsters) > dava em media 600k arrumei a parede da inqui antes n dava pra passa arrumei visual fica mais rox pq akele tava paia arrumei lich staff 120 de atk agr ta 20 etc.. aki ta ss Inquisition Arrumada Tp de tibia bug Arrumado Armas Adicionadas no npc Armas Adicionadas Novo visu Do templo Novo visu dos tps Vip Download aki :button_ok: Meu pc n ta entrando o site virus total eu agradeco quem fazer o scam pra mim mais pode confia :button_ok: Ei eu editei o mapa da hora vc vai abaixa n vai custa nada um rep+ ali em baixo ne :smile_positivo::thumbsupsmiley2 Quem for cria com o meu mapa passa o ip pra mim joga pq n posso deixa ele on pq tenho aulas etc.. e meu pc n suporta fica muito tempo ligado acc do god douglas/bho27i1 ponto
-
Criando Um Cliente 100% Proprio
LuisMatheuziin reagiu a Tony por um tópico no fórum
Olá pessoal do Xtibia! Hoje vou ensinar a vocês como criar um cliente 100% próprio para seu servidor de tibia. :forward: Créditos :back: :star2: Jakiin :star2: Trazer ao x-tibia :star2: TiraDuvidas :star2: Fazer o Tutorial Este tópico recebeu destaque em nosso portal!1 ponto -
Esse script é um simples sistema de alquimia, porém é diferente dos outros. Alquimia era uma prática antiga que combinava alguns elementos a fim de formar outros. Esse meu sistema, faz com que os itens sejam "misturados" em um caldeirão e se pareça mais como era antigamente. Abaixo, um vídeo de demonstração e de como instalar. Deixei as mesmas posições no script pra que vocês possam se basear ao instalar no seu. Bom, vamos ao script: -- Como funciona: O player deve colocar os itens da receita emcima do counter (balcão de pedra) e puxar a alavanca. Feito isso, os itens serão "misturados" no caldeirão e com a colher (wooden spoon) o player poderá pegar o seu item. Crie um arquivo.xml em data/mods chamado Alchemist.xml e cole isto dentro: <?xml version="1.0" encoding="UTF-8"?> <mod name="Alchemist System" version="1.0" author="Leoxtibia" contact="none" enabled="yes"> <config name="alch_sys"><![CDATA[ counter = {x = 17, y = 56, z = 7} efeitos = {x=17, y=53, z=7} receitas = { {items = {{2160,1}, {2157,2}} , itemgain = {{5878,100}}, storage = 56000}, {items = {{2148,5}, {2155,1}} , itemgain = {{2113,1}}, storage = 56001}, {items = {{2498,1}, {2113,1}} , itemgain = {{2472,1}}, storage = 56002} } function Caldeiron() local B = { {3693,{x=17, y=53, z=7, stackpos = 1}}, {3694,{x=18, y=53, z=7, stackpos = 1}} } for i = 1, #B do doTransformItem(getThingfromPos(B[i][2]).uid,getTileItemById(B[i][2], B[i][1]).uid == 0 and B[i][1] or (B[i][1]-4)) end end function getItemsInPos(items, pos) for i = 1,#items do local stack = getTileItemById(pos, items[i][1]) if stack.uid > 0 and math.max(1, stack.type) >= items[i][2] and i == #items then return true end end return false end function doRemoveItensInPos(items, pos) local items = type(items) == "table" and items or {items} for i = 1, table.maxn(items) do doRemoveItem(getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=2}).uid) end return nil end function effets(position,delay) local text = {"Ishhh!", "Kaboom", "Tic Tac", "BUM!", "Blop Blop!", "Cronch!"} local effects = {2, 6, 25, 31, 36,40, 54, 51, 65, 66, 67, 68} if delay ~= 0 then doSendAnimatedText(position, text[math.random(1, #text)], math.random(1, 255)) doSendMagicEffect(position, effects[math.random(1, #effects)]) addEvent(effets, 1000, position, delay -1) end end]]></config> <action actionid="4780" event="script"><![CDATA[ domodlib('alch_sys') function onUse(cid, item, fromPosition, itemEx, toPosition) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) for _, t in ipairs(receitas) do if getItemsInPos(t.items, counter) then doRemoveItensInPos(t.items, counter) effets(efeitos,6) Caldeiron() return setPlayerStorageValue(cid, t.storage, 1) end end return doPlayerSendCancel(cid, "You must put the correct items in the counter.") end]]></action> <action itemid="2567" event="script"><![CDATA[ domodlib('alch_sys') function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.actionid == 4781 then for _, x in ipairs(receitas) do if getPlayerStorageValue(cid, x.storage) >= 0 then for i=1,#x.itemgain do doPlayerAddItem(cid, x.itemgain[i][1], x.itemgain[i][2]) doPlayerPopupFYI(cid, "You have prepared ".. x.itemgain[i][2] .." ".. getItemNameById(x.itemgain[i][1]) ..".") end Caldeiron() setPlayerStorageValue(cid, x.storage, -1) end end end return true end]]></action> </mod> Configuração: Para adicionar mais receitas, é só adicionar mais uma linha, mudando o storage para +1. Lembrando que a última linha não tem vírgula no final. {items = {{2666,1}, {2671,1}} , itemgain = {{2672,1}}, storage = 56003} Ainda pretendo incrementar o sistema com novas funções. Mas, por hoje é isso. Espero que tenham gostado.1 ponto
-
Eu gostaria de compartilhar com vocês como é interessante que Atlantida World servidor. Ao mesmo tempo o projeto nasce de um grande OTS . Atlantyda World tratou-se um super server que pertencia a uma equipa polaca, tive o prazer de jogar nele, mas ao final de algum tempo fechou. O server esteve online varios meses, no entanto, alguém nao se apercebeu que as más escolhas da administração resultou em uma grande queda. Pack Full contém literalmente tudo para gozar as suas Atlântida! Mapa, scripts, actions, monters,etc! O importante é tudo isso vem de uma fonte legal como era na administração.Pessoalmente, eu não tenho tempo para abrir de novo este OTS por isso quis compartilhar com vocês tudo o que qualquer um de vocês pode reconstruir o que foi acima no fumo! Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 2202x1392. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Download ou Download Vírus Total Depois de vários pedidos decidi colocar um executável compactivel com windows, mas aconselho a configurar os vossos itens aconselho a utilização de rook para um maior rpg, bom jogo não esqueçam de um comentário e do REP+. Download Com exe e dlls Se tiver alguma dificuldade reporte-me, server configurado para ligar um mysql.1 ponto
-
Bom, galera não existe área para weapons então vou criar aqui mesmo! Vou ensinar a vocês a modificar o efeito da wand, colocando o efeito que quiserem (holy, blood, death, etc) Vá em data/weapons/weapons.xml: Coloque: data/weapons/scripts - copie algum arquivo e renomeie para new_wand.lua, coloque isto: Azul - Efeito da Wand (Pode ser trocado com os listados abaixo) Verde - Distância do Efeito Vermelho - Ataque por ML e Level, você pode modificar ao seu gosto. Utilizados no Verde Utilizados no Azul É isso pessoal, obrigado e até a próxima. Créditos: Eu e picachu Se te ajudei REP+1 ponto
-
PBlink Project Online Olá a todos, meu nome é Victor e estou aqui para mostrar a vocês o projeto que venho construindo a 6 meses. O meu objetivo com esse servidor não é ser apenas mais um online, mas um que traga inovação, diversão, competição e disputas. Por isso estou aqui hoje, venho apresentar o projeto a vocês que está na "sombra" a 6 meses, e pedir algumas sugestões para podermos melhorar. O servidor está quase pronto, o que falta é a adição de alguns sistemas. Farei agora a apresentação do projeto. Alguns de sistemas presentes em nosso projeto *Ability System O ability system é exclusivo do Pblink, porém temos presente esse sistema nos jogos de Pokémon da Nintendo®. Cada Pokémon caso tenha alguma ability, essa ability é natural. Estará em spoiler as abilities presentes em nosso servidor. *Gender System Um sistema realmente indispensável, esse sistema define o sexo de cada Pokémon presente no jogo. Os pokemons podem ser encontrados com 3 tipos de sexo: Male | Female | Assexuado Os pokemons tem uma chance aleatória de nascer com determinado sexo. Com exceção dos pokemons que tem apenas um sexo. Exemplos: Tauros – Apenas male Chansey – Apenas female Nidoqueen – Apenas female Nidoking – Apenas male Entre outros. *Egg System O Egg system nada mais é do que ovos de pokemons . Ao achar um ovo de Pokémon, você deverá comprar uma encubadora e usa-lá nele . Logo após um tempo, um lindo bebê Pokémon irá nascer. A vantagem de se ter um Pokémon nascido do ovo é que eles têm mais vida que os pokemons normais. "23:17 Congratulations! The Bulbasaur that was in her egg was born!" *TM System É um sistema que ainda será aprimorado com pretenções para adicionar HM's. Ao achar o TM você poderá usar em seu Pokémon, caso ele seja da categoria adequada ao move. O player começará com uma "TM Bag", onde terá os slots pros TM's. Quando o player usar algum TM Disk, por exemplo TM19 - Giga Drain , ele desbloqueará o slot do TM, veja a seguir. Os TM's existentes em nosso servidor atualmente são: * TM24 Thunder Bolt; * TM03 Water Pulse; * TM80 Rock Slide; * TM38 Dream Eater; * TM19 Giga Drain; *Tutorial Island Nesta ilha é onde tudo começa, aqui você estará em um centro Pokémon, com apenas uma pokeball vazia e 100 small Stones que você usará para matar e capturar seu primeiro Pokémon. Logo após você capturar seu primeiro Pokémon, deverá conversar com o Professor do laboratório da ilha. Ele poderá te tirar da ilha e te dar uma ajuda com algumas pokeballs para comessar sua jornada Pokémon. *Random Respawn "Eevee, o que dizer desse Pokémon extremamente esperto..." Ele aparece em algumas horas do dia em lugares diferentes e aleatórios do mapa. "É realmente um desafio capturar essa magnífica criatura, mas caso consiga é um cara de sorte" *Control Minds Pokemons psíquicos têm essa abilidade de controlar a mente do outro Pokémon, tendo um controle temporário de tal. *Fishing Quando você lança a vara na água você deve de esperar um tempo até que algum Pokémon morda a isca. Existem três tipos diferentes de Rods no nosso servidor: Old Rod Good Rod Super Rod A primeira, pode ser comprada no mark, enquanto as outras são recompensas de quests . *Training System Com a retirada do level system, nós decidimos que deveriamos fazer a criação de um sistema que valorizasse o tempo que o player gasta treinando um pokemon. Entao decidimos criar mais esse sistema. Quanto mais o player treinar o pokemon, mais força e vida ele vai ter, deichando o jogo mais real. Entao se um jogador se esforça muito para treinar um pokemon, não será em vão, ele terá mais força e hp que um pokemon nao treinado. Podendo assim aumentar o PvP (Player vs Player). O sistema de treinamento é bem complexo. Seu pokemon, poderá tambem evoluir se estiver feliz, e depois de um trabalho pesado nos treinamentos. O Training System está atualmente dividido nos seguintes Ranks: Very weak Weak Resistant Strong Very strong Untouchable *Quest Log Todas as quests presentes em nosso servidor, são registradas no quest log., contendo todas as informações sobre a conclusão da quest. *Cassino "Façam suas apostas!" No cassino você pode jogar, acumular fortunas, e depois trocar sua fortuna por pokemons que você só encontra no cassino! *Saffari Sem dúvidas um ótimo lugar para se procurar um Pokémon. No saffari você pode encontrar pokemons onde não se pode encontrar em qualquer outro lugar. Ainda contem outros sistemas não mensionados acima. É que são muitos, não da pra ficar falando de 1 por 1. O que traremos ao XTibia? Sem dúvidas o Xtibia pode nos levar muito mais do que nós podemos trazer. Mas estaremos fazendo o necessário, e nos empenhando em trazer os melhores conteúdos para vocês. Não estamos falando de disponibilizar nossos sistemas, mas eu quando faço um script, sempre faço de 2 (dois) jeitos diferentes, o que nos sobraria um e seria o que nós postaremos ao Xtibia. Primeiro sistema que traremos ao Xtibia Quem nunca jogou pokemon nos seus tempo de criança ou até depois de velho? Pois é, nós iremos colocar em votação 2 sistemas que a nurse recupera a vida de seu Pokémon: *Primeiro Quando você chega ao centro pokemon, diz "hi" e ela simplesmente recupera seu(s) pokemon(s). (Como todos os servidores de pokemon online) *Segundo Quando você chega ao centro pokemon, diz "hi" e ela recupera seu(s) pokemon(s), e tambem como no GBA, você passará a ser morador daquela cidade, sendo que quando morrer, voltará para a ultima cidade em que voce conversou com a Nurse Joy. *Conclusão O segundo sistema é Original do Pokémon, porém ninguem nunca o colocou em algum servidor ou nunca o fez. O sistema usado em nosso servidor será decidido por meio de votação e o sistema menos votado será trago ao Xtibia. Sobre o mapa O mapa têm o tamanho de 60.234Mb, é totalmente baseado no seriado. Ele está apresentado nos spoilers abaixo. Atualizações recentes 22/07/2012 Algumas atualizações e pequenas correções foram feitas. Entre elas está a adição de alguns novos items e outfits como podem ver abaixo. *Items Obs: Há outras mas vou evitar colocar aqui para nao ocorrer possíveis rippings 25/07/2012 Foram feitas algumas modificações no mapa, como podem ver abaixo. 31/07/2012 Andei 3 dias ausente aqui do tópico mas foi pelo motivo de eu estar me empenhando muito no servidor. Nesses 3 dias muitas coisas aconteceram relacionado a ele. Algumas modificações vocês podem ver abaixo. Muitos ajustes tambem foram feitos como balanceamento dos pokemons, danos, etc. Poderão conferir todas as modificações detalhadas no Changelog Ingame. *Adicionado todos os 151 pokemons "Shiny" *Adicionado Evento para a inauguração do PBlink! Conclusão O Pblink Online não é apenas mais um servidor de pokemon, mais é O SERVIDOR de pokemon. Estamos com grandes planos e o projeto crescerá significadamente. Eu fiz o servidor sozinho, a mais ou menos 6 meses. Tem as próprias sources. Entao vamos continuar crescendo com ótimos obejtivos pois quem traça seu objetivo consegue com esforço e dedicação. O servidor está quase pronto, o que falta é a adição de alguns sistemas. Breve mais fotos do servidor... Previsão de lançamento do servidor oficial: dia 10 de agosto de 20121 ponto
-
Raios Nas Vocations Sem Bugs [8.00]
iFaxBR reagiu a gustavo3754 por um tópico no fórum
@iFaxBR pega o script de transform.lua e muda pra revert.lua, mais pra adianta vo postar aqui abaixo. pra você colocar efeito nas vocation tem que faser o script vei, tipo é meio foda. fais um tópico ai pedindo ele talvez alguem ajude Talkaction/script/Revert.lua local config = { --[vocation id] = { level, nova voc, looktype, efeito} [2] = { 8, 1, 69, 11}, [3] = { 8, 2, 37, 58}, [4] = { 8, 3, 71, 59}, [5] = { 8, 4, 71, 59}, [6] = { 8, 5, 71, 32}, [7] = { 8, 6, 71, 26}, } function onSay(cid, words, param, channel) doPlayerSay(cid, "revert") local voc = config[getPlayerVocation(cid)] if voc then if getPlayerLevel(cid) >= voc[1] then doPlayerSetVocation(cid, voc[2]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You Revert!") local outfit = {lookType = voc[3]} doCreatureChangeOutfit(cid, outfit) doSendMagicEffect(getCreaturePosition(cid), voc[4]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You need level " .. voc[1] .. " to revert.") end else doPlayerSendCancel(cid, "You not use to revert!") end return true end Tag. Talkaction/talkaction.xml <talkaction words="revert;Revert" event="script" value="revert.lua"/> Okay Rep+ Ae1 ponto -
DELETE FROM table_name ou DELETE * FROM table_name obviamente, troca table_name pela sua tabela ai1 ponto
-
npcHandler:say("Oro aos deuses, para que com estes equipamentos você possa sempre sair vitorioso de suas batalhas!", cid, 5000, 1) -- fala após um determinado delay de 5000 milesegundos npcHandler:onCreatureDisappear(cid) -- encerra conversa com o player1 ponto
-
[Encerrado] [Pokemon] Dúvidas? - Pda
shadow2012 reagiu a zerefshirou por um tópico no fórum
@shadow2012 Muda no moves.lua Toxic Sparkes para Toxic Spikes ou coloca o do Toxic Spikes e faz um novo com nome de Toxic Sparkes1 ponto -
Script Help Plis
Demonbholder reagiu a SmiX por uma questão
Tenta assi,: function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Apenas Players VIP Donate Podem Entrar Aqui , Para Comprar Digite !depositar", msgWelcome = "Bem vindo a area VIP Donate" } if getPlayerStorageValue(cid, 7527) >= 1 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end1 ponto -
[Encerrado] [Pokemon] Dúvidas? - Pda
Yaldabaoth reagiu a shadow2012 por um tópico no fórum
@Yaldabaoth surge.xml surge.lua giovanni.xml giovanni.lua1 ponto -
Erro No Monster
pedrizito15 reagiu a SmiX por uma questão
Falto o [.xml] no final. Tenta assim: <monster name="Tester" file="tester.xml"/>1 ponto -
Script De Nao Poder Killar Levels Baixos
Matematheus reagiu a Vodkart por uma questão
tenta function onCombat(cid, target) local MaxDifLevel = 50 if isPlayer(cid) and isPlayer(target) and math.abs(getPlayerLevel(cid) - getPlayerLevel(target)) > MaxDifLevel then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end return true end local MaxDifLevel = 50 é a diferença de lvl pra atacar o jogador1 ponto -
@Bioleve na proxima atualizaçao eu vo posta o .spr/.dat junto, pq tem novos effects, e dai ja vai vir o old amber ^^ e pq tu acha q eu n "balanciei" nd... ;x @Wiisht ja arrumei o problema... e na real o problema eh quando tu da trade com alguem com uma pokeballs, e dai tu tenta da look na ball dentro da janela de trade... ;p vira na proxima atualizaçao tb @AncientFury eu uso o programa "sandboxie" para abrir + de 1 client... e sobre a velo.. ela eh alterada conforme a tabela pokes no arquivo... lib/configuration.lua... -eh o parametro "agility" da tabela...-1 ponto
-
Olhem A Mina Do Apocarai
Andre Miles reagiu a Folspa por um tópico no fórum
Internet é internet, foi que nem um nego que disse por aqui pelo bar... internet é como uma rua, você tem as fotos na sua casa e quando as poem na rua, terceiros fazem o que quiserem com elas.1 ponto -
Podes baixar aqui: http://code.google.com/p/otservdata/source/browse/#svn%2Fbranches%2F0.3%2Fpath_960 É baseado nas sources do tfs1 ponto
-
SLicer o negócio do corpse não é o crop size? E essa defesa do server ta me trolando, pela fórmula lah não tem como aumentar a defesa pelo lvl mas ta aumentando. EU fiz um cliente novo tbm importei todas as sprites do nosso cliente novamente, só que sem repetir e bla bla bla, sobrou espço pra 15 mil sprites, o foda que tenho que ajusta alguns corpse que estão dando debug. E do nado sumiu aquele efeito que vc joga coisa na agua e faz aquele negocinho na agua, o mesmo da pesca. @Zeref Vo lah no fórum deles pedirem pra aumentar a area do hyper beam, ice beam, e aquelas de thunder pra ficar mais "justo" o jogo kkk Tem um cara lah tbm que sempre da sugestão de sprites pra pxg, vou ver se ele da aquela força pra gente. Seria 40 efeitos a menos. Isso sim é um blastoise:1 ponto
-
hum.. aki colocando soh o lvl na ball n deu.. ;x vo ter q por tudo --' odio.. hehe1 ponto
-
n da pq tem que kikar o player pra remover a skull e justamente por isso buga1 ponto
-
[Ajuda] Npc Reborn 8.54 [Ajuda]
Flaah reagiu a coyotestark por uma questão
possivelmente a função de inserir vocation de seu ot seja diferente, pq eu uso este em meu ot.1 ponto -
Amigo vo te passar meu Sistema de SHOP Funcionando 100% ai você edita do seu jeito <?PHP // ALTER TABLE `z_shop_history_item` CHANGE `offer_id` `offer_id` VARCHAR( 255 ) NOT NULL; // UPDATE `z_shop_history_item`, `z_shop_offer` SET `z_shop_history_item`.`offer_id` = `z_shop_offer`.`offer_name` WHERE `z_shop_history_item`.`offer_id` = `z_shop_offer`.`id`; if($config['site']['shop_system'] == 1) { if($logged) $user_premium_points = $account_logged->getCustomField('premium_points'); else $user_premium_points = 'Login first'; function getItemByID($id) { $id = (int) $id; $SQL = $GLOBALS['SQL']; $data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE '.$SQL->fieldName('id').' = '.$SQL->quote($id).';')->fetch(); if ($data['offer_type'] == 'pacc') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['days'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'item') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'vipdays') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['days'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'itemvip') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'container') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['container_id'] = $data['itemid2']; $offer['container_count'] = $data['count2']; $offer['item_id'] = $data['itemid1']; $offer['item_count'] = $data['count1']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'unban') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'redskull') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } elseif ($data['offer_type'] == 'itemlogout') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['pid'] = $data['pid']; $offer['count1'] = $data['count1']; $offer['item_id'] = $data['itemid1']; $offer['free_cap'] = $data['free_cap']; } elseif ($data['offer_type'] == 'changename') { $offer['id'] = $data['id']; $offer['type'] = $data['offer_type']; $offer['points'] = $data['points']; $offer['description'] = $data['offer_description']; $offer['name'] = $data['offer_name']; } return $offer; } function getOfferArray() { $offer_list = $GLOBALS['SQL']->query('SELECT * FROM '.$GLOBALS['SQL']->tableName('z_shop_offer').';'); $i_pacc = 0; $i_item = 0; $i_vipdays = 0; $i_itemvip = 0; $i_container = 0; $i_unban = 0; $i_redskull = 0; $i_itemlogout = 0; $i_changename = 0; while($data = $offer_list->fetch()) { if ($data['offer_type'] == 'pacc') { $offer_array['pacc'][$i_pacc]['id'] = $data['id']; $offer_array['pacc'][$i_pacc]['days'] = $data['count1']; $offer_array['pacc'][$i_pacc]['points'] = $data['points']; $offer_array['pacc'][$i_pacc]['description'] = $data['offer_description']; $offer_array['pacc'][$i_pacc]['name'] = $data['offer_name']; $i_pacc++; } elseif ($data['offer_type'] == 'item') { $offer_array['item'][$i_item]['id'] = $data['id']; $offer_array['item'][$i_item]['item_id'] = $data['itemid1']; $offer_array['item'][$i_item]['item_count'] = $data['count1']; $offer_array['item'][$i_item]['points'] = $data['points']; $offer_array['item'][$i_item]['description'] = $data['offer_description']; $offer_array['item'][$i_item]['name'] = $data['offer_name']; $i_item++; } elseif ($data['offer_type'] == 'vipdays') { $offer_array['vipdays'][$i_vipdays]['id'] = $data['id']; $offer_array['vipdays'][$i_vipdays]['days'] = $data['count1']; $offer_array['vipdays'][$i_vipdays]['points'] = $data['points']; $offer_array['vipdays'][$i_vipdays]['description'] = $data['offer_description']; $offer_array['vipdays'][$i_vipdays]['name'] = $data['offer_name']; $i_vipdays++; } elseif ($data['offer_type'] == 'itemvip') { $offer_array['itemvip'][$i_itemvip]['id'] = $data['id']; $offer_array['itemvip'][$i_itemvip]['item_id'] = $data['itemid1']; $offer_array['itemvip'][$i_itemvip]['item_count'] = $data['count1']; $offer_array['itemvip'][$i_itemvip]['points'] = $data['points']; $offer_array['itemvip'][$i_itemvip]['description'] = $data['offer_description']; $offer_array['itemvip'][$i_itemvip]['name'] = $data['offer_name']; $i_itemvip++; } elseif ($data['offer_type'] == 'container') { $offer_array['container'][$i_container]['id'] = $data['id']; $offer_array['container'][$i_container]['container_id'] = $data['itemid2']; $offer_array['container'][$i_container]['container_count'] = $data['count2']; $offer_array['container'][$i_container]['item_id'] = $data['itemid1']; $offer_array['container'][$i_container]['item_count'] = $data['count1']; $offer_array['container'][$i_container]['points'] = $data['points']; $offer_array['container'][$i_container]['description'] = $data['offer_description']; $offer_array['container'][$i_container]['name'] = $data['offer_name']; $i_container++; } elseif ($data['offer_type'] == 'unban') { $offer_array['unban'][$i_unban]['id'] = $data['id']; $offer_array['unban'][$i_unban]['points'] = $data['points']; $offer_array['unban'][$i_unban]['description'] = $data['offer_description']; $offer_array['unban'][$i_unban]['name'] = $data['offer_name']; $i_unban++; } elseif ($data['offer_type'] == 'redskull') { $offer_array['redskull'][$i_redskull]['id'] = $data['id']; $offer_array['redskull'][$i_redskull]['points'] = $data['points']; $offer_array['redskull'][$i_redskull]['description'] = $data['offer_description']; $offer_array['redskull'][$i_redskull]['name'] = $data['offer_name']; $i_redskull++; } elseif ($data['offer_type'] == 'itemlogout') { $offer_array['itemlogout'][$i_itemlogout]['id'] = $data['id']; $offer_array['itemlogout'][$i_itemlogout]['points'] = $data['points']; $offer_array['itemlogout'][$i_itemlogout]['description'] = $data['offer_description']; $offer_array['itemlogout'][$i_itemlogout]['name'] = $data['offer_name']; $offer_array['itemlogout'][$i_itemlogout]['count1'] = $data['count1']; $offer_array['itemlogout'][$i_itemlogout]['pid'] = $data['pid']; $offer_array['itemlogout'][$i_itemlogout]['item_id'] = $data['itemid1']; $offer_array['itemlogout'][$i_itemlogout]['free_cap'] = $data['free_cap']; $i_itemlogout++; } elseif ($data['offer_type'] == 'changename') { $offer_array['changename'][$i_changename]['id'] = $data['id']; $offer_array['changename'][$i_changename]['points'] = $data['points']; $offer_array['changename'][$i_changename]['description'] = $data['offer_description']; $offer_array['changename'][$i_changename]['name'] = $data['offer_name']; $i_changename++; } } return $offer_array; } if($action == '') { unset($_SESSION['viewed_confirmation_page']); $main_content .= '<h2><center>Welcome to '.$config['server']['serverName'].' Shop.</center></h2>'; $offer_list = getOfferArray(); //show list of vipdays offers if(count($offer_list['vipdays']) > 0) { $main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b> VIP Days</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>'; foreach($offer_list['vipdays'] as $vipdays) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">'.$vipdays['days'].'</td><td><b>'.$vipdays['name'].'</b> ('.$vipdays['points'].' points)<br />'.$vipdays['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$vipdays['id'].'"><input type="submit" value="Buy '.$vipdays['name'].'"><br><b>for '.$vipdays['points'].' points</b></form>'; $main_content .= '</td></tr>'; } $main_content .= '</table><br />'; } //show list of itemsvip offers if(count($offer_list['itemvip']) > 0) { $main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b> Items VIP</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>'; foreach($offer_list['itemvip'] as $itemvip) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$itemvip['id'].'.gif"></td><td><b>'.$itemvip['name'].'</b> ('.$itemvip['points'].' points)<br />'.$itemvip['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$itemvip['id'].'"><input type="submit" value="Buy '.$itemvip['name'].'"><br><b>for '.$item['points'].' points</b></form>'; $main_content .= '</td></tr>'; } $main_content .= '</table><br />'; } //show list of items offers if(count($offer_list['item']) > 0 or count($offer_list['container']) > 0 or count($offer_list['itemlogout']) > 0) $main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b> ITEMS</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>'; if(count($offer_list['item']) > 0) { foreach($offer_list['item'] as $item) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$item['id'].'.gif"></td><td><b>'.$item['name'].'</b> ('.$item['points'].' points)<br />'.$item['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$item['id'].'"><input type="submit" value="Buy '.$item['name'].'"><br><b>for '.$item['points'].' points</b></form>'; $main_content .= '</td></tr>'; } $main_content .= '</table><br />'; } //show list of containers offers if(count($offer_list['container']) > 0) { $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b> CONTAINERS WITH ITEMS</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>'; foreach($offer_list['container'] as $container) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$container['id'].'.gif"></td><td><b>'.$container['name'].'</b> ('.$container['points'].' points)<br />'.$container['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$container['id'].'"><input type="submit" value="Buy '.$container['name'].'"><br><b>for '.$container['points'].' points</b></form>'; $main_content .= '</td></tr>'; } $main_content .= '</table><br />'; } if(count($offer_list['itemlogout']) > 0) { $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b> Receive Item on Logout</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></font></td><td width="350" align="left"><b>Description</b></font></td><td width="250" align="center"><b>Select product</b></font></td></tr>'; foreach($offer_list['itemlogout'] as $itemlogout) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$itemlogout['id'].'.gif"></td><td><b>'.$itemlogout['name'].'</b> ('.$itemlogout['points'].' points)<br />'.$itemlogout['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$itemlogout['id'].'"><input type="submit" value="Buy '.$itemlogout['name'].'"><br><b>for '.$itemlogout['points'].' points</b></form>'; $main_content .= '</td></tr>'; } $main_content .= '</table><br />'; } if(count($offer_list['changename']) > 0 or count($offer_list['pacc']) > 0 or count($offer_list['redskull']) > 0 or count($offer_list['unban']) > 0 ) $main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b> Others</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>#</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>'; //Pacc if(count($offer_list['pacc']) > 0) foreach($offer_list['pacc'] as $pacc) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">'.$pacc['days'].'</td><td><b>'.$pacc['name'].'</b> ('.$pacc['points'].' points)<br />'.$pacc['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$pacc['id'].'"><input type="submit" value="Buy '.$pacc['name'].'"><br><b>for '.$pacc['points'].' points</b></form>'; } //Change Name if(count($offer_list['changename']) > 0) foreach($offer_list['changename'] as $changename) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">Change Name</td><td><b>'.$changename['name'].'</b> ('.$changename['points'].' points)<br />'.$changename['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$changename['id'].'"><input type="submit" value="Buy '.$changename['name'].'"><br><b>for '.$changename['points'].' points</b></form>'; } //Remove Red Skull if(count($offer_list['redskull']) > 0) foreach($offer_list['redskull'] as $redskull) { $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$redskull['id'].'.gif"></td><td><b>'.$redskull['name'].'</b> ('.$redskull['points'].' points)<br />'.$redskull['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$redskull['id'].'"><input type="submit" value="Buy '.$redskull['name'].'"><br><b>for '.$redskull['points'].' points</b></form>'; $main_content .= '</td></tr>'; } //Unban if(count($offer_list['unban']) > 0) foreach($offer_list['unban'] as $unban){ $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">Unban</td><td><b>'.$unban['name'].'</b> ('.$unban['points'].' points)<br />'.$unban['description'].'</td><td align="center">'; if(!$logged) $main_content .= '<b>Login to buy</b>'; else $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$unban['id'].'"><input type="submit" value="Buy '.$unban['name'].'"><br><b>for '.$unban['points'].' points</b></form>'; $main_content .= '</td></tr>'; } $main_content .= '</table>'; } elseif($action == 'select_player') { unset($_SESSION['viewed_confirmation_page']); if(!$logged) { $main_content .= 'Please login first.'; } else { $buy_id = (int) $_REQUEST['buy_id']; if(empty($buy_id)) { $main_content .= 'Please <a href="index.php?subtopic=shopsystem">select item</a> first.'; } else { $buy_offer = getItemByID($buy_id); if(isset($buy_offer['id'])) { //item exist in database if($buy_offer['type'] != 'changename') { if($user_premium_points >= $buy_offer['points']) { $main_content .= '<center><h2>Select player</h2><table border="0" cellpadding="1" cellspacing="1" width="650"> <tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Selected offer</b></font></td></tr> <tr bgcolor="#F1E0C6"><td width="100"><b>Name:</b></td><td width="550">'.$buy_offer['name'].'</td></tr> <tr bgcolor="#D4C0A1"><td width="100"><b>Description:</b></td><td width="550">'.$buy_offer['description'].'</td></tr> </table><br /><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="1" cellspacing="1" width="650"> <tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Give item to a player from your account</b></font></td></tr> <tr bgcolor="#F1E0C6"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">'; $players_from_logged_acc = $account_logged->getPlayersList(); if(count($players_from_logged_acc) > 0) { $players_from_logged_acc->orderBy('name'); foreach($players_from_logged_acc as $player) $main_content .= '<option>'.$player->getName().'</option>'; } else { $main_content .= 'You don\'t have any character on your account.'; } $main_content .= '</select> <input type="submit" value="Give"></td></tr></table> </form><br /><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="1" cellspacing="1" width="650"> <tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Give item to other player</b></font></td></tr> <tr bgcolor="#D4C0A1"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of the player who should get item</td></tr> <tr bgcolor="#F1E0C6"><td width="110"><b>From:</b></td><td width="550"><input type="text" name="buy_from"> <input type="submit" value="Give"> - your nick, \'empty\' = Anonymous</td></tr> </table><br /></form>'; } else { $main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points.<br>You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="index.php?subtopic=shopsystem">select other item</a> or buy premium points.'; } } else { $main_content .= '<center><h2>Change Name</h2><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'"> <table border="0" cellpadding="1" cellspacing="1" width="650"><tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Change Name:</b></font></td></tr> <tr bgcolor="#D4C0A1"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">'; $players_from_logged_acc = $account_logged->getPlayersList(); if(count($players_from_logged_acc) > 0) { $players_from_logged_acc->orderBy('name'); foreach($players_from_logged_acc as $player) { $main_content .= '<option>'.$player->getName().'</option>'; } } else { $main_content .= 'You don\'t have any character on your account.'; } $main_content .= '</select></td></tr><tr bgcolor="#F1E0C6"><td width="110"><b>New name:</b></td><td width="550"><input type="text" name="buy_from"> <input type="submit" value="Change Name"></td></tr></table><br /></form>'; } } else { $main_content .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem">select item</a> again.'; } } } } elseif($action == 'confirm_transaction') { if(!$logged) { $main_content .= 'Please login first.'; } else { $buy_id = (int) $_POST['buy_id']; $buy_name = stripslashes(urldecode($_POST['buy_name'])); $buy_from = stripslashes(urldecode($_POST['buy_from'])); if(empty($buy_id)) { $main_content .= 'Please <a href="index.php?subtopic=shopsystem">select item</a> first.'; } else { if($buy_offer['type'] == 'changename'){ if(!check_name_new_char($buy_from)) { $main_content .= 'Invalid name format of new name.'; } } else { $buy_offer = getItemByID($buy_id); $check_name_in_database = $ots->createObject('Player'); $check_name_in_database->find($buy_from); if($buy_offer['type'] == 'changename'){ if(!$check_name_in_database->isLoaded()) { } } if(isset($buy_offer['id'])) { //item exist in database if($user_premium_points >= $buy_offer['points']) { if(check_name($buy_name)) { $buy_player = new OTS_Player(); $buy_player->find($buy_name); if($buy_player->isLoaded()) { $buy_player_account = $buy_player->getAccount(); if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes') { if($buy_offer['type'] == 'pacc') { $player_vip_time = $buy_player_account->getCustomField('vip_time'); $player_lastlogin = $buy_player_account->getCustomField('lastday'); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');'; $SQL->query($save_transaction); if($player_vip_time > 0) $buy_player_account->setCustomField('vip_time', $player_vip_time + $buy_offer['days'] * 86400); else $buy_player_account->setCustomField('vip_time', time() + $buy_offer['days'] * 86400); $buy_player_account->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; if ($player_vip_days >= 1) { } $main_content .= '<center><h2>VIP Days added!</h2><b>'.$buy_offer['days'].' days</b> of VIP days added to the account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>'; } elseif($buy_offer['type'] == 'unban') { $my_acc_id = $account_logged->getCustomField('id'); $datadata = $SQL->query('SELECT * FROM '.$SQL->tableName('bans').' WHERE value = '.$my_acc_id.';')->fetch(); if($datadata['value'] == $my_acc_id) { if($SQL->query('DELETE FROM bans WHERE value= '.$my_acc_id.' LIMIT 1;')) { } else { $SQL->query('DELETE FROM bans WHERE account= '.$my_acc_id.' LIMIT 1;'); } $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<center><h2>Ban Deleted!</h2><b>Your account has been unbanned for '.$buy_offer['points'].' premium points</b> from your account. <br>Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>'; } else { $main_content .= '<center><b>You don\'t have any bans in your account!</b><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>'; } } //////////////////////////////// elseif($buy_offer['type'] == 'itemlogout') { $my_acc_id = $buy_player->getCustomField('id'); $playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE id = '.$my_acc_id.';')->fetch(); $playerslot = $SQL->query('SELECT * FROM '.$SQL->tableName('player_items').' WHERE player_id = '.$my_acc_id.';')->fetch(); if($playerinfo['online'] == '0') { if ($playerslot['pid'] != '10') { if ($datadata['cap'] >= $SQL->quote($buy_offer['free_cap'])) { $SQL->query('INSERT INTO player_items (player_id, pid, itemtype, count) VALUES ('.$my_acc_id.', '.$SQL->quote($buy_offer['pid']).', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['count1']).');'); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<h2>Item received to player: '.$buy_player->getName().'!</h2><br>Now you have <b>'.$user_premium_points.' premium points</b>. <br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a>'; } else { $main_content .= '<b>You need '.$SQL->quote($buy_offer['free_cap']).' or more of cap!</b><br><a href="index.php?subtopic=shopsystem">Go back</a>'; } } else { $main_content .= '<b>Please leave the arrow slot in blank to receive item!</b><br><a href="index.php?subtopic=shopsystem">Go back</a>'; } } else { $main_content .= '<b>You need to be offline!</b><br><a href="index.php?subtopic=shopsystem">Go back</a>'; } } //////////////////////////////// elseif($buy_offer['type'] == 'changename') { $my_acc_id = $buy_player->getCustomField('id'); $playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch(); $checkname = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('name').' = '. $SQL->quote($buy_from) .';')->fetch(); if($playerinfo['online'] == '0') { if($checkname == false) { $SQL->query('UPDATE `players` SET `name` = '. $SQL->quote($buy_from) .' WHERE `id` = '. $my_acc_id.' ;'); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<center><h2>Your name has been changed to '.$buy_from.'.</h2><br><b>You have '.$user_premium_points.' premium points left</b>. <br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>'; } else { $main_content .= '<center><h2>Sorry, the name "<i>'.$buy_from.'</i>" does already exist.<br>Please select another name.</h2><br>'; } } else { $main_content .= '<center><h2>'.$buy_name.' has to be offline to complete transaction.</h2><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>'; } } //////////////////////////////// elseif($buy_offer['type'] == 'redskull') { $my_acc_id = $buy_player->getCustomField('id'); $playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch(); if($playerinfo['skull'] == '4' AND $playerinfo['online'] >= '0' AND $playerinfo['skulltime'] > '0') { $SQL->query('UPDATE killers SET unjustified=0 WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id='. $my_acc_id .');'); $SQL->query('UPDATE players SET skulltime=0, skull=0 WHERE id='. $my_acc_id .';'); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<center><h2>RedSkull Removed!</h2><br><b>Your redskull has been removed from the player '.$buy_player->getName().'.</b> <br>Now you have<b> '.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>'; } else { $main_content .= '<center><b>'.$buy_player->getName().' has to be offline or have redskull to complete transaction!.</b><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>'; } } ////////////////////////// elseif($buy_offer['type'] == 'item') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', \'\', \'\', \'item\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<center><h2>Item added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br>Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>'; } if($buy_offer['type'] == 'vipdays') { $player_vip_time = $buy_player_account->getCustomField('vip_time'); $player_lastlogin = $buy_player_account->getCustomField('lastday'); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');'; $SQL->query($save_transaction); if($player_vip_time > 0) $buy_player_account->setCustomField('vip_time', $player_vip_time + $buy_offer['days'] * 86400); else $buy_player_account->setCustomField('vip_time', time() + $buy_offer['days'] * 86400); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; if ($player_vip_days >= 1) { } $main_content .= '<center><h2>VIP Days added!</h2><b>'.$buy_offer['days'].' days</b> of VIP days added to the account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>'; } elseif($buy_offer['type'] == 'itemvip') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['megaitems_count']).', \'\', \'\', \'megaitems\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<center><h2>Mega Item added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br>Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>'; } elseif($buy_offer['type'] == 'container') { $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote($buy_offer['container_id']).', '.$SQL->quote($buy_offer['container_count']).', \'container\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');'; $SQL->query($sql); $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).', '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');'; $SQL->query($save_transaction); $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']); $user_premium_points = $user_premium_points - $buy_offer['points']; $main_content .= '<center><h2>Container of items added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>'; } } else { if($buy_offer['type'] != 'changename') { $set_session = TRUE; $_SESSION['viewed_confirmation_page'] = 'yes'; $main_content .= '<center><h2>Confirm transaction</h2> <table border="0" cellpadding="1" cellspacing="1" width="700"> <tr bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>Confirm transaction</b></font></td></tr> <tr bgcolor="#D4C0A1"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr> <tr bgcolor="#F1E0C6"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr> <tr bgcolor="#D4C0A1"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr> <tr bgcolor="#F1E0C6"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr> <tr bgcolor="#D4C0A1"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr> <tr bgcolor="#F1E0C6"><td width="100"><b>Transaction?</b></td><td width="275" align="left"> <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.urlencode($new_name).'"><input type="hidden" name="buy_name" value="'.urlencode($buy_name).'"><input type="submit" value="Accept"></form></td> <td align="right"><form action="index.php?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr> </table>'; } else { $set_session = TRUE; $_SESSION['viewed_confirmation_page'] = 'yes'; $main_content .= '<center><h2>Confirm Name Changing</h2> <table border="0" cellpadding="1" cellspacing="1" width="700"> <tr bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>Confirm transaction</b></font></td></tr> <tr bgcolor="#D4C0A1"><td width="130"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr> <tr bgcolor="#F1E0C6"><td width="130"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr> <tr bgcolor="#D4C0A1"><td width="130"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr> <tr bgcolor="#F1E0C6"><td width="130"><b>Current Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr> <tr bgcolor="#D4C0A1"><td width="130"><b>New Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr> <tr bgcolor="#F1E0C6"><td width="130"><b>Change Name?</b></td><td width="275" align="left"> <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.urlencode($buy_from).'"><input type="hidden" name="buy_name" value="'.urlencode($buy_name).'"><input type="submit" value="Accept"></form></td> <td align="right"><form action="index.php?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr> </table>'; } } } else { $main_content .= 'Player with name <b>'.$buy_name.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.'; } } else { $main_content .= 'Invalid name format. Please <a href="index.php?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.'; } } else { $main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="index.php?subtopic=shopsystem">select other item</a> or buy premium points.'; } } else { $main_content .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem">select item</a> again.'; } } } } if(!$set_session) { unset($_SESSION['viewed_confirmation_page']); } } elseif($action == 'show_history') { if(!$logged) { $main_content .= 'Please login first.'; } else{ $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($items_history_received)) { foreach($items_history_received as $item_received) { if($account_logged->getId() == $item_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $item_received['from_account']) $items_received_text .= '<i>Your account</i>'; else $items_received_text .= $item_received['from_nick']; $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>'; if($item_received['trans_real'] > 0) $items_received_text .= '<td>'.date("j F Y, H:i:s", $item_received['trans_real']).'</td>'; else $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $items_received_text .= '</tr>'; } } $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';'); if(is_object($paccs_history_received)) { foreach($paccs_history_received as $pacc_received) { if($account_logged->getId() == $pacc_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccs_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $pacc_received['from_account']) $paccs_received_text .= '<i>Your account</i>'; else $paccs_received_text .= $pacc_received['from_nick']; $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>'; } } $main_content .= '<center><h1>Transactions History</h1></center>'; if(!empty($items_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b> Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$items_received_text.'</table><br />'; if(!empty($paccs_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b> Pacc Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccs_received_text.'</table><br />'; if(empty($paccs_received_text) && empty($items_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; } } if(!$logged) $main_content .= 'Please login to see how much points you have.'; else $main_content .= '<br><b><font color="green">You have premium points: </font></b>'.$user_premium_points; } else $main_content .= '<br><center><b>Shop System is currently disabled for this server.Please ask the admin for more information.</b></center>'; ?>1 ponto
-
ixi, vai dar maior trabalho. mas vou tentar explicar.1 ponto
-
Change Sex E New Recovery Key Gesior
Brunorushmaxtibia reagiu a 1027929 por um tópico no fórum
Change Sex já deve vir no gesior. Me passa o seu Shop para eu adicionar.1 ponto -
Problema No Rme
bardockssj1 reagiu a Tiag017 por uma questão
Pow man isso é simples, qual a verção do remere que você esta usando !! Bom ja vou explicar pra você,abre seu remere e procure por essa barra ela fica no topo superior do programa. Clique em View e depois desmarque está opção que ja esta marcada no meu como exemplo: Bom após feito isso seu mapa ira apareçer normalmente Ajudei você? Então da um +Rep ae1 ponto -
Mapa Gamers-Br
rafaseu reagiu a corujinha11 por um tópico no fórum
Que se foda vai-se fuden tem virus n troxa po eu editei o server e puis a web site nele junto vc é burro ou qr 1 real ?1 ponto -
Mapa Rozinx ?!
gleison157 reagiu a Tchubaka por uma questão
eu tenho mapa. talkactions . actions. td suahsuahusa. e mapa 100%melhorado. varias talkactions extras para mais rpg. monsters iguais. reset vocation .. etc... nao e dificil e so se esforçar cara'1 ponto -
[Encerrado] [Pokemon] Dúvidas? - Pda
StyloMaldoso reagiu a Slicer por um tópico no fórum
@bizao030188 n faço ideia @all com um pouco de atraso mas.. versao 1.3 e 2.3 lançadas... ;p enjoy! http://www.xtibia.com/forum/topic/185337-pokemon-pda-by-slicer/1 ponto -
ok mas é que sou novato aki e n sei mexer mt mas mesmo asim obrigadu pela sinceridade1 ponto
-
Olá Eu Já Vi em Varios Ots servers Um Sistema de Missão que era um Npc Para cada Missão Ex: O Npc Morga Teria que matar X quantidade de Morgaroths e o Npc Infer Teria que matar X Quantidades de Infernatil entao se eu não fui muito claro Me avisem que eu tento explicar melhor. Valeu Obrigada!1 ponto
-
[Wodbo] Ajuda Ai Por Favor !
leonardobo reagiu a gustavo3754 por uma questão
Olha os buffs ficam em movements/script/first.lua Nesta parte: doSkillBag(cid) doPlayerAddItem(cid,2673,1) doPlayerAddItem(cid,2148,1) doPlayerAddItem(cid,2148,1) em > doPlayerAddItem são os itens iniciais qua o player ganha quando cria seu char. E nesta parte: if (getPlayerVocation(cid) == 1) or (getPlayerVocation(cid) == 15) or (getPlayerVocation(cid) == 16) or (getPlayerVocation(cid) == 207) then doPlayerAddItem(cid,2313,1) doPlayerAddItem(cid,2277,1) doPlayerAddItem(cid,2300,1) são os buffs. no começo da lista de vocations vai ser assim: if (getPlayerVocation(cid) == 1) sempre use o if como inicial.. para o resto utilize: or (getPlayerVocation(cid) == 15) para o meio utilize or (para as vocations do meio) e no fim utilize or novamente mais com a sigla de final "then" ficando assim. or (getPlayerVocation(cid) == 207) then e aqui são os buffs doPlayerAddItem(cid,2313,1) doPlayerAddItem(cid,2277,1) doPlayerAddItem(cid,2300,1) os ids e a quantidade 2313 é o id e 1 é a quantidade. como você vai colocar uma nova vocation é só voce adicionar o id da vocation no meio or (getPlayerVocation(cid) == ID DA VOCATION SHENRON) e pronto.. como o CoyoteStark disse o script de transform fica na pasta spells. tenho um topico com um script assim e com raios, espero ter ajudado. Rep ai se ajudei =P abraço1 ponto -
Como Adicionar Mais Que 255 Efeitos No Servidor ?
AsMinaPira reagiu a Kydrai por uma questão
Vou dizer o modo como descobri (no cliente atual do pstorm ainda não tem), mas só estarei repassando o conhecimento que me repassaram Quem deu as dicas foi o Baxnie, mesmo desenvolvedor que participa do otclient e fez isso para o PO na época. Basicamente você vai na parte onde o cliente lê o packet com 0x83, e substitui a função pra pegar uin8 pela uin16. Pra achar o endereço dessas funções seria por comparação. Você já tem a ordem dos packets no OT, então no cliente seria a mesma coisa. Pra quem não sabe usar o ollydbg ou fazer isso aí, no tpforums tem ótimos tutoriais. joinu sempre visitando o forum, também deve ser capaz de fazer isso rs Mas pra ser sincero, se tudo der certo, acho que logo o otclient vai predominar nos otservs.1 ponto -
Duvida Redirecionamento
Sociopataa reagiu a TendoTensei por um tópico no fórum
vai em layout.php procura por Forum dps por isso <a href="Forum"> mude para <a href="SITE DO SEU FORUM">1 ponto -
Pequena Construção.
ClaytonSantos reagiu a mdgabrielzim por um tópico no fórum
Bem aqui esta uma pequena construção que eu fiz. Download:Clique aqui1 ponto -
Remoção
gustavoMtek reagiu a joaohd por um tópico no fórum
Venho aqui hoje para expor os motivos por estar saindo do XTibia e talvez abrir os olhos de muitos de vocês para tudo o que acontece dentro do XTibia. Ao longo de quase 2 anos que frequento o fórum, aprendi muito na linguagem lua, mas infelizmente nunca tive apoio algum por parte dos líderes. Tentei por diversas vezes algum melhoramento para a seção de scripting mas nunca fui ouvido. Entretanto, este não é meu aborrecimento principal. O primeiro problema que tive com o xtibia, infelizmente, custou meu projeto de OpenTibia voltado para pokemons. Nossa equipe estava trabalhando para terminarmos o servido o quanto antes e fomos contatados por então um coordenador do xtibia. Bom, nos foi prometido divulgação de nosso servidor em troca da exposição do nome XTibia em nosso servidor e site. Fechamos a parceria, inclusive mandamos todo o material que nos foi pedido. Uma seção na área de Servidores Incentivados foi criada em nosso nome mas nunca tivemos o que foi prometido, uma vez que o Administrador do fórum disse que teríamos que postar nosso servidor juntamente com as sources, coisa que não nos foi exigida antes de fecharmos o acordo. Desde então nossa equipe se desmotivou e paramos de desenvolver. Logo após isto, passei a observar e refletir sobre algumas coisas que acontecem internamente e percebi que o ambiente é muito sujo. Nós da equipe - quando me referir à equipe, refiro-me à colaboração e moderação - somos muito cobrados. Exigem muito mas não temos apoio algum, somos lançados à nossa própria sorte. Quanto aos projetos de crescimento, não vi nenhuma atitude que realmente faça surtir efeito. Eu ouço falar em lista de servidores a nada menos que 10 meses. E quanto ao portal? Não temos um portal. Sinceramente, o que vejo é muita conversa e pouca ação. Os números no rodapé do forúm não refletem necessariamente a situação atual. Não mostra o crescimento do fórum ou do conteúdo. Usuários registrados não são usuários ativos. Nos últimos tempos, muitas pessoas boas saíram da equipe por muitos dos motivos que citei acima. Quando o JV saiu da equipe, o que foi publicado é que ele estava saindo por problemas pessoais e que voltaria. Seria esta a verdade? Infelizmente, não. O real motivo é justamente a insatisfação com a situação do XTibia e as posições tomadas pelo Administrador. Discordo da ideologia que o Gustavo tenta transmitir, de algo colaborativo mas quando realmente ele lucra - e muito - com nosso trabalho. Nos últimos tempos o fórum foi invadido por banners em todos os lugares. Ele mal visita o próprio fórum. Você sabia que a promogames e o XTibia tem o mesmo dono? Ao meu ver, eu acho incorreto vincular o nome de um projeto colaborativo a outro projeto que tem como objetivo o lucro. Por fim, a promoção do Lordfire foi a gota d'água. O que nos transpassa é que foi uma promoção mais por amizade que merecimento. Muitos podem pensar que seria inveja ou algo do tipo, mas eu tenho plena consciência de que não poderia jamais almejar este cargo na situação que me encontro hoje. Meu tempo é muito excasso e tento ao máximo ajudar na minha área mas sei que não faço o melhor trabalho nem que sou o melhor moderador. Àquele que for me banir - se for - cabe a decisão de remover o meu conteúdo. Sem mais agradeço aos amigos que conheci aqui e que certamente alguns levarei para a vida inteira. flw1 ponto