Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 11/19/14 em todas áreas

  1. [OTC] Script Installer v0.1

    Adriano SwaTT e 2 outros reagiu a Orochi Elf por uma resposta no tópico

    3 pontos
    [OTCodes] Script Installer v0.1 Salve galera do TibiaKing, hoje venho apresentar pra vocês o Script Installer. Eu criei este software na intenção de ajudar os mais novatos no assunto. Bom a função deste programa é instalar o script automaticamente no servidor. Caso tenha bug, reporte aqui no tópico mesmo por favor. - Mini LOG - A cada novo processo realizado pelo programa, é adicionado ao LOG. - Programa inteligente -> Ele detecta qual é o tipo de script (Action/Talkaction entre outros) - O programa só está funcionando com os seguintes tipos (Action/CreatureScriot/GlobalEvents/Movements/Talkactions) Vídeo demonstrativo da versão 0.1 https://www.youtube.com/watch?v=VJAeQ42Fndo&feature=youtu.be Download do programa está anexado ao tópico. OTC Script Installer.rar
  2. Catch Window v1.3

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

    2 pontos
    [MOD] Catch Window v1.3 Bom.. todos conhecem a nova janela, que quando algum jogador captura um pokemon, que nunca capturou antes, abre na tela informando quantas pokebolas (PokeBalls, GreatBalls, SuperBalls e UltraBalls), o jogador gastou para capturar aquele pokemon, e mostra também quanto de experiencia o jogador ganhou por capturar aquele pokemon. Instalação. Por enquanto o PDA, é o único servidor que está adaptada no tópico, se alguém adaptar para outros servidores, e quiser compartilhar, será muito bem vindo. Obrigado Pokemon Dash Advanced Vá na pasta Lib / Catch System.lua, e procure por: doAddPokemonInCatchList(cid, poke) E abaixo adicione: CW_Count(cid, poke, typeee) CW_Caught(cid, poke) Agora procure por: doIncreaseStatistics(poke, true, false) E abaixo adicione: CW_Count(cid, poke, typeee) Agora, vá na pasta Lib / Crie um arquivo chamado "CatchWindow_lib.lua". E dentro adicione -> Link Direto (PasteBin) <- Atualizado v1.3 ! Agora baixe o arquivo"CatcherWindow.rar", e extrai-a os arquivos dentro da pasta MODS da pasta do OTClient. Editando... No arquivo que voce colocou na LIB, tem uma tabela chamada "CW_Pokes", lá voce adiciona os pokemons e os configura. ["bulbasaur"] = {DB_Balls = 500001, DB_PK = 900001, ID_Portrait = 11989, P_Experience = 5000}, Legenda: [NomeDoPokemon] = {DB_Balls = Numero da storage, que irá ficar salvo as balls usadas. DB_Pk, Numero da storage, que irá ficar salvo se o pokemon foi capturado ou não. ID_Portrait = Item ID do Portrait de cada pokemon P_Experience = A quantidade de experiencia que o jogador irá ganhar ao capturar este pokemon.} Vídeo: https://www.youtube.com/watch?v=9ERSelYANFY&feature=youtu.be Galera, eu estou com uma meta de conseguir 30 rep+ neste tópico, GO! Créditos: Tony Araújo (OrochiElf) 100% catcherWindow.rar
  3. 2 pontos
    Primeiramente o evento foi testado num servidor 8.6, TFS 0.4, sem apresentar nenhum problema. Em data/creaturescripts/scripts crie o arquivo zombieevent.lua : local config = { playerCount = 2001, -- Storage dos players que entram e sai do evento goblet = 5805, -- Troféu que vai pro vencedor do evento rewards = {2195, 2152, 2160}, -- Recompensas. moneyReward = {2160, 10, 1}, -- {moneyId, quantidade, usar}1 pra usar 0 pra não usar} -- Area que o zumbi vai spawnar fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até toPosition = {x = 577, y = 600, z = 7} -- em baixo toPostion } function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and isMonster(attacker) then if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then if getGlobalStorageValue(config.playerCount) >= 2 then doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED) local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)-1) elseif getGlobalStorageValue(config.playerCount) == 1 then if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.") local corpse = doCreateItem(3058, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end end for x = config.fromPosition.x, config.toPosition.x do for y = config.fromPosition.y, config.toPosition.y do for z = config.fromPosition.z, config.toPosition.z do areapos = {x = x, y = y, z = z, stackpos = 253} getMonsters = getThingfromPos(areapos) if isMonster(getMonsters.uid) then doRemoveCreature(getMonsters.uid) end end end end end return false end end return true end Na mesma pasta em login.lua antes do ultimo return true adicione : registerCreatureEvent(cid, "zombieevent") Agora em data/creaturescripts adicione em creturescripts.XML : <!-- ZOMBIE EVENT --> <event type="statschange" name="zombieevent" event="script" value="zombieevent.lua"/> Agora vamos em data/monster crie uma pasta com o nome ZombieEvent e dentro dessa pasta crie o arquivo chamado event zombie.XML : <?xml version="1.0" encoding="UTF-8"?><monster name="Event Zombie" nameDescription="an event zombie" race="undead" experience="280" speed="100" manacost="0"> <health now="500" max="500"/> <look type="311" corpse="9875"/> <targetchange interval="5000" chance="50"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="0"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" min="-35000" max="-35000"/> </attacks> <defenses armor="15" defense="10"/> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="You wont last long!"/> <voice sentence="Mmmmh.. braains!"/> </voices> <loot> <item id="2148" countmax="1" chance="100000"/><!-- gold coin --> </loot> </monster> voltando pra pasta data/monster abra o arquivo monsters.XML e adicione : <!-- ZombieEvent --> <monster name="event zombie" file="ZombieEvent/event zombie.xml"/> tudo ok até aqui ... então vamos pra pasta data/movements/scripts crie zombieevent.lua : local config = { playerCount = 2001, -- Storage do players do evento maxPlayers = 20, -- Maximo de players pra partiparem do evento minLevel = 17 -- Level minimo pra entrar no evento } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getPlayerLevel(cid) < config.minLevel then addEvent(tpBack, 1000, cid, fromPosition) doPlayerSendCancel(cid, "You need to be at least level " .. config.minLevel .. ".") return false end if getGlobalStorageValue(config.playerCount) < config.maxPlayers then setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)+1) if getGlobalStorageValue(config.playerCount) == config.maxPlayers then doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(config.playerCount) .. " players]! The event will soon start.") else doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(config.playerCount) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) end else addEvent(tpBack, 1000, cid, fromPosition) doPlayerSendCancel(cid, "The event is full. There is already " .. config.maxPlayers .. " players participating in the quest.") return false end print(getStorage(config.playerCount) .. " Players in the zombie event.") return true end function tpBack(cid, fromPosition) doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) end voltando pra data/movements abra o arquivo movements.XML e adicione : <!-- ZOMBIE event --> <movevent type="StepIn" actionid="2008" event="script" value="zombieevent.lua"/> agora vamos pra parte mais importante e que devemos mais prestar atenção... em data/globalevents/scripts crie zombieevent.lua : local config = { semana_mes = "semana", days = {1,2,3,4,5,6,7}, -- Dia das semanas que irá acontecer o evento goblet = 5805, -- Troféu que vai pro vencedor do evento rewards = {2195, 2152, 2160}, -- Recompensas. moneyReward = {2160, 10, 1},-- {moneyId, quantidade, usar}1 pra usar 0 pra não usar} playerCount = 2001, -- Storage dos players que entram e sai do evento zombieCount = 2002, -- Storage do zombie do event teleportActionId = 2008, -- Action ID do teleport teleportPosition = {x = 652, y = 1020, z = 7, stackpos = 1}, -- Onde o teleport é criado teleportToPosition = {x = 559, y = 589, z = 7}, -- Pra onde será teleportado teleportId = 1387, -- ID do teleporte timeToStartEvent = 2, -- Minutos que o portal irá ficar aberto até os player entrarem timeBetweenSpawns = 20, -- Segundos dps do evento ser startado começarem a aparecer os zombie zombieName = "event zombie", -- Nome do zombie sumonado playersNeededToStartEvent = 3, -- Players necessários pro evento ser iniciado -- Area que o zumbi vai spawnar fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até toPosition = {x = 577, y = 600, z = 7} -- -- em baixo toPostion } function onTime() local time = os.date("*t") if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition) doItemSetAttribute(tp, "aid", config.teleportActionId) doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.playerCount, 0) setGlobalStorageValue(config.zombieCount, 0) addEvent(startEvent, config.timeToStartEvent * 1000 * 60) end return TRUE end function startEvent() local fromp, top = config.fromPosition, config.toPosition if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then addEvent(spawnZombie, config.timeBetweenSpawns * 1000) doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!") pvgaylord() end end end end else doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false) doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT) end end end end end end function spawnZombie() if getGlobalStorageValue(config.playerCount) >= 2 then pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)} doSummonCreature(config.zombieName, pos) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, config.timeBetweenSpawns * 1000) else local fromp, top = config.fromPosition, config.toPosition for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} cid = getThingfromPos(areapos).uid if isPlayer(cid) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!') for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.") elseif isMonster(cid) then doRemoveCreature(cid) end end end end end end function pvgaylord() local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0 for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do local areapos = {x = x, y = y, z = z, stackpos = 253} local cid = getThingfromPos(areapos).uid if isPlayer(cid) then p = p+1 elseif isMonster(cid) then m = m+1 end end end end if p ~= getGlobalStorageValue(config.playerCount) then setGlobalStorageValue(config.playerCount, p) end if p < 2 then return true end addEvent(pvgaylord,100,nil) end na mesma pasta crie o arquivo fechazombie.lua : local teleportPos = {x = 652, y = 1020, z = 7, stackpos = 1} -- Posição em que se abre o teleport local teleportId = 1387 function onTimer() for i = 1, 255 do teleportPos.stackpos = i if getThingFromPos(teleportPos).itemid == teleportId then doRemoveItem(getThingFromPos(teleportPos).uid, 1) end end return true end agora em data/globalevents abra o arquivo globalevents.XML e adicione : <globalevent name="zombieevent" time="23:41" event="script" value="zombieevent.lua"/> <globalevent name="zombieventt" time="23:43" event="script" value="fechazombie.lua"/> Importante : time="Horário que irá acontecer o evento" e no fechazombie coloque 2 minutos a mais da hora que vc colocou pra iniciar, para assim fechar o teleport na hora em que o evento é startado (configuração padrão do script, se alterar lá terá que alterar aqui tb) Agora só abrir e desfrutar do seu novo sistema... Download de mapas : http://tibiaking.com...apa-modificado/ - tiago.bordin1988 http://tibiaking.com...mbie-event-v10/ - ricardo3 http://tibiaking.com...map-86-inovado/ - OhGod http://www.speedysha...ombieEvent.otbm Créditos... Fausto32 Sociopata Orochi Elf Phowned Smart Maxx
  4. [Original] Azeroth RPG

    Gabrielk e um outro reagiu a Smart Maxx por uma resposta no tópico

    2 pontos
    Azeroth Server Versão: 8.60 Distro: TFS 0.4 Mapa Base: Yourots Edited e Mix Yourots Esse mapa particularmente foi um dos mais divertidos e legais que já gostei de editar... Hoje venho trazer a versão que podemos talvez chamar de v2.0 desse magnfico serve focado em rpg. Não tem como eu citar tudo que foi acrescentado e editado porque foi muitas coisas mesmo é só consigo lembrar das recentes ... Inicialmente o mapa contem 7 cidades que são elas : Azeroth Avalon Zatur Liberty Bay Gloria Sand Trap Tiquanda Estou trabalhando com um amigo em um mapa, que seria o novo continente desse serve com mais 9 cidades... talvez mais em breve eu posto algo relacionado à isso. > Mapa RPG bem detalhado para Ots Low e Mid rate. > Inúmeras invasões automáticas, Low e High lvl (ou iniciadas pelo comando /raid "nome"). > NPCs de Travel/Boat diferentes para cada cidade. > Mais de 70 quests (além das principais) espalhadas pelo mapa. > Quests especiais com NPCs > Arena PvP sem perda de items. > Sistema de Guerras pelo Castelo [entre guilds] > Sistema de Refinamento e Slot (mais detalhes abaixo). > Sistema de Mineração > Scripts e sistemas aprimorados para o servidor > Distro SEM erro algum > Principais Quests: Annihilator Blue Legs Pits of Inferno MMS The Inquisition The Death FireWalker Boots Demon Helmet Draken Hell Conquer ______________________________________________________________________________________________________________________ V2.0 > Muitas correções no mapa > Ajustes nos scripts de Slot > Ajustes nos scripts de Mineração > Ajustes em alguns npcs > Adicionado mais 4 npcs pro futuro novo continente > Adicionado Battlefield Evento funcionado 100% (comando /battlefield "numero de players") > Adicionado Evento Zombie 100% automatico > Pequenas alterações no Castle of Honor > Balanceado sistemas de minério > Mais de 40 Quest adicionadas > Adicionado comando de expulsar player inativo da house > Corrigido muitos bugs encontrados ao decorrer da edição do serve > Adicionada muitas hunts (Hunts do nosso querido @Daniel implementadas) > e muito mais ... Edição e postagem(leia): É Autorizado edições e repostagens do Azeroth Server (aliás, não posso proibir isso) mas peço a vocês que pelo menos respeitem o estilo do mapa. Eu não sei se poderei dar continuidade a ele, mas trata-se de um projeto RPG. Pensa só, Vmspk teve um trabalhão pra editar o server, ele fez tudo com mais amor do que o arroz que sua mãe faz com sazón, e você vai baixar, encher de teleportes e hunts quadradas, colocar armas com atk de 350000, sistemas VIPs sem propósito algum, vai copiar o tópico, retirar meus créditos e postar novamente? Reconsidere, pois não há nada mais desmotivador para um desenvolvedor do que isso, ver seu trabalho cair em desuso, como aconteceu com o Styller YourOts, Vancini e Baiak, que agora é um monstro sem pé nem cabeça (alguns gostam desse tipo de server, tudo bem, mas essa não é a proposta deste servidor). Se teve boas ideias e quer editar o servidor para postar, fique à vontade, mas não nos decepcione. ! Não há teleports diretos para hunts ou quests. Não há items ou monstros editados(além dos trainers). Não há sistema VIP, VIP 2, VIP 3, VIP 345456364. Não há raids com monstros excessivamente fortes nas cidades iniciais. Créditos < Unknow YourOts Edited > < Mix Yourots Team > < Crystal Server Team > < Tryller > < Mock > < TFS Team > < TonyHanks > < Centera World > < Vmspk > <EddyHavoc> <Smart Maxx> <Daniel> <White Wolf> <Absolute> < e muitos outros ... > Otserv : http://www.mediafire.com/download/43t9eh6te2e1v7c/otserv.rar Scan : https://www.virustotal.com/pt/file/7a4ae609b0dda80af75d6ff6aefa122e0f42c067983c353baa55cece17ad0c55/analysis/1416407066/ Db : https://www.mediafire.com/?xwj5piwca7ff2xz
  5. (Resolvido)Outfit por vocação

    Jean Junior e um outro reagiu a buddha por uma resposta no tópico

    2 pontos
    Pera ai cara, não ponha no seu server ainda, tava testando e deu um bug loko aqui. Já posto o funcional. Aqui: Assim ele setaria o outfit mas a cor seria branca, para mudar isso é só ir mudando o lookHead e tals. Para saber o numero é facil, a tabela de cores se conta assim: 0 = branca(a primeira contando na horizontal), 1 = bege(a segunda contando na horizontal), etc. Lembrando que nos testes vi que precisa ser onLogin(cid), mas não se preocupe, não dá para trocar de outfit. Também tem que colocar a outfit do homem e da mulher, senão os homens vão nascer com outfits de mulher ou as mulher com as do homem, eu marquei em negrito onde que é o do homem e o da mulher. O lookAddons é o seguinte: 1 = O primeiro addon, 2 = O segundo addon, 3 = Os dois addons.
  6. 2 pontos
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 3) arr = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onUseWeapon(cid, var) local min, max = 1200, 1500 -- dano minimo, maximo! addEvent(doAreaCombatHealth, 100, cid, COMBAT_HOLYDAMAGE, getThingPos(getCreatureTarget(cid)), area, -min, -max, 17) return doCombat(cid, combat, var) end Era só adicionar um setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 3) Embaixo do setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true)
  7. 1 ponto
    Fala galera do TK, andei pegando um BAIAK base pra dar uma editada, trackeando alguns mapas e otimizando algumas coisas para disponibilizar um baiak "filé" para vocês do TK Sem mimimi, vamos ao que interessa e depois algumas imagens! O que temos neste lindo Baiak? New Templo bem baiak. Dodge System Run Event BP Event Guilds System Castle 24H Battlefield Event Blood Castle Event Firestorm Event Capture the Flags Event Items Donates para vender no site/jogo Items VIP a mostra no termplo 3 Áreas VIPS jogo e Donate Vários Teleports Novas Hunts Look Frags Sistema de Refinamento Criminal System Hit Rank Reset System Full Task Zombie Event [VIP] no nome ao adquirir VIP Distro 04 com Cast System (LUAN) Sistema de teleporte (!FLY) Level Skills System Ao cadastrar o player irá ganhar 2 dias VIPs na quest do templo! War System Várias quests Arena PVP Treiners modificados Roda em SQLITE E MYSQL! E muito mais, basta baixar para conferir! Vamos as imagens: Ao abrir o mapa: Ingame: Local onde o player começa: Templo Baiak Absolute: Teleports Free's Básicos: Área de Eventos e Summon por alavanca: BP Event Room: TPS VIP DONATE: TPS VIP +: TPS VIP ++: Pasta do servidor: Dowload/Scan Download do servidor completo: http://www.4shared.com/rar/e7YfCJ_Sce/Baiak_Absolute.html? Scan: https://www.virustotal.com/pt/url/6c6070c9c24da3b7719a92a1788bd2d8434d81c541b0038f68777621a121dccc/analysis/1407454456/ Desejo a todos um bom proveito e sucesso Créditos: Até a próxima Absolute.
  8. [CreatureEvent] Efeito no Player

    CabralChoi reagiu a Kimoszin por uma resposta no tópico

    1 ponto
    Bom pessoal, criei esse script totalmente inutil e util para vocês, espero que gostem - Oque exatamente ele faz? Nada, ele só verifica se o player tem uma storage e se o player tiver, quando ele logar vai aparecer um efeito em um tempo configuravel, Por Exemplo, o player é VIP, ai o seu system vip tem uma storage, você adiciona essa storage no script e o player vai ficar com um efeito, ou ... Tem aquela super quest fodona em seu servidor, pq nao mostrar para os outros que aquele player conseguiu fazer? *-* - Nossa que legal, como posso ter isso no meu servidor? Simples amigo, basta você ir em \data\creaturescripts\scripts, depois adicionar um registro no login.lua e adicionar uma linha em creaturescripts.xml effect.lua local effect = 30 -- Efeito que vai usar local storage = 9994 -- Storage que o player precisa ter local tempo = 5 -- Tempo em segundos function onLogin(cid) if getPlayerStorageValue(cid, storage) == 1 then SendEffect(cid) end return TRUE end function SendEffect(cid) doSendMagicEffect(getCreaturePosition(cid), effect) addEvent(SendEffect, tempo*1000, cid) return TRUE end Agora adicione isso em login.lua registerCreatureEvent(cid, "Effect") Agora adicione esse code em creaturescripts.xml <event type="login" name="Effect" event="script" value="effect.lua"/> Uma Fotinho para ver, estou usando o efeito 30 Abraços...
  9. Magnus Challenger

    bagulhoescroto reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês! Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda! Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores. Quem quiser pode ver um vídeo comentado de como o sistema funciona: Dito isso vou ensinar vocês como instalar isso no server: Pra começar vá em data\creaturescripts\scripts e procure login.lua, agora vá até o final do arquivo e antes do último return true coloque essas linhas abaixo ainda em creaturescripts procure creaturescripts.xml e adicione essa linha junto com as outras que já estão lá (seguindo o padrão) <!-- TASK SYSTEM --> <event type="kill" name="tasksystem" script="tasksystem.lua"/> Agora crie um arquivo em creaturescripts\scripts com o nome de tasksystem.lua e adicione o seguinte à ele: Terminada a parte da contagem de kill vamos ao NPC em si. Crie um arquivo chamado Magnus.xml em data\npc e coloque isso dentro dele: Agora em data\npc\scripts crie um arquivo chamado zezeniaa.lua e adicione esse conteúdo dentro do arquivo: ~~~~~~~~~~~~~~~~ FEITO ISSO ESTÁ TERMINADO ~~~~~~~~~~~~~~~~~~ Agora aprendendo a configurar: No tasksystem vc pode editar isso daqui: Eu fiz um sistema onde se vc estiver em party com alguém e a pessoa matar os bixos conta como se você tivesse matado; Assim incentiva o pessoal a ir numa cave de Dragon e ao invés de matar quem está lá pra ficar sozinho na cave, eles vão chamar party pra fazerem a task juntos.. assim fazer amigos fica mais fácil e com maiores laços é maior a chance do povo não abandonar o seu server. Apenas digite "true" ou "false" pra ativar/desativar esse sistema e em baixo temos a distancia máxima pro monstro estar do cara que está fazendo a task pra contar o kill. Se a distancia entre o monstro e a pessoa for maior que 7 não vai contar pra ele a kill. No zezeniaa.lua as coisas que dão pra configurar são maiores mas são igualmente simples: Toda vez que vc pedir uma task short (curta) vc vai ter de 100 a 400 monstros pra matar, ele gera um número de 0 a 6 e multiplica por 5 e soma com os 100 iniciais.. o mesmo vale pra todos os outros valores. levelcollect é o level mínimo pra fazer tasks do tipo collect. time é o tempo em segundos que você vai ficar sem poder falar com o npc caso desista de alguma task, o padrão é 8 * 60 * 60 (8 horas) bonus é por quanto vai multiplicar caso vc permita que o npc escolha aleatoriamente entre todas as opções.. o padrão é 20% de bonus (1.2) multiplicador é uma coisa que eu adicionei pra ficar mais fácil mexer na fórmula sem cometer cagadas, se vc tá ganhando 10% de exp e quer ganhar 80% é só colocar 8 no multiplicador. Isso daqui é o banco de dados principal do sistema de kill, toda vez que vc escolher uma task do tipo fácil, médio, dificil ele vai acessar essas tabelas contendo o nome das criaturas.. vc pode facilmente adicionar novos nomes, o npc já está programado pra lidar com isso, apenas siga o padrão e mantenha sempre o último sem vírgula! Ex: adicionando Morgaroth na tabela de hard local hard = { [1] = "Giant Spider", [2] = "Dragon Lord", [3] = "Grim Reaper", [4] = "Demon", [5] = "Crystal Spider", [6] = "Demon Skeleton", [7] = "Juggernaut", [8] = "Destroyer", [9] = "Hand of Cursed Fate", [10] = "Morgaroth" } atente-se também pra não repetir o número no index.. se o anterior era [9] use [10]. O restante das tabelas são separadas para o banco de dados das tasks de collect: segue a mesma lógica da de kill só que aqui você tem o id dos itens que serão usados... aquela count não tem nada a ver com o item pois ele vai gerar tanto o item aleatoriamente quanto à count; Ex: [1] = {id = 5880, count = 20}, -- iron ore isso não significa que se cair iron ore (id 5880) irá cair sempre 20.. até porque eu poderia escolher uma task long e easy e pegar a task de trazer até 50 iron ores, apenas tente manter os padrões que são os intervalos definidos. No easy ele varia de 10 a 20, no medium ele varia de 20 a 35 e no hard de 40 a 50. Espero que vocês tenham curtido, é um sistema grande mas bem simples de se mexer... se tiverem quaisquer problemas podem comentar aqui. Deu trabalho fazer isso então se você gostou deixe o seu comentário aí e o seu "Gostei" que vai me incentivar a trazer mais coisas desse tipo pra cá. Abraços do lobo. PS: Pra sumonar o npc digite com o GOD: /n Magnus ou coloque ele pelo map editor.
  10. [Proibir Palavras] Anti Divulgação

    Flathoste reagiu a Absolute por uma resposta no tópico

    1 ponto
    Fala galerinha do TK, hoje trago a vocês um sistema de bloquear algumas palavras no servidor! Sabe aqueles players chatos que entram em seu otserver divulgando o servidor dele dias e dias, leva ban, volta e tudo mais? Poisé, chega disso né. Primeiro vai o script depois explicação/config: Em data/talkactions/scripts crie um arquivo com o nome de tibiakingproibiu.lua function getFixedText(cid, text, replace) local wrongWords = {"#####", "ots-list.pl", "google.br", ".ddns.net", "hopto.org", "no-ip.org", "servegame.com"} local lowerText = string.lower(text) local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") for w = 1, #wrongWords do wordLen = string.len(wrongWords[w]) for p = 1, string.len(text) do if(string.sub(lowerText, p, p+wordLen-1) == wrongWords[w]) then text = string.sub(text, 1, p-1) .. string.rep(replace, wordLen) .. string.sub(text, p+wordLen) end end end if(string.lower(text) == lowerText) then for c = 1, #wrongWords do if(string.find(noSpaceText, string.gsub(string.gsub(wrongWords[c], "%p", ""),"-", "")) ~= nil) then return "I want to post forbidden links.." end end end return text end --[[Channels which are not added to block: 1 - Party Channel 2 - Channel for Staff members 3 - Rule Violation Channel 4 - Channel for Counselors/Tutors 65536 - Private Chat Channel <-- Private Chat cannot be blocked with this script ]]-- local blocked_channels = {5,8,9} --Game-Chat, Real Chat, Help Channel local trade_channels = {6,7} --All trade channels <- These are also blocked local replace = "°" --Symbols which are shown instead of forbidden links -> ° local delay = {16246,10} -- {empty_storage, lenght of muted} function onSay(cid, words, param, channel) local fixedWords = getFixedText(cid, words, replace) if words ~= fixedWords and getPlayerAccess(cid) == 0 then if getPlayerStorageValue(cid,delay[1]) > os.time() then return doPlayerSendCancel(cid,"Voce foi mutado por ".. getPlayerStorageValue(cid,delay[1])-os.time() .." segundos, aqui e proibido divulgar.") end setPlayerStorageValue(cid,delay[1],os.time()+delay[2]) if channel == CHANNEL_DEFAULT then doCreatureSay(cid, fixedWords, TALKTYPE_SAY) doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") return true elseif isInArray(trade_channels, channel) then doPlayerPopupFYI(cid, "Link: "..words.." e proibido neste canal.") return true elseif isInArray(blocked_channels, channel) then doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") doPlayerSendChannelMessage(cid, getCreatureName(cid), fixedWords, TALKTYPE_CHANNEL_Y, channel) return true end end return false end Logo em seguida em em talkactions.xml adicione a seguinte linha: <talkaction words="illegalWords" event="script" value="tibiakingproibiu.lua"/> Fim da instalação. Explicação/Config: local wrongWords = {"#####", "ots-list.pl", "google.br", ".ddns.net", "hopto.org", "no-ip.org", "servegame.com"} = Nas aspas ".." você colocará as palavras que deseja proibir, palavrões, divulgações e companhia... local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") = Aqui aconselho não mexer. É para evitar divulgações acompanhadas das Words (palavras) ou seja lá está proibido .servegame.com, então quando o player falar baiakfulunao.servegame.com irá proibir. local delay = {16246,10} -- {empty_storage, lenght of muted} = no 16246 é a storage que irá salvar, não mexa. em 10 é o tempo em segundos que o player será mutado ao falar as palavras proibidas. doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") = Este doPlayerPopup é que vai aparecer naquelas janelas que aparece para clicar em ok (caixa de mensagens) caso queira alterar para mensagem de console substitua: doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") por doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." e proibido, mal educado!.") É isso ae lindões do TK, caso haja alguma dúvida peço que perguntem! Créditos: Absolute OTLAND Até o próximo! Absolute
  11. Naruto White

    kukas9 reagiu a Beeny por uma resposta no tópico

    1 ponto
    Fala pessoal :3 Naruto White é um servidor feito por um amigo meu, totalmente feito do 0 ! ​ •Informações Distro limpa (o único erro é um test no mapa, não vai afetar em nada, e é fácil resolver.) 28 Vocações : Naruto, Sasuke, Sakura, Lee, Neji, Tenten, Kiba, Shino, Kisame, Hidan, Kakuzu, Itachi, Deidara, Kakashi, Killer Bee, Yamato, Madara, Minato, Hashirama, Tobirama, Obito, Kankuro, Gaara, Kabuto, Jiraya, Tsunade, Anbu, Hinata. Todas as vocações balanceadas. Spells de acordo com o ANIME! Sprites do "WoNO" Jutsus / Transforms •Imagens ​ •Download Client Servidor -- Não faço a minima ideia do porque tem todos esses vírus, já aviso que não tem nada. Quem quiser baixar, baixa. Sources Site Dat + Spr Client para usar no MAP •Scan Client Servidor Sources Site Dat + Spr Client para usar no MAP ​ •Créditos Ken Kaneki (Helton) Beeny TFS Team Maenilse
  12. New Library v. 1.2

    Underewar reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, hoje vim trazer pra vocês uma nova biblioteca de funções que eu venho desenvolvendo, pretendo ir atualizando esse tópico constantemente sempre adicionando funções novas e explicando a utilização delas. Algumas funções que eu coloquei aqui estão presentes na OTAL também, porém algumas eu fiz pequenas correções de forma que essa lib poderia facilmente substituir a OTAL sem grandes problemas (pelo menos se você utilizava apenas as funções básicas da otal) Todas as funções que não tem -- nome do autor do lado dela foram feitas por mim, xWhiteWolf ou Night Wolf (NW). O restante delas são créditos dos devidos autores, apenas coloquei pois considero funções vitais no server de cada um. Crie um arquivo em data/lib chamado 075 - White Wolf Functions.lua e coloque o seguinte código dentro: Agora eu vou explicar oque cada função faz porque de nada adianta lançar uma lib e não explicar oque ela faz não é mesmo? hahaha Obs inicial: quando uma função tiver em seus parametros um [] significa que oque está dentro do colchetes não é um parâmetro obrigatório. Como usar: doShowTimeByPos(cid, getCreaturePosition(cid), 20, 20) Irá fazer uma contagem regressiva na posição que o player se encontra começando de 20 e mandando a mensagem na mesma cor da fala dos monstros. Essa função é bem útil em actions/spells para fazer contagem de tempo em runas como a magic wall e ver quanto tempo falta pra magic wall sumir) Obs: Espero que ajude bastante pessoas a entender sobre funções, eu utilizei cid como o principal uid das funções nos exemplos mas você pode muito bem utilizar outros uids, fica a critério seu. Qualquer dúvida comentem abaixo que eu vou tentar ajudar da melhor maneira. Ahhh, isso daí foi testado em 8.54 mas deve funcionar em quase todas as versões que tenham as funções básicas do TFS. EDIT: Pessoal, agora é sério, essa lib tem fácil umas 600 linhas, das quais umas 500 eu devo ter codado sozinho (na mão, linha por linha). Eu tive todo o trabalho de testar cada uma delas e oque eu peço é o mínimo de gratidão e respeito. Se eu te ajudei clique em Gostei, se você tiver alguma dúvida eu to me colocando a disposição de responder qualquer coisa relacionada ao tópico, mesmo que você não saiba nem oque é uma lib apenas venha aqui e escreva sua dúvida. EDIT 2: Duas novas funções adicionas, espero que gostem! EDIT 3: Três novas funções adicionadas juntamente com suas respectivas explicações.
  13. Pokémon [Titanium]

    xDark199 reagiu a ClaudioMarcio por uma resposta no tópico

    1 ponto
    Fala ai galera tudo bem com vocês? então venho aqui mais uma vez trazer um servidor para download , agora o do Pokémon Titanium , lembrando que não fiz nada nesse servidor estou apenas postando para download Informações Básicas do Servidor - Servidor Com Sistema de level nos Pokémons - Servidor com Pokémons da 1° até a 6° Geração ( Incompleta ) ( 1° e 2° gera com suas respectivas formas Shinys) - Novas Pokebolas , umas 5 por ai - Mapa original do servidor - Sistema de Bike - Sistema de ovos Pokémon - Sistema de clan - Pokémons Selvagens tem o nome "Wild" na frente - Golden Arena - Sistema de Duelo entre outros Sistemas ..... Algumas Print sobre o Servidor : Spoiler Link para download do Servidor: Servidor https://mega.co.nz/#!KYJTFDrT!THO6iGH4Leg-xnB0Qt1XWSQzGZzBbxvl6QDrtPNGvYE Client(Mega)http://www.4shared.com/rar/JCJcuV5Uba/Zombi_TRs_PGalaxy_Client.html Créditos : Aline PGalaxy Team Gabrieltxu Slicer Caso Gostou do servidor deixe seu curtir ai para ajudar :3 , Irei atualizar mais tarde o topico deixar ele com uma aparencia mais agradavel , obrigado a todos
  14. [Eject System] Expulsar Player Inativo da House

    Lurk reagiu a Absolute por uma resposta no tópico

    1 ponto
    Salve galerinha do TK. Hoje vim trazer um script muito útil e buscado hoje em dia nos otservers, é o sistema de !eject. Como funciona ? Caso o player fica X dias sem logar (configurável) qualquer outro jogador pode chegar na porta da house dizendo o comando !eject, então a house ficará sem dono e em seugida o player poderá compra-la normalmente, dizendo !buyhouse. É um sript simples e que poderá dar lugar e novas houses a jogadores novos, expulsando os jogadores que não logam mais no seu servidor. Nota: o script é vendido em uma "empresa" de open tibia onde estou colocando os créditos , disponibilizando aqui minha adaptação e o scrpit para vocês, achou errado? não gostou? ENTÃO COMPRA LÁ =p Vamos ao que interessa; Abra sua pasta talkactions/scripts e dentro dela crie um arquivo .lua com o nome de: expulse_house.lua e dentro coloque: function onSay(cid, words, param) local position = getPlayerPosition(cid) if getPlayerLookDir(cid) == 0 then positions = {x=position.x, y=position.y-1, z=position.z} elseif getPlayerLookDir(cid) == 1 then positions = {x=position.x+1, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then positions = {x=position.x, y=position.y+1, z=position.z} elseif getPlayerLookDir(cid) == 3 then positions = {x=position.x-1, y=position.y, z=position.z} end if getHouseFromPos(positions) == false then doPlayerSendTextMessage(cid, 27, "Voce precisa estar na frente a porta da casa para usar o comando.") return true end local days = 5*24*60*60 local own = getHouseOwner(getHouseFromPos(positions)) local qry = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..own) if(qry:getID() ~= -1) then last = tonumber(qry:getDataInt("lastlogin")) if last < os.time() - days then setHouseOwner(getHouseFromPos(positions), NO_OWNER_PHRASE,true) doPlayerSendTextMessage(cid, 27, "A Casa agora esta sem dono, você ou outro jogador pode compra-la") end if last > os.time() - days then doPlayerSendTextMessage(cid, 27, "O proprierário desta casa ainda está ativo no servidor, tente outra casa.") end end return true end Pós ter feito isto, abra o seu arquivo talkactions.xml e coloque debaixo de uma linha qualquer a seguinte linha: <talkaction words="!eject" event="script" value="expulse_house.lua"/> Pronto. basta o player chegar na porta da casa e dizer !eject, caso o jogador esteja a 5 dias sem logar, os items do antigo dono irão para o DEPOT e a casa ficará sem dono. @Configuração do script: local days = 5*24*60*60 Onde está o número 5 é o tanto de dias que o player tem que ficar sem logar para outro jogador executar o comando. Para alterar para 3 dias, ficaria como exemplo: local days = 3*24*60*60 E assim sucessivamente. Qualquer dúvida não deixe de me comunicar, estarei disposto a ajuda-lo. Créditos: Keilost
  15. 1 ponto
    Fala linduxos do TK, hoje vim trazer para vocês um sistema que venho modificando a algum tempo. O Sistema de pagseguro automático, ao longo do script ensinarei perfeitamente como instalar/configurar. Lembrando que uso esse sistema em um servidor meu e está 100% entregando os pontos no mesmo instante, adicionei a opção de entregar pontos dobrados, para promoção double points acima de X valor. Vá em sua pasta www ou htocs/config abra o arquivo config.php e procure por: $config['site']['layout'] = ... embaixo disto adicione o seguinte: // Pagseguro Automático by Absolute on Luminera // Seu email cadastrado no PagSeguro $config['pagseguro']['email'] = 'SEU E-MAIL DO PAGSEGURO'; // Nome do produto $config['pagseguro']['produtoNome'] = 'Premium Points'; // Valor de cada ponto // Exemplo de valores: // 100 = R$ 1,00 // 250 = R$ 2,50 $config['pagseguro']['produtoValor'] = '100'; Simples explicação sobre este passo: em SEU E-MAIL DO PAGSEGURO basta colocar o seu e-mail do pagseguro, ficando como exemplo: $config['pagseguro']['email'] = '[email protected]'; (não mexa em mais nada) Próximo passo: Agora vá na sua pasta www ou htocs e crie um arquivo chamado pagseguro_retorno.php (Extensão PHP formato de página PHP), dentro do pagseguro_retorno.php adicione: <?PHP $host = "localhost"; /* HOST */ $user = "root"; /* USER */ $passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */ $db = "NOMEDADATABASE"; /* DB */ ############################################################## # CONFIGURAÇÕES ############################################################## $retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguro if (empty($_POST['Referencia'])) { header("Location http://pagseguro.com.br"); } list($accname, $world) = explode('-', $_POST['Referencia']); if ($world=='sv') { $retorno_host = "$host"; // Local da base de dados MySql $retorno_database = "$db"; // Nome da base de dados MySql $retorno_usuario = "$user"; // Usuario com acesso a base de dados MySql $retorno_senha = "$passwd"; // Senha de acesso a base de dados MySql } ############################################################### # ATENÇÃO TIBIAKING NÃO ALTERE DESTA LINHA PARA BAIXO OK? Absolute Agradeçe hihi # $lnk = mysql_connect("$host", "$user", "$passwd") or die ('Nao foi possível conectar ao MySql: ' . mysql_error()); mysql_select_db("$db", $lnk) or die ('Nao foi possível ao banco de dados selecionado no MySql: ' . mysql_error()); // Validando dados no PagSeguro $PagSeguro = 'Comando=validar'; $PagSeguro .= '&Token=' . $retorno_token; $Cabecalho = "Retorno PagSeguro"; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $PagSeguro .= "&$key=$value"; } if (function_exists('curl_exec')) { $curl = true; } elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) ) { $fsocket = true; } elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30)) { $fsocket = true; } if ($curl == true) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx'); $resp = curl_exec($ch); curl_close($ch); $confirma = (strcmp ($resp, "VERIFICADO") == 0); } elseif ($fsocket == true) { $Cabecalho = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n"; $Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n"; $Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n"; if ($fp || $errno>0) { fputs ($fp, $Cabecalho . $PagSeguro); $confirma = false; $resp = ''; while (!feof($fp)) { $res = @fgets ($fp, 1024); $resp .= $res; if (strcmp ($res, "VERIFICADO") == 0) { $confirma=true; break; } } fclose ($fp); } else { echo "$errstr ($errno)<br />\n"; } } if ($confirma) { ## Recebendo Dados ## $TransacaoID = $_POST['TransacaoID']; $VendedorEmail = $_POST['VendedorEmail']; $Referencia = $_POST['Referencia']; $TipoFrete = $_POST['TipoFrete']; $ValorFrete = $_POST['ValorFrete']; $Extras = $_POST['Extras']; $Anotacao = $_POST['Anotacao']; $TipoPagamento = $_POST['TipoPagamento']; $StatusTransacao = $_POST['StatusTransacao']; $CliNome = $_POST['CliNome']; $CliEmail = $_POST['CliEmail']; $CliEndereco = $_POST['CliEndereco']; $CliNumero = $_POST['CliNumero']; $CliComplemento = $_POST['CliComplemento']; $CliBairro = $_POST['CliBairro']; $CliCidade = $_POST['CliCidade']; $CliEstado = $_POST['CliEstado']; $CliCEP = $_POST['CliCEP']; $CliTelefone = $_POST['CliTelefone']; $NumItens = $_POST['ProdValor_1']; $ProdQuantidade_x = $POST['ProdQuantidade_1']; # GRAVA OS DADOS NO BANCO DE DADOS # mysql_query("INSERT into pagsegurotransacoes SET TransacaoID='$TransacaoID', VendedorEmail='$VendedorEmail', Referencia='$Referencia', TipoFrete='$TipoFrete', ValorFrete='$ValorFrete', Extras='$Extras', Anotacao='$accname', TipoPagamento='$TipoPagamento', StatusTransacao='$StatusTransacao', CliNome='$CliNome', CliEmail='$CliEmail', CliEndereco='$CliEndereco', CliNumero='$CliNumero', CliComplemento='$CliComplemento', CliBairro='$CliBairro', CliCidade='$CliCidade', CliEstado='$CliEstado', CliCEP='$CliCEP', CliTelefone='$CliTelefone', NumItens='$NumItens', Data=now(), ProdQuantidade_x='$ProdQuantidade_x';"); if ($NumItens >= 5) { $pontosadd = $NumItens * 2; } else { $pontosadd = $NumItens; } if ($StatusTransacao == "Aprovado") { mysql_query("UPDATE accounts SET premium_points = premium_points + '$pontosadd' WHERE name = '".htmlspecialchars($accname)."'"); mysql_query("UPDATE pagsegurotransacoes SET StatusTransacao = 'Entregue' WHERE CONVERT( `pagsegurotransacoes`.`TransacaoID` USING utf8 ) = '$TransacaoID' AND CONVERT( `PagSeguroTransacoes`.`StatusTransacao` USING utf8 ) = 'Aprovado' LIMIT 1 ;"); mysql_query('OPTIMIZE TABLE `pagsegurotransacoes`'); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Donate Server</title> <style type="text/css"> body { font-family: Tahoma, Geneva, sans-serif; font-size: 16px; width: 900px; margin: 0px auto; margin-top: 30px; } b { font-size: 18px; font-weight: bold; } </style> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td width="11%" align="center" valign="middle"><img src="images/true.png" height="auto" width="64" /></td> <td width="89%"><p><b>S</b>ua compra está sendo processada por nossos sistemas de apuração, dentro de no máximo <u>1 hora seus pontos serão creditados</u>, caso o pagamento não for efetuado, ficará em aberto 1 ou mais pagamentos pendentes em sua conta. Caso você tenha mais de 3 pagamentos pendentes por falta de pagamento, sua conta será bloqueada temporariamente para efetuar pagamentos.</p></td> </tr> </table> <p><b>ID de Transação:</b> <?php echo $_POST['TransacaoID']; ?></p> </body> </html> Explicação de configuração deste passo: Coloque a senha que você usa para entrar no phpmyadmin aqui: $passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */ Exemplo de como ficaria: $passwd = "absolute123"; /* PASSWORD */ Coloque aqui o nome que está seu banco de dados (o mesmo que vai no config.lua, onde salva os characters, contas e cia): $db = "NOMEDADATABASE"; /* DB */ ; Exemplo de como ficaria: $db = "otserver"; /* DB */ IMPORTANTE, TOKEN Pagseguro! Você irá entrar neste link, aparecerá uma página pedindo para colocar a url de retorno, no entanto você colocará o seu site terminado em /pagseguro_retorno.php, exemplo de link para colocar: http://otglobal.com/pagseguro_retorno.php (LEMBRANDO QUE É APENAS UM EXEMPLO, SERÁ SEUSITE.COM/pagseguro_retorno.php, como na imagem a seguir: Pós verificar a seleção do "Ativar" e o link correto clique em Salvar. Agora descendo um pouco esta página onde terá a opção a cima terá uma opção como a imagem a seguir: Clique em GERAR, você receberá o seu código token e coloque no script que estará na sua pasta www ou htocs, mude na linha: $retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguro EM SEUTOKENPAGSEGURO coloque o TOKEN que você acabou de pegar, será vários números e letras, exemplo de como ficaria: $retorno_token = 'AE89464AE8145487484PAEA978E91'; // Token gerado pelo PagSeguro DOUBLE POINTS EXPLICAÇÃO: Neste mesmo script há algumas linhas com a seuginte função: if ($NumItens >= 5) { $pontosadd = $NumItens * 2; Isto quer dizer, > 5 (A cima de 5 pontos, receba: NumItens * 2, receba em 2x PONTOS EM DOBRO!) Para alterar o valor a cima que a pessoa receberá em dobro: NumItens >= 5) 5 pontos ou mais a pessoa receberá em dobro, caso seja para qualquer valor, troque o 5 pelo 1. Caso não deseje DOUBLE POINTS e sim 50% do valor em pontos, exemplo: 10R$ = 15 Pontos, altere para: $pontosadd = $NumItens * 1.5; Caso não deseje promoção e queira que seja 1 Real = 1 Ponto: $pontosadd = $NumItens * 1; Próximo passo: Calma gente, está quase acabando eu prometo, então abra o seu PHPMYADMIN, localhost/phpmyadmin ou seusite.com/phpmyadmin, exemplo: www.absolutewar.com/phpmyadmin ; absoluteot.servegame.com/phpmyadmin, clique na opção SQL do phpmyadmin (como mostrarei na imagem e de executar. Código a inserir no "espaço": CREATE TABLE `pagsegurotransacoes` ( `TransacaoID` varchar(36) NOT NULL, `VendedorEmail` varchar(200) NOT NULL, `Referencia` varchar(200) default NULL, `TipoFrete` char(2) default NULL, `ValorFrete` decimal(10,2) default NULL, `Extras` decimal(10,2) default NULL, `Anotacao` text, `TipoPagamento` varchar(50) NOT NULL, `StatusTransacao` varchar(50) NOT NULL, `CliNome` varchar(200) NOT NULL, `CliEmail` varchar(200) NOT NULL, `CliEndereco` varchar(200) NOT NULL, `CliNumero` varchar(10) default NULL, `CliComplemento` varchar(100) default NULL, `CliBairro` varchar(100) NOT NULL, `CliCidade` varchar(100) NOT NULL, `CliEstado` char(2) NOT NULL, `CliCEP` varchar(9) NOT NULL, `CliTelefone` varchar(14) default NULL, `NumItens` int(11) NOT NULL, `Data` datetime NOT NULL, `status` tinyint(1) unsigned NOT NULL default '0', UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`), KEY `Referencia` (`Referencia`), KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Pós executar irá aparecer uma mensagem que o código foi aceito e uma tabela nova foi criada, como na imagem a seguir: Agora por fim o ÚLTIMO PASSO Novamente na pasta www ou htdocs substitua o seu arquivo donate.php por este: <?php if(!$logged) if($action == "logout") $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Logout Successful</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have logged out of your '.$config['server']['serverName'].' account. In order to view your account you need to <a href="?subtopic=accountmanagement" >log in</a> again.</td></tr> </table> </div> </table></div></td></tr>'; else $main_content .= 'Please enter your account name and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/><form action="?subtopic=accountmanagement" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Account Name:</span></td><td style="width:100%;" ><input type="password" name="account_login" SIZE="10" maxlength="10" ></td></tr><tr><td class="LabelV" ><span >Password:</span></td><td><input type="password" name="password_login" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table width="100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div &#111;nmouseover="MouseOverBigButton(this);" &#111;nmouseout="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=lostaccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div &#111;nmouseover="MouseOverBigButton(this);" &#111;nmouseout="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Account lost?" alt="Account lost?" src="'.$layout_name.'/images/buttons/_sbutton_accountlost.gif" ></div></div></td></tr></form></table></td></tr></table>'; else { $main_content .= '<br><br><b>Valores:</b><br> 1 Point = R$ 1,00<br> 10 Points = R$ 10,00<br> 20 Points = R$ 20,00<br> E assim por diante...<br><br> '; $main_content .= ' <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="'. $config['pagseguro']['email']. '"> <input type="hidden" name="tipo" value="CP"> <input type="hidden" name="moeda" value="BRL"> <input type="hidden" name="item_id_1" value="1"> <input type="hidden" name="item_descr_1" value="Pontos na account de nome: '.$account_logged->getCustomField("name").'"> <input type="hidden" name="item_valor_1" value="'. $config['pagseguro']['produtoValor'] .'"> <input type="hidden" name="item_frete_1" value="0"> <input type="hidden" name="item_peso_1" value="0"> <input type="hidden" name="ref_transacao" value="'.$account_logged->getCustomField("name").'"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr bgcolor="#505050" class="white"> <th colspan="2"><strong>Escolha a quantidade de pontos que deseja comprar</strong></th> </tr> <tr> <td width="10%">Sua conta</td> <td><strong>'.$account_logged->getCustomField("name").'</strong></td> </tr> <tr> <td width="10%">Pontos</td> <td> <input name="item_quant_1" type="text" value="10" size="5" maxlength="5"> </td> </tr> <tr> <td colspan="2"> <input type="image" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/carrinhoproprio/btnFinalizar.jpg" name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!" /> </td> </tr> </tbody></table></form> <b><span style="color:#ff0000;">OBS&sup1;:</span></b> Os pontos são entregues <b>automáticamente</b> logo após a <u>aprovação</u> do seu pagamento pelo PagSeguro, ou seja, pagou e foi aprovado pontos depositados. Você pdoerá acessar o shop offer e desfrutar dos melhores items do servidor! <?php } ?>'; } ?> Pronto galera tão fácil né? agora vocês poderão pegar seu guarda sol, sua água de coco e sentar na sua cadeira de praia enquanto o script entregará os pontos automáticamente em menos de 1 minuto. Espero ter ajudado, quaisquer dúvidas podem solicitar no tópico ou até mesmo me mandar uma mensagem privado que estarei disposto a ajuda-los. Créditos: Absolute (EU) Matheus Sesso pela página donate.php Nos vemos na próxima! Enjoy.
  16. 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
  17. Object Builder

    LUCASMDC reagiu a EdMignari por uma resposta no tópico

    1 ponto
    Object Builder é o programa usado para editar itens, outfits, efeitos e mísseis no cliente. Ele edita e compila os arquivos dat e spr. (Object Builder) Versões suportadas:7.10 - 10.41 Download: Adobe AIR Object Builder 0.3.4 Scan ___________________________ Sources GitHub
  18. Pokemon Dash By BOLZ

    seiyaxz reagiu a SlowK por uma resposta no tópico

    1 ponto
    Fala galera do TIBIAKING Achei esse servidor por ali e achei bom, vi que não tinha aqui no forum e resolvi posta-lo para vocês deem uma Olhada... Pokemon Dash By BOLZ... • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • Spoiler •Senha do god: god/god. •Mapa com hunts kanto. •Server Sem System de level !. •Clan System (PDA Slicer). •Alguns bugs corrigidos. •Pokemons da 1° até a 2° geração. •novas sprites do PxG. •Taunt System, para todos os clan rank 5, e algumas outfits. •Moto system, e boat system. •novas paredes, pisos, e itens PxG. •Npc De itens de task de clãns. •Adicionado Npc Rey,Ricky, Carlos (parte da moto System). •Shinys Espalhado pelo mapa. •novos outfits, que nao tem a ver com Pokemon, mas há um bom divertimento com elas. •Auto-loot system adicionado. •Duel System. •Golden arena. •Moves system (m1 a m12). •Maximo 6 pokemonsna bag. •Order 100%. • Edições / Ajustes • Spoiler •Charizard Valley reformulada. •Saffron, Celadon, Fuchsia, Pewter, Cinnabar, Vermilion, Cerulean, Lavender, Viridian, Reformuladas. •Feito Water, Leaf valley. em um serto canto do mapa voçe encontra elas. •Criada quests nos valley, OBS: elas estão prontas, com alavanca e tudo, mas no final da quest, onde pega a recompensa, nao esta adicionada, eu nao consegui adicionar. é so issoque falta •Criada, area de caça de Hitmonlee, Hitmontop e Hitmonchan em Fuchsia. •Adicionado Ride para a nova Girafarig. •Adicionado area de evento de bags. •Nursey Chansey, sprite reformulada. • Erros Do Servidor • Spoiler • Nenhum erro por inquanto. • PrintScreen • Spoiler • Download's • Servidor Pokemon Dash (editado por Bolz) client incluido na pasta do servidor. 4Shared: http://www.4shared.com/rar/WnEElQIT/PDA_Edited_by_Bolz.html MediaFire: http://www.mediafire.com/?cvm4f5bfksxjbe2 • Scan • https://www.virustotal.com/pt/file/e37c5683162d0264ee2115810c5930f196f516c240d48ce6aebd5102854baaec/analysis/1367376049/ @atualizado 05/05/2013 • Menu: ├ Ediçoes; ├ Prints; ├ Download; • Edições / Ajustes • Spoiler •Area de duel do pvp reformulada •arrumado as quests: water, fire, e leaf valley •Adicionado: pewter, pokeball quest. •Adicionado cave de Crystal onix, do lado do rock tunnel. •arrumado os skills do: Suicune, Celebi, Moltres. (pokemons de quest, OBS: nunca crie eles em circunstancia nenhuma, deixe eles na quest. só isso.). •Adicionado: Wobbuffet, aerodactyl, girafarig, no mapa. •Algumas areas mal feitas, reformulada. •Ginasios reformulados: Cinnabar, vermilion, saffron, cerulean, viridian, Pewter. •Varias house com portar bugadas arrumadas. •Citys reformuladas: vermilion, saffron, cerulean, viridian, Celadon (OBS: mudei as paredes e portas e janelas). •Adicionado npc: catcher (conseguindo 100 de cath, voçe obtem o addon de catcher). • PrintScreen • Spoiler • Download's • Server PDA Slicer editor Por Bolz v2 (client ja na pasta) MediaFire: http://www.mediafire.com/?thh05yhnc7srasn • Scan • https://www.virustotal.com/pt/file/3fd8e0702e23b1f83ce9421f2f9a3808071222d084cf77a385d03e0f3f5099fc/analysis/ Atualizado 30/05/2013 desculpe a demora, eu estava sem tempo, o servidor ja estava arrumado só faltava postar, e só tive hoje para postar. é uma pequena atualização, por isso é 2.5, e nao 3.0, é algumas correções do serv. na proxima atualização tentarei colocar pokemons da 3° geração ou, o icon system, oque tiver ao meu alcanse eu tentarei colocar. abraços. ├ Ediçoes; ├ Prints; ├ Download; └ Creditos. • Edições / Ajustes • Spoiler •Box 1,2,3,4, adicionadas. •Alguns pokemons fracos reformulados. •Sprites que nao tinham a ver com Pokemon, retiradas. •Retirado o Poison da Leaf valley, pois o deixava muito feio. •Retirado itens de tibia da torre eletrica. •Arumado mais area mal-feitas. •Sprites, e corpses de pokemons arrumadas: Electabuzz, Arcanine, Charizard, Venusaur, Blastoise, Electrode, Voltorb, Shiny Charizard, Shiny Venusaur, Shiny Blastoise, Shiny Electrode, Shiny Voltorb, Shiny Arcanine, Shiny •Electabuzz. •Criada uma ilha de wobbuffet. •Shiny Box, adicionada. •Criado npc Vash, que leva até a ilha de wobbuffet. •E retirei a barra de cowldoown do client normal de tibia, se quiser coloca-lo de volta, vão em: data/lib/configuration.lua e procure essa linha: useKpdoDlls = false (falso) , deixe true (verdadeiro). •Dei uma arrumada na golden arena, ela nao fica mais no alto perto de lavender, ele fica na ilha golden, e tambem tentei dar uma melhorada no visual dela. kkkk. • PrintScreen • Spoiler • Download's • como pedido de alguns, eu deixei o client separado do servidor. Server PDA Edited By Bolz 2.5: http://www.mediafire.com/?ry55tjk2l4l5cow Client: http://www.mediafire.com/?nwdf2nfk9txk35f • Scan • galera eu nao consegui fazer o scan do servidor e do client, quando termina de carregar, ele diz que falhou, se alguem poder colocar o scan, eu agradeçeria muito. abraços • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Bolz (por editar) Tibiaking (por alguns scripts) Tópico não e meu peguei no Por ai...
  19. Pyrus OT, 1.5

    Shoupe reagiu a xandeloko por uma resposta no tópico

    1 ponto
    Pokemon Pyrus ot Antes de tudo por favor, leia abaixo: Leiam aqui plx Informações: Imagens: Creditos: Scan Extras: REP + Novidades da 1.5 Download: http://www.mediafire.com/download/d2kcwj61kwrt6gk/PYRUS_OT.rar UTILIZEI PARA EDITAR passa na page do projeto que to trabalhando pra dar aquela força https://www.facebook.com/PokemonImperiumPI/?fref=nf
  20. [Action] Stamina Potion

    Nerivalhs reagiu a MatheusVidaLoka por uma resposta no tópico

    1 ponto
    Hoje estou aqui com um script de stamina potion (Uma poção que recupera totalmente a stamina) Vamos ao script... 1- Vá em data\actions\script crie um arquivo .lua e renomeie para staminapotion.lua ,em seguida cole o script abaixo... depois salve e feche. 2- Vá em data\actions\actions.xml e cole a tag abaixo. <action itemid="7488" script="staminapotion.lua"/> No caso a id sendo usada é a '7488' mas você pode alterar de acordo com seu gosto... Pronto... Por inquanto é isso! Créditos: juliok80 Orochi Elf MatheusVidaLoka
  21. [OTC] Launcher Creator v0.3

    margoh reagiu a Orochi Elf por uma resposta no tópico

    1 ponto
    [OTCodes] Launcher Creator v0.3 Olá pessoal, o Launcher Creator passou por mais um update! Vou trazendo pra vocês o que foi feito na versão 0.3 LOG -Adicionado as propriedades de (Icone e Background) no Screen. -Adicionado mais dois componentes (ProgressBar e Play Button) -Mais propriedades adicionadas no componente (News) -Todas as propriedades dos componentes, organizadas. -Alterado a função de "Debugger" para "Preview", assim visualizando no mesmo tempo de atualização. Fiz um vídeo demonstrativo da versão 0.3 https://www.youtube.com/watch?v=epOK4SUbjzQ&feature=youtu.be Bom.. ainda falta bastante coisa galera, porém estamos caminhando.. que no meu ver, é o importante. Próximas edições para nova atualização. 0.4 - Adicionar os demais componentes (Site Button e Close Button) - Criar as funções (Open, Save e Compile) Créditos: Tony Araújo (OrochiElf)
  22. 1 ponto
    E ai galera, estou começando em Website e tomei como base o site do ShadowCores. Vou colocar 3 fotos, 2 do site e 1 das configurações, fiz todas as configurações em um arquivo separado, igual faz no gesior, para facilitar a mudança nas mais de 30 páginas! Será bem parecido com a funcionalidade do Gesior, o jogador loga no site, faz a compra, e automaticamente, libera no servidor do jogo(Em Android). Testado e funcionando!!! O jogo é o Clash of Clans. Pra mim, um dos melhores jogos de android/ios. Só de configurações, já estou indo para 250 linhas
  23. (Resolvido)[Ajuda] Script Simples

    Farathor reagiu a Orochi Elf por uma resposta no tópico

    1 ponto
    Amigo, pra te falar a verdade está mandando o efeito sim, não está dando para você ver porque quando o player dá o teleport, ele recarrega as imagens no CLIENT então não aparece, porém algum outro player que estiver perto, vai ver o efeito direitinho. function onSay(cid, words, param) local pos = {x = 1153, y = 1220, z = 6} if not getTileInfo(getThingPos(cid)).protection then doPlayerSendCancel(cid, "Voce só pode teleportar dentro de áreas com proteção") return true end doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) addEvent(function() doTeleportThing(cid, pos) doSendMagicEffect(pos, CONST_ME_TELEPORT) end, 50) return true end
  24. Queria Sprites De Mega Gyarados

    Vanne Bonser reagiu a MestruGusXD por uma resposta no tópico

    1 ponto
    Cara,porque tu não desenha no Paint.net?Deixe o fundo rosa e desenhe,ou se não pega a do gyarados e edite faz igual a eu se não sabe criar edite!Link do post que ensina a desenhar sprites,e para você cortar ela tambêm esta o link abaixo: http://www.tibiaking.com/forum/topic/44812-como-recorta-sprites-com-o-object-builder/ http://www.tibiaking.com/forum/topic/25549-mega-curso-de-sprites/?hl=%2Bdesenhando+%2Bsprites VEI PESQUISEI O TK TODO PRA ACHAR OS LINKS,E NA MORAL DA PRÓXIMA VEZ PROCURE,NÃO DÁ PRA TODO MUNDO ENTREGA SPRITES DE BANDEIJA,mas tem um post de download de alguns megas: http://www.tibiaking.com/forum/topic/40208-spritemega-evolu%C3%A7%C3%B5es/?hl=%2Bpok%C3%A9mons+%2Bmegas REP+++PF VEI POIS EU REVIREI O SITE TODO PRA ACHAR NA PRÓXIMA TENTE ACHAR,POIS NINGUÊM ENTREGA SPRITES ASSIM,FAÇA VOCÊ MESMO SUAS PRÓPRIAS.
  25. (Resolvido)Comando !Rebattle

    avalax reagiu a Wise por uma resposta no tópico

    1 ponto
    Ué, não vejo erros na formulação do script. Por acaso a protection zone do seu servidor já não remove o battle do player automaticamente e você não percebeu? De qualquer forma, tente com essa estrutura: local price = 5 -- quantidade em crystal coins (gold bars, no caso) function onSay(cid, words, param, channel) if not getTilePzInfo(getThingPos(cid)) then return doPlayerSendCancel(cid, "You can only remove your battle in a protection zone.") end if not isPlayerPzLocked(cid) then return doPlayerSendCancel(cid, "You are not in battle.") end if not doPlayerRemoveMoney(cid, price * 10000) then return doPlayerSendCancel(cid, "You need "..price.." gold bars to remove your battle.") end doRemoveCondition(cid, CONDITION_INFIGHT) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) return true end E você não prefere que a protection zone remova automaticamente o battle do player assim que ele fique sobre ela? Posso fazer o script, se preferir.
  26. (Resolvido)Como colocar Level Max

    Porygon reagiu a Smart Maxx por uma resposta no tópico

    1 ponto
    Pronto; <?xml version="1.0" encoding="UTF-8"?> <stages> <config enabled="1"/> <stage minlevel="1" maxlevel="80" multiplier="500"/> <stage minlevel="81" maxlevel="100" multiplier="400"/> <stage minlevel="101" maxlevel="150" multiplier="300"/> <stage minlevel="151" maxlevel="250" multiplier="200"/> <stage minlevel="251" maxlevel="350" multiplier="150"/> <stage minlevel="351" maxlevel="400" multiplier="100"/> <stage minlevel="401" maxlevel="500" multiplier="50"/> <stage minlevel="501" maxlevel="600" multiplier="25"/> <stage minlevel="601" multiplier="0"/> </stages>
  27. 1 ponto
    Olá Galera do TK, venho hoje rapidamente trazer um sistema muito útil e pedido em meu tópico do !eject system: http://www.tibiaking.com/forum/topic/35060-eject-system-expulsar-player-inativo-da-house/ Explicação: Sabe aqueles players chatos que compram as melhores casas e não logam no servidor e enche a desgrama da casa de item só para os novos players não comprar? Pois é, isto não existirá mais! =D Este script é apenas um arquivo que você colocará em sua pasta mods e ele executará toda vez que o servidor for reiniciado, ou seja: Quando o servidor ligar ele irá verificar os players que não logam a X dias (configurável) e então expulsa-los da casa movendo seus items para o depot deixando a casa sem dono. Vamos ao que interessa; Na pasta principal do servidor, onde fica a distro que roda o servidor e tudo mais, entre na pasta MODS e crie um arquivo com o nome de cleanhouses.xml e dentro coloque o seguinte: <?xml version="1.0" encoding="UTF-8"?> <mod name="Cleanhouses" version="1.03" author="nsanee" contact="tibiaking.com" enabled="yes"> <description> v.1.03 - Added 'onlyNonPremium' configurable. Removed modlib, since the script is run once anyway we don't need it loaded at all times. It shouldn't now stop execution when a house is nameless. v.1.02 - now uses only one sql query, removed multiworld configurable since it's not needed anymore v.1.01 - small fixes, optimized query + multiworld support. This mod will clean houses of inactive players and move their items to the depot. config explained: days - If the player hasn't logged in for this number of days his house will be freed. log - true/false, whether to enable logging of which houses have been cleaned. file - path to the log file, where logs will be stored. Ignored if 'log' set to false onlyNonPremium - if set to 'true', the script will clean only the houses of players who don't have any pacc days left. other notes: DO NOT remove doSaveServer() at the end, otherwise if your server happens to crash before the nearest server save you will regret it =) </description> <globalevent name="cleanhouses" type="start" event="buffer"><![CDATA[ local config = { days = 3, log = true, file = getDataDir() .. "/logs/cleanhouses.txt", onlyNonPremium = true } local ns_query =[[ SELECT houses.owner, houses.id as hid, houses.name as house_name ,players.name FROM houses LEFT JOIN players ON players.id=houses.owner LEFT JOIN accounts ON players.account_id=accounts.id WHERE players.lastlogin < (UNIX_TIMESTAMP() - ]] ..config.days.. [[*24*60*60) ]] ..(config.onlyNonPremium and ' AND accounts.premdays=0 ' or '')..[[ AND players.world_id =]] .. getConfigValue("worldId") local house = db.getResult(ns_query) local logs = " :: Houses cleaned:\n\n" if house:getID() ~= -1 then repeat logs = logs .. house:getDataString('house_name') ..", owned by " .. house:getDataString('name') .. "\n" setHouseOwner(house:getDataInt('hid'), 0) until not house:next() house:free() else logs = logs .. "There were no houses to clean." end if config.log then doWriteLogFile(config.file, logs) end addEvent(doSaveServer, 1000) ]]></globalevent> </mod> Pronto, salve e feche. Toda vez que o servidor iniciar irá expulsar os players que não logam aos dias configuráveis. Como configurar: days = 3 * É o número em DIAS que o player terá que ficar sem logar para perder a casa. Configure apenas isto, o resto aconselho não mexer, caso queira aprimorar o sistema aconselho ser avançado na área para não causar erros no mesmo. O Mesmo foi testado hoje por mim e está em funcionalidade a todas as versões de TFS. Créditos: Absolute nsanee (otland) Demais dúvidas deixe-me saber! Até o próximo
  28. Naruto White

    pedroben110 reagiu a Beeny por uma resposta no tópico

    1 ponto
    vê o que você está fazendo de errado aí '-' manda a parte que você está editando
  29. (Resolvido)[Ajuda] Erro na distro

    jonei reagiu a thiagobs por uma resposta no tópico

    1 ponto
    Estar faltando a coluna em playes onlinetimetoday execulta no seu sql LTER TABLE `players` ADD `exphist_lastexp` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist1` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist2` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist3` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist4` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist5` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist6` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `exphist7` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetimetoday` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime1` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime2` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime3` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime4` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime5` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime6` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetime7` BIGINT( 255 ) NOT NULL DEFAULT '0', ADD `onlinetimeall` BIGINT( 255 ) NOT NULL DEFAULT '0'; UPDATE `players` SET `exphist_lastexp`=`players`.`experience`;
  30. PEDIDO

    Its Lee reagiu a leoleo por uma resposta no tópico

    1 ponto
    Na imagem? vou trocar o servidor de hospedagem dela, mais aqui meu antivírus não detectou nada. Daqui a pouco atualizo a resposta anterior com novas imagens.
  31. function onLogin(cid) local days = 2 if getPlayerStorageValue(cid, 76534) <= 0 then doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu "..days.." dias de VIP, bom jogo!") setPlayerStorageValue(cid, 76534, 1) end return true end
  32. (Resolvido)[Erro] Globalevent

    buddha reagiu a Vodkart por uma resposta no tópico

    1 ponto
    usa isInArray, mais fácil. troca essa linha: if os.date("%A") == "Monday" then por local days = {"Monday", "Tuesday", "Wednesday"} -- coloque os dias if isInArray(days, os.date("%A")) then
  33. [Contrato] Sprites e scripting

    tkroro reagiu a Wend por uma resposta no tópico

    1 ponto
    Ainda está aberta a vaga?
  34. Rookwar Editado v23 8.60

    welington132 reagiu a Lipedr2 por uma resposta no tópico

    1 ponto
    OLÁ PESSOAL TRAGO MAIS UM MAPA ROOK WAR 8.60 EDITADO BY [Lipedr2] OQUE MUDOU? tirei bugs do Npc Teste error do distro ot fexa sozinho Arrumei o Summon tava muito cháto trainers Arrumado tava bugado fiz nova area só de NPCS Adicionei Fast Attack Ativado Quest 30k è bom ir com um Bloker Quest Boh é bom ir com um Bloker Annihilator Quest apenas 4 pessoas! Começa Level 130 Depot de baixo do Templo Criei um local pra war desert war City Rook-War City Ice-War City Desert-War Criei novos intens no Npc VIP Seller War Axe - Attack 60 Def 40 War Sword - Attack 60 Def 40 War Spear - Attack 80 War Wand. <Sorcerer> War Rod. <Druid> Acc do god:god/god TEMPLO ROOK WAR CITY TRAINER CITY ICE WAR AREA SÓ DE NPCS ANNIHILATOR !! DEPOT INTENS EDITADOS DOWNLOAD http://www.mediafire...bxr5jksshxv5klb SCAN https://www.virustot...sis/1357793276/ {Genriot} Pelo mapa {Liper} Por tira bugs e edita Meu primeiro mapa galera não sei mexer muito beleza
  35. Procura-se Mapper para PokeXGames

    Bluester reagiu a Stigal por uma resposta no tópico

    1 ponto
    Com Daniel no tópico e o pessoal ainda com esperança de ter chance kkkkkk'
  36. [PEDIDO] Banner OTServer

    leoleo reagiu a Beeny por uma resposta no tópico

    1 ponto
  37. [PEDIDO] Editar Poster

    Champz Silva reagiu a Beeny por uma resposta no tópico

    1 ponto
    this ?
  38. PEDIDO

    Its Lee reagiu a leoleo por uma resposta no tópico

    1 ponto
    Cara veja se &eacute; esse o tipo de logo desejado por voce. ou Os vetores utilizados são meus, então pode usar a vontade sem problemas com direitos autorais. Fiz com carinho, mais meu pc não está me ajudando esses dias no quesito desempenho.
  39. Amigo, joguei no Google e encontrei somente isso: http://www.tibiaking.com/forum/topic/21918-mod-loot-ring-anel-de-loot/. Espero que eu tenha ajudado. >_>
  40. Ele se enganou com as funções. Setou Storage Global ao invés de Player Storage. Agora tá certo.
  41. Trocando a Cor da imagem !

    Champz Silva reagiu a Beeny por uma resposta no tópico

    1 ponto
    Olá pessoas. Hoje trago a vocês um tutorial bem simples =). Vamos lá. 1 - Escolha uma imagem, eu escolhi essa : 2 - Vamos até a opção Matiz/Saturação : 3 - Após isso é só selecionar "colorir" e selecionar a cor / saturação desejada =) Resultado :
  42. Pedido Script que não mova para mão

    xWhiteWolf reagiu a Wise por uma resposta no tópico

    1 ponto
    cantequip.lua (data/movements/scripts): function onEquip(cid, item, slot) doPlayerSendCancel(cid, "You can't equip this item in that slot.") return false end Tags - movements.xml (data/movements): <movevent type="Equip" itemid="XXXX" slot="hand" event="script" value="cantequip.lua"/> <movevent type="Equip" itemid="XXXX" slot="shield" event="script" value="cantequip.lua"/>
  43. function onLogin(cid) local days = 2 if getGlobalStorageValue(getPlayerAccountId(cid)+555) <= 0 then doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu "..days.." dias de VIP, bom jogo!") setGlobalStorageValue(getPlayerAccountId(cid)+555, 1) end return TRUE end @editei tenta esse.
  44. (Resolvido)Spell INOVADORA !

    Jean Junior reagiu a Orochi Elf por uma resposta no tópico

    1 ponto
    Bom.. os códigos ficaram muito ridículos, preciso estudar uma forma mais bonitinha @OBS: Não testei. LifeSteal.lua Spells.xml <instant name="Life Steal" words="life steal" lvl="1" mana="100" prem="0" range="100" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="LifeSteal.lua"> <vocation id="4"/> </instant>
  45. (Resolvido)Spell INOVADORA !

    Jean Junior reagiu a buddha por uma resposta no tópico

    1 ponto
    Pois então... É praticamente impossível. O que daria pra fazer é juntar o exura a uma magia de área. Edit: Tipo assim:
  46. Procuro serv com pokes megas e client sinples

    4i20 reagiu a Nogard por uma resposta no tópico

    1 ponto
    Você quer um servidor para baixar? Um já online para jogar? Na próxima, especifique... Se possível, diminua o tamanho do seu texto, se encontra um pouco exagerado. Veja se acha o que procura: http://www.tibiaking.com/forum/forum/186-servidores-derivados/ http://www.tibiaking.com/forum/forum/155-optional-pvp/ O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Downloads → Utilitários para OTServs" Para: "OTServ → Suporte OTServ → Suporte de Servidores Derivados"
  47. 1 ponto
    Olá pessoal do tk blz? Meu primeiro topico na area Talkactions então se tiver alguma coisa errada me digam ! Vamos Começar: Qual nome do talkaction? Para que serve? Vamos a TalkAction 1° Crie um arquivo .lua com o nome name.lua e coloque o codigo abaixo dentro no arquivo: Salve, após ter feito isso coloque o arquivo dentro da pasta: Pronto 50% Concluido agora iremos ate a pasta: E Iremos abrir o talkactions.xml Agora adicione o seguinte script no arquivo: Explicando: Obrigado galera duvidas pode postar aqui se ajudei por favor de rep+ ; ) Creditos:
  48. [Erro Magebot Windows 7] Quem Ajuda ?

    silramos reagiu a Weed Cury por uma resposta no tópico

    1 ponto
    Faço tudo como nos tutoriais e não não crackeia ! Imagem do erro é essa : Ja tentei até pelo processo do falso servidor de php mais nao deu. Quem ajuda nessa ? nao sei se essa é a area correta mais nao achei duvidas de bot intão vai aqui
  49. Lista de Sprites úteis

    wevertonh reagiu a Cat por uma resposta no tópico

    1 ponto
  50. Pokémon PGlaxy v0.1 !

    kldedu reagiu a brasil0014 por uma resposta no tópico

    1 ponto
    Cara o server é bom mais se eu conseguisse deixar em mysql até ia revive meu projeto. hoje to sem rep+ amanhã ti dou e cara libera mais informações, como que geraçoes tem, shyni stone etc...
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo