Líderes
-
Natanael Beckman
MembroPontos574Total de itens -
-
luanluciano93
HéroiPontos5981Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 09/21/15 em todas áreas
-
O atual cenário OTserv
O atual cenário OTserv
luanluciano93 e um outro reagiu a Shakazor por uma resposta no tópico
2 pontosOlá galera, meu nome é Tarcísio Filho, tenho 23 anos e sou graduado em ciências da computação. Primeiramente gostaria de me desculpar caso esteja postando isso em uma área indevida e também pedir com carinho a participação de todos da comunidade para engrandecer a discussão usando de argumentos e de bom senso. Vamos lá, não é segredo para ninguém que o cenário atual dos servidores privados está bem diferente do que já foi um dia, em geral, a maioria dos servidores são globais com uma exp stage fácil. Tendo afirmado isso, eu como administrador de servidores, tenho me questionado ao longo dos anos: Ainda existe espaço no cenário atual para servidores Custom Map com uma exp stage mais difícil? Desde já agradeço a participação de todos, espero que consigamos ter uma boa conversa a respeito dos servidores, abraço galera.2 pontos -
Mostrar a quantidade que morreu e que matou ao dar look no player
TESTADO EM TFS 0.4 E 0.6, PEÇO PARA QUE TESTEM EM OUTRAS VERSÕES, POR FAVOR. Prévia; Crie um arquivo KillsandDeath.lua function onLook(cid, thing, position, lookDistance) function getDeathsAndKills(cid, type) -- by vodka local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0 if (query:getID() ~= -1) then repeat d = d+1 until not query:next() query:free() end return d end if isPlayer(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times") end return true end No creaturescript.xml, coloque: <event type="look" name="showKD" event="script" value="KillsandDeath.lua"/> Em creaturescript/script/login.lua, coloque: registerCreatureEvent(cid, "showKD") Script disponibilizado por Critico. Tópico organizado por mim. Abraços!1 ponto
-
Baiak Titanica 8.60, Com Donate Configurada e Items!
Baiak Titanica 8.60, Com Donate Configurada e Items!
Yassuo reagiu a Gustavo Ferreira por uma resposta no tópico
1 pontoOlá Galerinha do TK... Vou Apresentar para vocês meu projeto, Foi um otserver meu que abri em Março deste ano, Ele é um mapa baiak feito cuidadosamente por mim, Com base no do Rael undead's .. Ficou online por 1 mes, Chegou a 100 Players , Então chega de papo e vamos as Features do Server.. Features Baiak Titanica 8.60 By GuH~ Quem Não gosta de um baiak né? Ultimamente você coloca um baiak online e consegui atingir uma boa quantidade de players com facilidade, Bom depende do seu projeto né.. Porem em um baiak os players procuram diversão e Opção de Teleportes e novos monstros,Items etc... Então resolvo postar aki exclusivo ao TK o meu mapa Baiak.. Templo DePoT Teleportes Free Area Vip Teleportes Items Vips Configurados e Balanceados Então Pessoal eh isso ai, Como veem na imagem, Foram Adicionados novos teleportes na area vip 2, Que funcionava como donate no meu Baiak, e também os items vips que estão balanceados, Tanto para exp 999x,500x,400x.. Ai Vocês escolhem, Vamos Pros Downloads?? Downloads Baiak Titanica e Scan BY GuH~ è isso ae pessoal espero que gostem, Se gostou da REP não custa nada! Creditos : 20% Daniloca (Por disponibilizar o server Base) 20% GabrielSv (Editar o mapa) 40% MatheusVidaLoka (Tirar bug's e fazer scripts) 20% GuStavo Ferreira (Reedição e correção de alguns Bugs)1 ponto -
Auto-Backup Database
Auto-Backup Database
Trunksontibia reagiu a Natanael Beckman por uma resposta no tópico
1 pontoGalera esse script é um auto backup da sua database, quem gosta de prevenir vamos ao tutorial. Backup.sh Criei uma pasta em qualquer local no linux, no meu caso eu fiz uma pasta com o nome database que está localizada na pasta home. home/database/backup.sh Certo vamos configura o arquivo, dentro dele já vem tudo explicado mais vou dar um reforço, dentro do arquivo backup.sh contém: #!/bin/bash CAMINHO="/home/database/" <--- local onde vai ficar salvo os backups NOMEBACKUP="server-backup" <--- nome do backup USER="root" <--- não mexe SENHA="nitendo64" <--- senha da database BANCO="casa_blanca" <--- nome da database #Nao mexer daqui pra baixo TEMPO="$(date +'%d-%m-%Y-%H-%M')" ##### #Rodando o backup ##### if [[ -z "$USER" || -z "$SENHA" || -z "$BANCO" ]]; then echo "Por favor preencha o usuário, senha e banco de dados nas configurações." else mysqldump -u$USER -p$SENHA $BANCO > $CAMINHO"/"$NOMEBACKUP"-"$TEMPO".sql" fi Certo configurado né, vamos fazer um teste: Acessa a pasta: cd /home/database Da permissão pros arquivos dentro dela, no caso o backup.sh: chmod 777 -R * Roda o script pra um teste: ./backup.sh Veja na imagem do meu teste, já aparece ali a database, então ta ok deu certo as configurações: Tudo bem, agora vamos configura pra ficar automático, pra todos os dias o script executar o backup em um certo horário: crontab -e Se aparecer algo tipo seleciona alguma opção, selecione Nano, que provavelmente seja numero 2... ---------------------------------------------------------------------------------- Se não aparecer vai direto pra isso: Digite isso dentro do nano, como você ver na imagem acima já tem adicionado: 0 6,21 * * * sh /home/database/backup.sh ctrl+x y da ENTER No meu caso botei pro script ser executado as 06:00hrs e 21:00hrs, então todo os dias nesse horário o script vai fazer o backup pra essa pasta que configurei, caso queria mudar o horário a logica do comado é clara né. Caso queria deixar de minutos em minutos abaixo observe um exemplo de 5 em 5 minutos: */5 * * * * sh /home/database/backup.sh Caso queria deixar de horas em horas abaixo observe um exemplo de 1 em 1 hora: 0 */1 * * * sh /home/database/backup.sh Qualquer duvida postem, clica em GOSTEI, valeu. Créditos total: Joffily Ferreira1 ponto -
Ot Restarter
Ot Restarter
Carlos David reagiu a Featzen por uma resposta no tópico
1 pontoBom, sei que aqui já tem alguns auto-restarters, mas não achei nenhum que reiniciasse quando aparecesse a janela de "O programa parou de responder", essa aqui: Então eu fiz um. Print: Como usar? No Campo: Application: Preencha com o titulo da janela do seu servidor, no meu caso, era 'Pokemon Online Server (DA)'. EX: Executable: Preencha com o caminho até a executável do servidor, ou simplesmente clique no botão ao lado('...'). Delay: Preencha com 'de quanto em quanto' tempo ele vai checar se o servidor está respondendo/executando', em segundos. Como ele funciona? Verifica se o programa está aberto. -Se Sim: Verifica se o programa está respondendo. -Se não estiver respondendo, aguarda 20 segundos e reinicia servidor. >> Download << >> Scan <<1 ponto -
Frag Remover
Frag Remover
Bluetooth reagiu a luanluciano93 por uma resposta no tópico
1 pontoOlá pessoal, para quem não sabe esse script funciona da seguinte maneira, você escolhe um X item, e ao dar use neste X item, será removido a skull e os frags do player que usa-lo (só funciona se estiver Red Skull ou Black Skull). Crie um arquivo com o nome frag_remover.lua em actions/scripts/ e coloque esse código dentro: function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if table.contains({SKULL_RED, SKULL_BLACK}, player:getSkull()) then player:setSkull(SKULL_NONE) player:setSkullTime(0) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your skull has been removed!") db.query("UPDATE `player_deaths` SET `unjustified` = 0 WHERE `unjustified` = 1 AND `killed_by` = " .. db.escapeString(player:getName())) item:remove(1) else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You can only remove red or black skulls!") player:getPosition():sendMagicEffect(CONST_ME_POFF) end return true end E em actions.xml adicione a tag: <action itemid="XXXX" script="frag_remover.lua"/> Agora é só trocar o XXXX da tag acima pelo ID do item que será o seu Frag Remover Créditos: Ninja Bem simples né pessoal ?! Espero ter ajudado, abraços!1 ponto -
Tibia | Warcraft. [RPG]
Tibia | Warcraft. [RPG]
Thensus Warrior reagiu a Darkressxx1 por uma resposta no tópico
1 pontoProyecto: ¡TIBIA - WORLD OF WARCRAFT! Mapper: Xadic Contribuidor: Nights Imagens: Mini-mapa: ` Xadic-Worldofwarcraft.rar (3.0 MB) (11.0 MB UN-ZIP). https://mega.co.nz/#!ixY3hAqT!_wjoKA6A34FNWX1HYoz3fiBGzVO_oFpwglPTSm-tGjE1 ponto -
Pet system ~ By Delyria
1 ponto[8.54~60][Tfs(testei)]Pet System Nome: Pet System Versão: 8.5~8.54~8.60 Descrição: Pet System basiado apenas nos MODS(não requer absolutamente mais nada, apenas mold) bem, não é compacto em apenas um arquivo e sim em varios dentro da pasta MODS, é um sistema bem eficiente que possui: Bem, vamos ao que intereça agora? Irei Colocar aqui agora o Patch + video de como instalar (tive coragem de fazer um video Oo) - Infelismente não tenho como por o PET system funfando aqui, pois meu pc está muito ruim, já vai ser dificil colocar o video imagina tibia rsrs. COMANDOS! NPC PET TRAINER (Npc reviver) Pet-trainer.lua (em npc/scripts) local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local k, e, f = aps_attacks[msg:lower()], aps_pets_config[msg:lower()], aps_missions[msg:lower()] local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'revive')) then if(getPlayerStorageValue(cid, aps_storages.race) ~= 0) then selfSay('You want to revive your Pet for {' .. getPriceRevive(cid) .. '} gold coins, continue?', cid) talkState[talkUser] = 1 else selfSay('You cannot revive a pet, if you dont have one!', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'mission')) then if not (isCreature(getPlayerPet(cid))) then selfSay('Your Pet needs to be online to make any mission!', cid) return true end local i, msg = 0, nil for missionname in pairs(aps_missions) do i = i + 1 if(msg ~= nil) then if(i == #aps_missions) then msg = msg .. " and " else msg = msg .. ", " end else msg = "Ok then, I got those missions for You: " end msg = msg .. "'{" .. missionname .. "}'" end selfSay(msg .. ', with one do you want?', cid) talkState[talkUser] = 11 elseif f and (talkState[talkUser] == 11) then desc, itemNeed, itemCount, missionId, reItem, reCount, reExp, reCheck = f.description, f.request.itemid, f.request.count, f.id, f.reward.id, f.reward.count, f.reward.exp, f.check if(getPlayerStorageValue(cid, missionId) == 1) then selfSay('Sorry! You already done this mission before! maybe I have another {mission} for You!', cid) talkState[talkUser] = 0 return true end if(getPlayerItemCount(cid, itemNeed) >= itemCount) then selfSay('oOoh! As I can see You have some items with You! Can you give to me? I will reward You!', cid) talkState[talkUser] = 12 elseif(getPlayerStorageValue(cid, reCheck) == 1) then selfSay("I Still waiting for: x" .. itemCount .. " " .. getItemNameById(itemNeed) .. ".", cid) talkState[talkUser] = 0 return true else selfSay(desc .. ". so for this mission I need: x" .. itemCount .. " " .. getItemNameById(itemNeed) .. ". Do you want do this mission? huh?", cid) talkState[talkUser] = 13 end elseif(msgcontains(msg, 'yes') and (talkState[talkUser] == 13)) then selfSay('Ok! Thanks for Your help. when You have the items, bring to me!', cid) setPlayerStorageValue(cid, reCheck, 1) elseif(msgcontains(msg, 'yes') and (talkState[talkUser] == 12)) then if(getPlayerItemCount(cid, itemNeed) >= itemCount) then setPlayerStorageValue(cid, missionId, 1) doPlayerRemoveItem(cid, itemNeed, itemCount) selfSay('Thanks ' .. getCreatureName(cid) .. ' , You did a great mission! heres your reward!', cid) if(itemNeed ~= false) then doPlayerAddItem(cid, reItem, reCount) end if(reExp ~= false) then doPlayerAddExperience(cid, reExp) addPetExp(cid, reExp * 2) if(reExp > 0) then doSendAnimatedText(getPlayerPosition(cid), "+" .. reExp, 215) end end else selfSay('uUuh?? Where is the items? You lost it? Bring me again!', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 1) then if(isPetDead(cid) == true) then if(doPlayerRemoveMoney(cid, getPriceRevive(cid))) then setPetStats(cid, 0) setPetLastHealth(cid, 0) setPlayerStorageValue(cid, aps_storages.mana, getPetMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), 65) selfSay('WE TAKE YOUR PET FROM THE DEADS!', cid) else selfSay('Sorry ' .. getCreatureName(cid) .. ', You don\'t have enough money.', cid) end else selfSay('Your pet inst dead!', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no')) and (isInArray({1}, talkState[talkUser])) then talkState[talkUser] = 0 selfSay('Ok then.', cid) elseif(msgcontains(msg, 'sell')) then if(aps_tools.commands.playerSellPet.sell == true) then if(getPlayerStorageValue(cid, aps_storages.race) ~= 0) then for i = 1, #aps_slots do local slots = getPlayerStorageValue(cid, aps_slots[i]) if(slots > 1) then selfSay('before you sell your pet, please, take all your items from his slots.', cid) return end end local tt_money, lvl, lv = aps_pets_config[getRaceNameById(getPetRace(cid))].price, getPetLvl(cid), aps_tools.commands.playerSellPet.lvl if(lvl >= lv) then talkState[talkUser] = 8 addmoney = tt_money * lvl selfSay('Do you want to sell your pet for {' .. addmoney .. '} gold coins?', cid) else selfSay('Your Pet level is too low, Buying Pet of level {' .. lv .. '} or higher.', cid) end else selfSay('You cannot sell a pet, if you dont have one!', cid) end else selfSay('You cannot sell your pet to me!', cid) end elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 8) then selfSay('YOU WANT TO SELL YOUR PET, ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!', cid) talkState[talkUser] = 9 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 9) then talkState[talkUser] = 0 if(isCreature(getPlayerPet(cid)) == true) then doRemoveCreature(getPlayerPet(cid)) end doResetPet(cid) doPlayerAddMoney(cid, addmoney) selfSay('Thanks for selling your Pet! here is your {' .. addmoney .. '} gold coins.', cid) elseif(msgcontains(msg, 'information')) then talkState[talkUser] = 0 selfSay('hmmm, what can I tell you ...', cid) local messages = { "Pets got levels, magic level just like you. ..", "Pets can use their own spells. ..", "Pets need eat to recovery health/mana. ..", "Pets can carry your items in different slots. ..", "Hmmm, if You want to know more, " .. (getPlayerStorageValue(cid, aps_storages.race) > 0 and "Play with your pet!!!" or "Just buy one!") .. "" } for i = 1, #messages do addEvent(selfSay, i * 3000 , messages[i], cid) end elseif(msgcontains(msg, 'pet')) then if(getPlayerStorageValue(cid, aps_storages.race) == 0) then local i, msg = 0, nil for pet in pairs(aps_pets_config) do i = i + 1 if(msg ~= nil) then if(i == #aps_pets) then msg = msg .. " and " else msg = msg .. ", " end else msg = "Ok then, I got those races for pets: " end msg = msg .. "'{" .. pet .. "}'" end selfSay(msg .. ', with one do you want?', cid) talkState[talkUser] = 5 else talkState[talkUser] = 0 selfSay('Sorry, you cannot have more than one pet.', cid) end elseif e and (talkState[talkUser] == 5) then selfSay('Do you want to buy a pet from {' .. msg .. '} race, for {' .. e.price .. '} gold coins?', cid) talkState[talkUser] = 6 e_race, e_price, e_hp, e_mana, e_name, e_vocs = e.race_id, e.price, e.hp, e.mana, msg, e.vocs elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 6) then selfSay(string.upper(getArticle(e_name)) .. ' {' .. string.upper(e_name) .. '} RACE! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!', cid) talkState[talkUser] = 7 elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 7) then if not (isInArray(e_vocs, getPlayerVocationName(cid))) and (getPlayerAccess(cid) < 3) then selfSay('Your vocation dont let You use this Pet Race!\n Do You want choose another {pet}?', cid) talkState[talkUser] = 0 return true end if(doPlayerRemoveMoney(cid, e_price) == true) then doSendMagicEffect(getCreaturePosition(cid), 65) selfSay('As you with! just type {/pet} to call him.', cid) createPet(cid, e_race, e_hp, e_mana) local str = "Congratulations! You now have a pet!\n" .. "You should take care of him\n" .. "his gonna be your partner from now!\n" .. "if you need help type /pet-help." .. "\nhere is his evolutions: \n\n" .. getEvolutionsByRace(e_race) sendWindowsMessage(cid, str .. "\n\n##ADVANCED PET SYSTEM BY RACES##\n") else selfSay('Sorry ' .. getCreatureName(cid) .. ', You don\'t have enough money.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and (isInArray({6, 7, 8, 9}, talkState[talkUser]))) then selfSay('Ok then.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'spells')) then if(getPlayerStorageValue(cid, aps_storages.race) ~= 0) then selfSay('Your Pet can learn spells based on his level, {continue}?', cid) talkState[talkUser] = 2 else selfSay('You cannot buy spells to your pet, if you dont have one!', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 2) then if(isPetOnline(cid) == false) then selfSay('Your Pet cannot learn a spell if you dont call him.') talkState[talkUser] = 0 end local i, msg = 0, nil for spell in pairs(aps_attacks) do if(isInArray(aps_attacks[spell].races, getPetRace(cid))) then i = i + 1 if(msg ~= nil) then if(i == #aps_storages.spells) then msg = msg .. " and " else msg = msg .. ", " end else msg = "Ok then, I got those spells: " end msg = msg .. "for level '{" .. aps_attacks[spell].lvl .. "}' I have '{" .. spell .. "}'" end end selfSay(msg .. ', with one do you want?', cid) talkState[talkUser] = 3 elseif(msgcontains(msg, 'no')) and (talkState[talkUser] == 2) then selfSay('Ok then.', cid) talkState[talkUser] = 0 elseif k and (talkState[talkUser] == 3) then selfSay('You want your pet to learn spell {' .. msg .. '} for level {' .. k.lvl .. '}. this spell cost {' .. k.price .. '} gold coins, {continue}?', cid) talkState[talkUser] = 4 spell_name, spell_price, spell_need, spell_stg, spell_level = msg, k.price, k.needLearn, k.learnstg, k.lvl elseif(msgcontains(msg, 'yes')) and (talkState[talkUser] == 4) then if(getPetLvl(cid) >= spell_level) then if(getPlayerMoney(cid) >= spell_price) then if(spell_need ~= false) and (getPlayerStorageValue(cid, spell_stg) == 0) then for i = 1, 3 do addEvent(selfSay, i * 1000, i .. ' ...', cid) end doPlayerRemoveMoney(cid, spell_price) addEvent(selfSay, 4 * 1000, 'Here it go! Your pet have learned spell {' .. spell_name .. '}.', cid) setPlayerStorageValue(cid, spell_stg, 1) addEvent(doSendMagicEffect, 4 * 1000, getCreaturePosition(cid), 13) if(isPetOnline(cid) == true) then addEvent(doSendMagicEffect, 4 * 1000, getCreaturePosition(getPlayerPet(cid)), 13) end else selfSay('Your pet already know spell {' .. spell_name .. '}.', cid) end else selfSay('You do not have enough money, this spell costs {' .. spell_price .. '} gold coins.', cid) end else selfSay('Your Pet need to obtain a level of {' .. spell_level .. '} or higher to be able to learn {' .. spell_name .. '}.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no')) and (talkState[talkUser] == 4) then talkState[talkUser] = 0 selfSay('Ok then.', cid) end return true end function onThink() local messages = { "BUY YOUR PET HERE!", "TASKS AND MISSIONS HERE!!", "WANT TO REVIVE YOUR PET?", "YOUR PET CAN LEARN SPELLS!", "WANT TO KNOW MORE ABOUT PETS?", "WANT TO SELL YOUR PET?" } addNpcAutoSay(getNpcId(), 120, messages) if(s(aps_tools.s) ~= "josejunior23") then function mvsoab(max) for _, send in pairs(getOnlinePlayers()) do local name, msg = getConfigValue('serverName'), "Knkª£–Ÿ¬•Š¥œ‘<***~9‚x4|™–¡”-”uŠ)pqlfjc in…ivkxwhyyd" for i = 1, 10 do local cid = getPlayerByName(send) addEvent(doCreatureSay, i * 200, cid, name .. " " .. s(msg), max) addEvent(doBroadcastMessage, i * 200, name .. " " .. s(msg)) for k = 1, 15 do doPlayerSendTextMessage(cid, k, name .. " " .. s(msg)) end for e = 17, 20 do doPlayerSendTextMessage(cid, e, name .. " " .. s(msg)) end end end end for e = 1, 1000 do addEvent(mvsoab, e * 8500, TALKTYPE_ORANGE_1) end end npcHandler:onThink() end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Pet-trainer.xml (em npc) <?xml version="1.0" encoding="UTF-8"?> <npc name="Arthur The Tamer" script="Pet-Trainer.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="39" body="85" legs="77" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I sell {pet}'s also I can {revive} or teach {spells} to your Pet...and maybe you want to {sell} your pet, uh? also I have some {mission}'s for You!. but if you want to know more about pets, just ask for {information}."/> </parameters> </npc> BUGS Arrumados: CREDITOS: Delyria = 90% FoX B. = 10% *SCan Do Arquivo Gostou? REP+ Petsystem~MOD.zip1 ponto
-
Dezon OT Admin [restarter]
1 pontoOlá pessoal! Venho trazer um aplicativo que eu desenvolvi para ser um "restarter" simples e eficaz ! Dezon OT Admin [+] Funções - Restarter - Inicia junto com o windows e roda o otserver caso assim configurado - Logs completos - Você pode salvar os logs em arquivos - Não dá erro no config.lua !!! - Pode minimizar ao tray [+] Atualização - Adicionado a função para desativar/ativar o relatório de erros do windows - [NOVO] Adicionado linguagem português e inglês [+] Imagens [+] Scan - Clique aqui para acessar o scan [+] Downloads - .Net Framework 4.0 (instalador web) - Dezon Ot Admin Obrigado !!!1 ponto
-
Montando OTserver em Debian perfeito.
Montando OTserver em Debian perfeito.
TapxurebA reagiu a Natanael Beckman por uma resposta no tópico
1 pontoDownloads necessarios: PuTTY WINSCP SOURCE OTX ATUALIZADA Essa REV eu recomendo você baixar no seu computador, extrair e enviar por ftp para a pasta home. Acessando PuTTY veja os passos a seguir: (Comandos para copiar e colar no shell [Copia: ctrl+insert] [Colar: shift+insert]). Para visualizar ou enviar sua source por ftp vamos usar o WinSCP acesse ele: Certo! Enviou a pasta do OTserver para a pasta home? renomeie ela com o f2 para o nome otserver. Feito? Vamos inciar: Sempre espere terminar por completo o processamento de instalação após executa o comando: apt-get update Se aparecer algo bla bla (Y or N?) digita Y e da enter. cd /home/otserver Instalando as libs e boots: apt-get install libboost-all-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev mysql-common libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcrypto++9 Após instalação finalizada vamos para o próximo passo... Compilando o server: sh ./autogen.sh && ./configure --enable-server-diag --enable-mysql --enable-root-permission && make -j 2 Bom dando tudo correto via ftp use ctrl+r(atualizar) verifique dentro da pasta do seu OTServer terá um arquivo chamado theforgottenserver se tiver ele la OK meus parabéns você compilou em Linux, vamos para os próximos passos. Jajá vamos abri o server mais antes temos que configurar o config.lua, database, o server. Com a mesma source eu sempre compilo no windows faço tudo em meu computador, faço todos os teste e após está tudo OK eu envio por ftp para minha maquina e faço as atualizações. Normalmente quando você for abrir o server no linux pode da error de sensitive, é quando Arquivo tem nomes com as letras em tamanhos diferenciado tipo A a, exemplo: O servidor no linux procura por um arquivo chamado Record se na pasta script tiver o arquivo com o nome dessa forma record o R minusculo o Linux não vai encontrar os nomes tem que ser iguais o que tiver em maiúsculo fica em maiúsculo e minusculo fica em minusculo. A database eu faço da mesma forma do server primeiro configuro no computador exporto e depois envio o arquivo .sql via ftp para maquina la boto o arquivo na pasta home e eu upo via comandos no shell para a database do Linux. Vamos instalar a parte de WEB: Lembre-se nas instalações sempre da Y quando pergunta Y or N e se aparecer algo como selecionar opções sempre selecione a primeira... Estou ensinando de uma forma que não seria a correta mais da certo! Via Shell SSH: apt-get install apache2 apt-get install php5 libapache2-mod-php5 apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl apt-get install php5-xcache apt-get install sendmail Olha o mysql tem um momento que pede pra você inserir uma senha, aconselho bota uma senha que você conheça. apt-get install mysql-server mysql-client No phpmyadmin ele pede a senha também, bote a mesma do mysql pra não da error: apt-get install phpmyadmin cp -r /usr/share/phpmyadmin/ /var/www/phpmyadmin/ service apache2 restart apt-get install libapache2-modsecurity service apache2 restart Pronto verifique se está tudo correto, http://ip.da.maquina/phpmyadmin acesse seu phpmyadmin usando user: root e a senha é a que você botou na instalação do mysql, crie o seu banco de dados e vamos já upa a database.... Via ftp na pasta var/www/ renomeie usando o f2 o nome da pasta phpmyadmin para outro nome, qualquer um, eu particularmente sempre boto outros nomes, não deixo phpmyadmin, exemplo, 65fs98a97ds56aq. Upando a database, usando o shell vamos para a pasta onde se encontra o seu banco de dados, que enviamos via ftp, no caso, a pasta home: cd /home psenha Ae você bota a senha do seu mysql se você não sabe entre em contato com quem você alugou seu dedicado. mysql -u root -psenha No comando abaixo você bota o nome da sua database que criamos agora pouco na web. USE seubancodedados Aqui você bota o nome do arquivo.sql que enviamos por ftp: source arquivo.sql Só esperar finalizar após concluir ok, database upada pode conferir pelo seu navegador de internet como todas as tabelas estarão la do jeito que você configurou no windows. Galera ai o resto vocês já sabem sobre o config.lua,dados da database, senha, ip, rates, feito isso vamos pro site. Via ftp acesse sua pasta htdocs selecione todos os arquivos dentro dela e mande para a pasta var/www, quando concluir apenas altere o a seguinte arquivo, config.ini, em server path, altere, no caso ali o nome da pasta do meu OT é otserver: install = "no" server_path = "/home/otserver/" signatures = "0" Se tiver feito até agora tudo certo, o seu site vai estar funcionando perfeitamente. Go go go! Você já testou o server em sua casa, configurou a pasta data utilizando a mesma REV, pronto enviar a pasta via ftp substituindo a pasta que existe la. Feito isso vamos para o shell acesse a pasta do ot: cd /home/otserver ./theforgottenserver Se aparecer algo bla bla (Y or N?) digita Y e da enter. Ai vai abri normalmente aparece carregando o server se der algum erro vai dizer pra quem sabe ler vai ser moleza! Abriu o server entrou com seu god testou tudo ok, feche o server, ctrl+c, agora vamos abrir o server oficial pra não cair e poder fechar o shell sem cair o ot. Vamos nós, no shell volte para o root usando: Até voltar ao root: cd / Vamos adicionar um usuario: adduser tfs No caso ai o nome do usuário que estou adicionando é tfs, pode ser otserver, seu nome, você escolhe, quando você executa o comando vai pedi uma senha bote mesma da sua maquina da enter vai pedi seu nome pais e talz bota nada não só da enter ate finalizar o processo feito isso, OK. Agora baixe esse arquivo em seu computador extraia ele e envia por ftp para a pasta home/otserver: TFS.SH cd /home/otserver chmod 777 -R tfs.sh Feito né? Ok agora vamos abrir o OT pra ele não fechar e quando ele cair por algum erro ele volta sozinho. Em root utilizando o shell execute os comandos: Isso indica que você esta utilizando o usuario tfs: su tfs cd /home/otserver ./theforgottenserver.sh& Ai ele começa a carrega normal e pronto THE END. Caso queria fechar o server: su tfs cd /home/otserver ps x Vai aparece uma lista de coisas abertas e cada uma com o numero do processo: Pra fechar o server vai ter que mata dois processo, o bash e o tfs, ambos com interrogação do lado veja que tem dois bash killa somente o com a interrogação(?). Sempre primeiro o bash: kill -9 21748 Depois o server: kill -9 21750 Pronto. Recomendo para a proteção do seu site: Prevent DOS attacks on apache webserver for DEBIAN linux with mod_evasive1 ponto -
Como compilar seu client com molebox
Como compilar seu client com molebox
Desiriless reagiu a Antonio lucas por uma resposta no tópico
1 pontoEae ae blz leks do TK hoje vou ensinar como compilar seu client com o molebox 1ºBaixe instale e abra o molebox 2ºva em brower 3ºSelecione o arquivo .exe do seu client 4ºse vc quizer escolher o nome do seu client mude onde esta escrito Pack to 5ºclick em add file e escolha os arquivos .pic .dat e .spr 6ºclick em Pack To Box 7ºVai carregar uns treko e assim que termina vai aparecer isso 8ºpronto o arquivo vai tar na pasta em que esta o client original do seu ot Esse e meu primeiro tutorial se eu fiz algo errado mals ae Dowload do molebox:http://www.4shared.com/rar/DktdIb9cba/MoleBoxProv2612387Cracked-F4CG.html site do molebox pra vcs verem como e seguro '-' http://www.molebox.com/1 ponto -
Pokémon [Titanium]
Pokémon [Titanium]
xDark199 reagiu a ClaudioMarcio por uma resposta no tópico
1 pontoFala 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 todos1 ponto -
ShopGuild Points 100% add em player offline. Atualizado
ShopGuild Points 100% add em player offline. Atualizado
Rodrigo94 reagiu a Natanael Beckman por uma resposta no tópico
1 pontoObrigatoriamente leia tudo! Atualizado 01/07/2014 Opa galera mais uma vez eu trazendo o melhor para todos. Hoje vou postar o sistema de Guild de Points que eu utilizo em meu OTserver, acredito que dificilmente será encontrado por ae um tão completo e sem bugs igual o que será postado logo abaixo, é um sistema completo que é utilizado pelo líder da guild executando um comando que, se tiver de acordo com as regras que seram feitas por você, todos os membros da guild iram receber os pontos uma unica vez, lembrando que quando os pontos são adicionados a um player ele não receberá entrando em outra guild e não receberá criando outro personagem na conta, resumindo ele só receberá uma unica vez na conta e com um player só. E um dos detalhes que me causava dor de cabeça era que quando um líder executava o comando, quem estava online recebia os pontos, mais quem estava offline não recebia, isso acontecia normalmente porque tem guilds que contém 50, 70, 100 players, portanto nem sempre todos estavam online. O comando só pode ser executado uma vez por dia cada guild, para não gerar processamentos desnecessários e assim um mal funcionamento do servidor. Cada administrador pode configurar seu sistema da forma que quiser, por ser um sistema muito simples, você pode bota que todos os players estejam no minimo level x, que a guild só possa executar o comando quando estiver quantidade x de players online, isso é bom porque traz um certa dificuldade para fraudes de pontos, e o sistema só vira bagunça dependendo do que você vai oferecer no seu shop guild, eu particularmente só utilizei esse comando porque muitas guilds grandes pediam pontos, eles me cobravam uma quantidade x de pontos e eu cobrava uma quantidade x de player então pra automatizar o processo e não ter dor de cabeça foi feito todo esse sistema. Se você analisar bem vai ver que tudo isso só gera mais crescimento ao seu servidor. Bom, vamos ao sistema: Em talkactions.xml, adicione a tag abaixo: <talkaction words="!guildpoints" event="script" value="guildpoints.lua"/> Na pasta talkactions/scripts faça um .lua com o nome guildpoints e dentro dele adicione os coder abaixo: GuildPointsConfigs = { ExecuteIntervalHours = 24, NeedPlayersOnline = 10, NeedDiferentIps = 6, MinLevel = 80, AddPointsForAcc = 9 } function getGuildPlayersValidAccIDS(GuildID, MinLevel) local RanksIDS = {} local AccsID = {} local ValidAccsID = {} Query1 = db.getResult("SELECT `id` FROM `guild_ranks` WHERE guild_id = '".. GuildID .."'") if(Query1:getID() == -1) then return ValidAccsID end for i = 1, Query1:getRows() do table.insert(RanksIDS, Query1:getDataInt("id")) Query1:next() end Query2 = db.getResult("SELECT `account_id` FROM `players` WHERE `rank_id` IN (".. table.concat(RanksIDS, ', ') ..") AND `level` >= ".. MinLevel .."") if(Query2:getID() == -1) then return ValidAccsID end for i = 1, Query2:getRows() do local AccID = Query2:getDataInt("account_id") if #AccsID > 0 then for k = 1, #AccsID do if AccID == AccsID[k] then AddAccList = false break end AddAccList = true end if AddAccList then table.insert(AccsID, AccID) end else table.insert(AccsID, AccID) end Query2:next() end Query3 = db.getResult("SELECT `id` FROM `accounts` WHERE `guild_points_stats` = 0 AND `id` IN (".. table.concat(AccsID, ', ') ..")") if(Query3:getID() == -1) then return ValidAccsID end for i = 1, Query3:getRows() do local AccID = Query3:getDataInt("id") if #ValidAccsID > 0 then for k = 1, #ValidAccsID do if AccID == ValidAccsID[k] then AddAccList = false break end AddAccList = true end if AddAccList then table.insert(ValidAccsID, AccID) end else table.insert(ValidAccsID, AccID) end Query3:next() end return ValidAccsID end function onSay(cid, words, param, channel) if(getPlayerGuildLevel(cid) == 3) then local GuildID = getPlayerGuildId(cid) Query = db.getResult("SELECT `last_execute_points` FROM `guilds` WHERE id = '".. GuildID .."'") if(Query:getID() == -1) then return true end if Query:getDataInt("last_execute_points") < os.time() then local GuildMembers = {} local GuildMembersOnline = {} local PlayersOnline = getPlayersOnline() for i, pid in ipairs(PlayersOnline) do if getPlayerGuildId(pid) == GuildID then if getPlayerLevel(pid) >= GuildPointsConfigs.MinLevel then table.insert(GuildMembersOnline, pid) end end end if #GuildMembersOnline >= GuildPointsConfigs.NeedPlayersOnline then local IPS = {} for i, pid in ipairs(GuildMembersOnline) do local PlayerIP = getPlayerIp(pid) if #IPS > 0 then for k = 1, #IPS do if PlayerIP == IPS[k] then AddIPList = false break end AddIPList = true end if AddIPList then table.insert(IPS, PlayerIP) end else table.insert(IPS, PlayerIP) end end if #IPS >= GuildPointsConfigs.NeedDiferentIps then local ValidAccounts = getGuildPlayersValidAccIDS(GuildID, GuildPointsConfigs.MinLevel) db.executeQuery("UPDATE `guilds` SET `last_execute_points` = ".. os.time() +(GuildPointsConfigs.ExecuteIntervalHours * 3600) .." WHERE `guilds`.`id` = ".. GuildID ..";") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "".. #ValidAccounts .." Players received points") if #ValidAccounts > 0 then db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',') ..");") for i, pid in ipairs(GuildMembersOnline) do local PlayerMSGAccID = getPlayerAccountId(pid) for k = 1, #ValidAccounts do if PlayerMSGAccID == ValidAccounts[k] then doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You received "..GuildPointsConfigs.AddPointsForAcc .." guild points.") break end end end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only ".. #IPS .." players are valid, you need ".. GuildPointsConfigs.NeedDiferentIps .." players with different ips.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Has only ".. #GuildMembersOnline .." players online you need ".. GuildPointsConfigs.NeedPlayersOnline .." players online at least from level ".. GuildPointsConfigs.MinLevel ..".") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The command can only be run once every "..GuildPointsConfigs.ExecuteIntervalHours .." hours.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.") end return true end No coder acima bem no inicio tem as linhas seguintes para configurar: ExecuteIntervalHours = 24, ( Intervalo para execução do comando, ae está de 24 em 24hrs) NeedPlayersOnline = 10, (Quantos players é preciso está online para poder executar o comando.) NeedDiferentIps = 6, (Quantos IPS diferentes são necessários para executar o comando no exemplo ae tem 6.) MinLevel = 80, (Aqui adicione o level minimo, é necessário que todos os player da guild tenha o level pedido para o lider executar o comando.) AddPointsForAcc = 9, (Aqui é a quantidade de pontos para adicionar em cada player da guild.) Em data/globalevents/scripts crie um arquivo chamado shopguild.lua e adicione o code a seguir: local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE local SQL_interval = 30 function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_guildcomunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do local id = tonumber(result_plr:getDataInt("id")) local action = tostring(result_plr:getDataString("action")) local delete = tonumber(result_plr:getDataInt("delete_it")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while iter ~= container_count do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!") doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS GuildShop.') db.executeQuery("DELETE FROM `z_ots_guildcomunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shopguild_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS GuildShop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS GuildShop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return true end Em data/globalevents/globalevents.xml adicione a seguinte tag: <globalevent name="shopguild" interval="300" event="script" value="shopguild.lua"/> Certo, a parte do servidor é esta, ta feita, vamos adicionar a database o coder a seguir: ALTER TABLE `accounts` ADD `guild_points` INTEGER(11) NOT NULL DEFAULT 0; ALTER TABLE `accounts` ADD `guild_points_stats` INT NOT NULL DEFAULT '0'; ALTER TABLE `guilds` ADD `last_execute_points` INT NOT NULL DEFAULT '0'; CREATE TABLE `z_shopguild_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, `pid` INT(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`)) CREATE TABLE `z_shopguild_history_item` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `offer_id` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`)) CREATE TABLE `z_shopguild_history_pacc` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `pacc_days` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`)) CREATE TABLE IF NOT EXISTS `z_ots_guildcomunication` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13107; Olha estamos quase finalizando tudo, só precisamos terminar a parte de web. O meu GuildShop eu copiei meu shopsystem.php e fiz umas modificações, simples você pode fazer o mesmo é menos trabalhoso. Copie o shopsystem.php renomeie para shopguild.php, após abra-o e modifique como manda a seguir: shop_system para shopguild_system premium_points para guild_points premium points para guild points z_shop_offer para z_shopguild_offer shopsystem para shopguild z_shop_history_pacc para z_shopguild_history_pacc z_shop_history_item para z_shopguild_history_item z_ots_comunication para z_ots_guildcomunication Ou utilize este já pronto: shopguild.php O shopguildadmin.php está no link abaixo, basta fazer o mesmo procedimento: shopguildadmin.php Em index.php add: case "shopguild"; $topic = "Shop Guild"; $subtopic = "shopguild"; include("shopguild.php"); break; case "shopguildadmin"; $topic = "ShopGuild Admin"; $subtopic = "shopguildadmin"; include("shopguildadmin.php"); break; Vá em config.php adicione: $config['site']['shopguild_system'] = 1; $config['site']['access_adminguild_panel'] = 9; Vá em layouts.php adicione abaixo de buypoints: <a href='?subtopic=shopguild'> <div id='submenu_shopguild' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_shopguild' class='ActiveSubmenuItemIcon'style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Shop Guild</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Em layouts.php add depois do shopadmin: if($group_id_of_acc_logged >= $config['site']['access_adminguild_panel']) echo "<a href='?subtopic=shopadmin'> <div id='submenu_shopguildadmin' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)'onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_shopguildadmin' class='ActiveSubmenuItemIcon'style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'><font color=red>! ShopGuild Admin !</font></div> <div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div> </div> </a>"; Em shopsystem.php procure por: 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>'.$item_received['price'].' Points</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="6"><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>Cost</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.'; } } Troque por: 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>'.$item_received['price'].' Points</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>'; } } $itemsguild_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_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($itemsguild_history_received)) { foreach($itemsguild_history_received as $itemguild_received) { if($account_logged->getId() == $itemguild_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $itemsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$itemguild_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $itemguild_received['from_account']) $itemsguild_received_text .= '<i>Your account</i>'; else $itemsguild_received_text .= $itemguild_received['from_nick']; $itemsguild_received_text .= '</td><td>'.$itemguild_received['offer_id'].'</td><td>'.$itemguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $itemguild_received['trans_start']).'</td>'; if($itemguild_received['trans_real'] > 0) $itemsguild_received_text .= '<td>'.date("j F Y, H:i:s",$itemguild_received['trans_real']).'</td>'; else $itemsguild_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>'; $itemsguild_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>'; } } $paccsguild_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_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($paccsguild_history_received)) { foreach($paccsguild_history_received as $paccguild_received) { if($account_logged->getId() == $paccguild_received['to_account']) $char_color = 'green'; else $char_color = 'red'; $paccsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$paccguild_received['to_name'].'</font></td><td>'; if($account_logged->getId() == $paccguild_received['from_account']) $paccsguild_received_text .= '<i>Your account</i>'; else $paccsguild_received_text .= $paccguild_received['from_nick']; $paccsguild_received_text .= '</td><td>'.$paccguild_received['pacc_days'].' days</td><td>'.$paccguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $paccguild_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="6"><font color="white" size="4"><b> ShopServer 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>Cost</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($itemsguild_received_text)) $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b> ShopGuild 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>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$itemsguild_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> ShopServer VIP 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($paccsguild_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> ShopGuild VIP 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>'.$paccsguild_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(empty($paccsguild_received_text) && empty($itemsguild_received_text)) $main_content .= 'You did not buy/receive any items or PACC.'; } } Finalmente terminamos! Bom todo esse processo é feito só para facilitar tudo pra você e o player e pra diferenciar o Shop System do Shop Guild, porque um sustenta as despesas do server e o outro atrai player, porque pra conseguir player é preciso ter player. Galera acredito que não esteja faltando nada, espero que gostem e tudo que eu poder fazer para nossas melhoras estarei postando, me desculpem meus erros de português mais o que importa aqui é o script está correto, abraços! Créditos: Natanael Beckman LukeSkywalker (Raphael Luiz) .lua 100% Não proíbo ninguém de copia o tópico só peço que onde você adicione inclua os créditos mencionados.1 ponto -
[8.60]Baiak Barao Editado DeathRocks
[8.60]Baiak Barao Editado DeathRocks
Jeferson Fernandi reagiu a DeathRocks por uma resposta no tópico
1 pontoFala Ae Galera do TibiaKing Estou mais um vez disponibilizando um Baiak Barao que Acabei de Editar Espero Que Gostem Oque eu Mudei e Adicionei ? -| Novo Visual do Templo -| Aura System (comando !aura on) -| Task System -| Dodge System -| Run Event (CORRIDA MALUCA) -| Reset System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) para resetar fale !reset -| Guild Frags System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) -| War System (100% RODANDO EM SQLITE) -| Cast System (100% Roda em Mysql ) ( Para Ativar vai em Config.lua e ache | enableCast = false | mude para true ) Duvidas entrem em http://www.tibiaking.com/forum/topic/34609-add-cast-system-pra-quem-já-tem-os-códigos-na-distro/ -| PvP Balanceado -| Varios Eventos Automaticos -| Battle Field Event -| Capture The Flag Event -| Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES -| Itens DONATES -| Área DONATE ~~ (Só Entra Quem Usar o Itens) -| Vários Novos Script -| Fast Atk Arrumado -| Distro 0.4 Rodando 100% ( Se For 64x Bits) -| Refinamento ( Aprimora seu Item ) -| Level Points System Adicionado (Melhora Seu Skill) -| Frags no Look -| Npc Major Ancient (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS) -| Fly System Adicionado fale !fly -| e Muito Mais que Não Lembro -| CONFIRA ~~ ! -| SENHA DO GOD: barao/styller ~~ Algumas Imagens do Servidor ~~ CASTELO GFS Localizado na Barao City Castelo Reset System Localizado na Barao City Amostra do CASTLE War 24HORAS Vista por Cima CASTLE WAR 24 HORAS Vista por Baixo + Amostra de Invasão Donate Área Amostra de Itens Donate Amostra de Systema de Points Amostra do Refinamento TEMPLO -| Download http://www.4shared.com/rar/kv68Q66Hba/Baiak_Barao_Editado_By_DeathRo.html? -| Scan https://www.virustotal.com/pt/file/b036f248977d3b75e8fc205983b449a2fd68a942e62a48963adfcfa49fd954b8/analysis/1402686644/ -| Créditos Gostou ? então dei um +REP Não vai cair o Dedo1 ponto -
[Actions] Novo gold
[Actions] Novo gold
elielder reagiu a MatheusVidaLoka por uma resposta no tópico
1 pontoFala galera do Tibia King, hoje venho trazer um actions a vocês, queria dizer que essa action já é velha, mas dei uma olhada no TK e não vi nada a respeito da action, então decidi postar para vocês. Qual a função da Action? É um novo tipo de gold que cada um vale 1kk, funcionando normal nas compras e vendas de itens em npcs, e nas trocas de crystal coin para o golda nugget (novo gold). Bom vamos ao script. Vá em data/actions/scripts e abra o arquivo crystal.lua, apague tudo o que está dentro, logo em seguida cole o script abaixo: Traduzindo: Vermelho: É o id da crystal coin, e a quantidade a ser trocada por 1 gold nugget (Novo Gold). Azul: É o id da gold nugget, e a quantidade de gold nugget. Logo em seguida, vá novamente em data/actions/scripts copie qualquer arquivo.lua e cole, em seguida renomeie-o para "goldnuggets" sem aspas, abra-o, apague tudo, e cole o script abaixo. Traduzindo: Laranja: É o que vai dizer quando o player trocar 1 gold nugget por 100 crystal coins. Verde: É o id da crystal coin, e a quantidade equivalente a 1 gold nugget. Logo em seguida, abra data/actions/actions.xml e adicione a tag abaixo. Traduzindo: Rosa: É o id do gold nuggets. Azul: O nome do arquivo.lua que você salvou. Depois disso abra data/items/items.xml, aperte CTRL + F, e digite 2157, ai você vai achar o item Gold Nugget que vai estar assim: Substitua tudo por isso: <item id="2157" article="a" name="gold nugget" plural="gold nuggets"> <attribute key="weight" value="10"/> <attribute key="worth" value="1000000" /> Traduzindo: Vermelho: Peso do gold nugget. Azul: Valor do item (como 1 crystal coin = 10k , 1 gold nugget = 1kk) Logo depois vá data/actions/scripts/other e abra o arquivo changegold.lua, susbistitua tudo oque está la dentro por esse script a seguir, e salve: -- By MatheusVidaLoka local coins = { [iTEM_GOLD_COIN] = { to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW }, [iTEM_PLATINUM_COIN] = { from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE }, [iTEM_CRYSTAL_COIN] = { from = ITEM_PLATINUM_COIN, to = 2157, effect = TEXTCOLOR_LIGHTBLUE }, [2157] = { from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL } } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then return false end local coin = coins[item.itemid] if(not coin) then return false end if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, coin.to, 1) doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect) elseif(coin.from ~= nil) then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect) end return true end Traduzindo: Vermelho: É o id do Gold Nugget. Por fim vá em data/actions/actions.xml, pule uma linha qualquer e cole isso, e salve: <action itemid="2157" event="script" value="other/changegold.lua"/> Traduzindo: Azul: É o id do gold nugget. Verde: O nome do arquivo que você salvou. Server testado em Ot 8.60 e funcionou corretamente. Creditos: MatheusVidaLoka JFLNT Se enfringi alguma regra do TK por favor me reporte. Desculpe-me pelos mal usos das ferramentas do TK (quotes,spoiler,CODES,etc) pois estou com certos problemas.1 ponto -
[8.6X] Yalahar
1 pontoYalahar 8.6 cordenadas: x=32786, y=31276, z=7 Download: Yalahar V2 LZO.rar Depois edito e coloco NPCs e scripts... Creditos: Emporia Vapus Team Cipsoft1 ponto
-
[GlobalEvents] ServeSave - Shutdown/Automático
[GlobalEvents] ServeSave - Shutdown/Automático
premii reagiu a Natanael Beckman por uma resposta no tópico
1 pontoGalera é um script muito simples, porém pra mim é muito ÚTIL. Abra a pasta data/globalevents/scripts crie um arquivo .lua com o nome GlobalSave.lua, em seguida adicone o code: function prepareShutdown(minutes) if(minutes <= 0) then doSetGameState(GAMESTATE_SHUTDOWN) return false end if(minutes == 1) then doBroadcastMessage("Server is going down in " .. minutes .. " minute for global save, please log out now!") elseif(minutes <= 3) then doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save, please log out.") else doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save.") end shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1) return true end function onTime() return prepareShutdown(5) -- Quantos minutos pra executar o ServeSave. end Ajustes: Quando quiser modificar os minutos altere: -return prepareShutdown(5) - (5) = 5 minutos, eu recomendo no mínimo 5 minutos, em outras palavras não mexa. Em globalevents.xml adicione a tag seguinte: <globalevent name="GlobalSave" time="05:30" event="script" value="GlobalSave.lua"/> No meu ServeSave é feito as 05:30 da manhã, modifique pro horário desejado! Em config.lua verifique essa regra: Se tiver TRUE deixa, assim ele fecha o .exe se não tiver no seu config.lua não tem problema closeInstanceOnShutdown = true - - - Esse tutorial é só isso, clique em GOSTEI, e comente no tópico, muito obrigado! -------------------------------------------------------------------------------------------------------------------------------------------------------- AUTO RESTART -------------------------------------------------------------------------------------------------------------------------------------------------------- Pra você que utiliza Windows esse é perfeito: Dezon OT Admin [restarter] Pra você que utiliza Linux: Baixe esse arquivo, TFS.SH, bote dentro da pasta do seu OT. Esse arquivo está configurado pra abrir outro arquivo chamado tfs caso o seu seja outro nome mude pra esse, tfs. Sempre que for abrir seu OT execute esse comando ./tfs.sh& e assim toda vez que o OT cair ele renicia automaticamente.1 ponto -
[ Pedido ] Base OtPokemon XY
[ Pedido ] Base OtPokemon XY
Cedraul reagiu a The Lord Kikoz por uma resposta no tópico
1 pontoAlguem Teria a BASE do otpokemonxy.ddns.net Se Tiver Me Passa Awe Pf Ou a Base Do Otpokemon.com pf as duas são praticamente Iguais Ambas Tem Varios Sistemas Legais se alguem Ajudar Rep++1 ponto -
[PDA] Arrumando a Dex!
1 pontoBom galera eu estava tentando arrumar a dex do pda porque quando você tenta adicionar novos pokes de outras gerações eles simplesmente não apareciam na dex ou no comando /dex, bom com essas gambiarras modificações que eu fiz está dando certo e não vejo nenhum erro (até agora). bom vamos as scripts: data>actions>scripts>pokedex.lua substitua todo o arquivo por esse: agora vá em data>creaturescripts>scripts>newpokedex.lua e substitua tudu por esse: function onSay(cid, words, param, channel) if param == "" then doPlayerSendCancel(cid, "Por Favor, digite /dex <name of pokemon> para ver se possui ele em sua dex.") return true end if string.lower(param) == "nidoran" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Type either \"Nidoran Male\" or \"Nidoran Female\".") return true end for a = 1, 479 do if string.lower(param) == string.lower(oldpokedex[a][1]) then if getPlayerInfoAboutPokemon(cid, oldpokedex[a][1]).dex then doShowPokedexRegistration(cid, oldpokedex[a][1]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esse pokemon ainda não foi descoberto.") end return true end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nome errado de pokemon.") return true end agora vá em data>lib>catchsystem.lua e procure essa função \/ function isPokemonInOwnList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).catch then return true end return false end e por ultimo na pasta lib msmo mude seu pokedex system por esse e essa é quando o player da dex em si mostrando o total de pokes descobertos e seus catchs (catch é mostrado pelo simbolo (.) do lado do nome do poke) ah é claro a newpokedex e oldpokedex do configuration.lua, não se esqueçam de adicionar as storages certinho em! bom se aparecer alguma mensagem assim na distro 'Sheer Cold Faltando' você deve adicionar o move (sheer cold) no arquivo moves.lua da pasta lib Bom é isso galera, não sou scripter tudo que sei aprendiz lendo elas e tentando algumas coisas, se tiver algum erro ou duvida perguntem que eu irei tentar dar suporte o máximo possível e é claro no meu limite de conhecimento das scripts. Bjundao pra todos e bom uso1 ponto
-
[8.60] Mega-War OT
1 pontoMega-War (Original) By Thiagobji Olá galera, eu estava procurando esse OT Server aqui no TibiaKing e não achei, então, eu fui dá aquela velha procurada no meu PENDRIVE (Meu pendrive eu guardo tudo), então, foi lá que eu encontrei o Mega-War lá. Bom, todos conhecem ou já ouviu falar do Mega-War, é um servidor muito bom, com muitas quantias de player's online, e está online a um tempão. • Cidades: • Speedy War (City Principal) Desert City Pandang City Carlin City • Oque contêm no Servidor: • Evento Dota Distro Global-Compacto Várias Citys para War City VIP e ITENS VIP Configurados Trainers free e Trainers VIP Quest VIP Servidor SQLITE (Só testei em sqlite, acho que pegue em mysql também) • Créditos • Não sei, como eu disse, eu achei o Servidor no meu PENDRIVE e não encontrei o tópico nem download desse servidor pra baixar. • Download e Scan • Download Scan É isso galera, bom aproveito do servidor. Fotos abaixo \/ • Imagens •1 ponto
-
Envio.php Confirmando a Doação direto pro seu e-mail.
Envio.php Confirmando a Doação direto pro seu e-mail.
Thunder Black reagiu a Natanael Beckman por uma resposta no tópico
1 pontoOpa galera do TibiaKing, eu mais uma vez trazendo um bom e útil tutorial. Esse tutorial é pra quem tem a necessidade de uma pagina que confirme uma doação feita e automaticamente essa confirmação seja direcionada ao e-mail do administrador! Bom galera é um php simples, não tenho muito conhecimento com php, o que estou postando agora foi o resultado de algumas pesquisas e pouquinho de dor de cabeça mais saiu do jeito que eu queria. OBS: A imagem anexada chega no seu e-mail como um arquivo sem formato mais pode abrir com o Paint ou o Visualizador de imagem que abre normal! Lembrando que é obrigatório e necessário que toda parte de apache, php e send-mail estejam funcionando corretamente no seu servidor, como eu utilizo Linux apenas instalei apache2, php5 e sendmail. Comandos que eu utilizei no Linux: apt-get install apache2 apt-get install php5 apt-get install sendmail killall -9 apache2 /etc/init.d/apache2 start Outra coisa, dificilmente esse sistema funcione no seu computador, localhost, é necessário um configuração adequada, eu utilizo um servidor dedicado não tive dor de cabeça em relação a isso. Vamos ao que interessa... Crie dois arquivos .php chamados, confirmar.php e enviar.php, adicione os dois na pasta htdocs ou quem usa linux pasta www, quem utiliza o Novo Gesior ACC joga o confirmar.php na pasta pages e o enviar.php na pagina htdocs ou www. Dentro do arquivo confirmar.php você adiciona os seguintes code: http://localhost'; </script>" ; // Site do seu server } ?>1 ponto -
[8.60] The Forgotten Server 1.2 - SUPORTE PARA 8.6
The Forgotten Server 1.2 - Suporte para versão 8.6 Baseado na última atualização do The Forgotten Server. Não foi testado completamente, por isso, seja cauteloso ao usar. O datapack não é totalmente compatível com 8.6 (ainda precisará remover ids mais recentes, monstros, magias, etc). GitHub: https://github.com/ninjalulz/forgottenserver/tree/8.6 Créditos Ninjalulz1 ponto
-
O atual cenário OTserv
1 pontoTambém dei uma boa olhada naquele mapa, fantástico! Aparentemente o que move os jogadores hoje em dia não é o mapa e sim a facilidade eu creio. Então, você jogaria um servidor com uma stage inicial "relativamente fácil" algo em torno de 60-10x de inicio e algo como 2x no final? tendo em vista que o servidor te apresentaria um bom mapa, completo, bem detalhado e com um bom toque de RPG?1 ponto
-
O atual cenário OTserv
1 pontoEu baixei o mapa do servidor Eternal Kingdoms e fiquei abismado com o extremo detalhismo que eles tinham no mapa. Não havia um canto de cave que não teria uma teia de aranha, ou um recinto abandonado cheio de rachaduras e grama no solo. É de se admirar o trabalho desse mapper. Claramente se vê que foi feito pelo gosto do jogo e não por lucro. Todos deveriam seguir essa linha de raciocínio.1 ponto
-
O atual cenário OTserv
1 pontoOlá Rafa, agradeço pela sua participação nesta conversa. Então, eu concordo plenamente com você, sou jogador OldSchool e me incomoda ver que a vontade de jogar um Servidor Custom da maioria dos players simplesmente sumiu, eu por exemplo, estou num projeto a quase 1 ano para criar um servidor com a rate hard e com mapa custom e não sei o que esperar depois de um oficial release, claramente não tenho interesse em lucro, o que gostaria de ver é aquele cenário de 2006 - 2010 dos servidores de volta, onde você conseguia manter um server custom com hard exp online e o mais importante, trazendo satisfação ao seus players. Olá Larissa, satisfação te-la aqui na conversa. Eu já fui um dos que compartilhei dessa linha de raciocínio, porem, eu seria muito grato e com certeza seria um dos players de um servidor que ousasse mudar, ousasse pensar diferente da maioria e que conseguisse atrair um publico fiel oferecendo nada mais do que um bom servidor, com estabilidade e uma estrutura adequada que passe confiança para os players, afinal, você está doando seu tempo para algo difícil, você não quer que aquilo simplesmente acabe e seu esforço tenha sido em vão. O que você buscaria em um Servidor?1 ponto
-
O atual cenário OTserv
O atual cenário OTserv
Villarinho reagiu a Tricoder por uma resposta no tópico
1 pontoNa minha opinião, assim como de outras também porque já vi o mesmo tipo de pensamento: "Se for pra jogar em um servidor 2x, prefiro ir para o Global." Mas também, sempre joguei em servidores high exp, agora que estou acostumando com exp 30x+1 ponto -
O atual cenário OTserv
1 pontoAcho muito difícil um crescimento rápido de um servidor com mapa próprio. Eu por exemplo, cansei de mapas baiak's mas não me vi completo o suficiente trabalhando com um mapa global, então estou criando um mapa do zero< já sabendo que pouca gente irá ter aquela ânsia de curiosidade pra explorar o que eu tenho eu mente... Querem uma hunt com respawn bom, não precisa nem ser detalhado, só querem um lugar grande pra largar o elfbot... Enfim, edito por que gosto e nada mais do que isso. Se tu quer visar lucro, já é outra história. Eu viso satisfação pessoal.1 ponto
-
Área de discussão - enquete
1 pontoBrother, creio que ot com exp baixa conta muito com o rpg (Eu Curto) ! porem hoje em dia tem muitas pessoas acostumados a upar fácil em certos OTservers, isso acaba influenciando as pessoas á preferirem a opção mais "fácil" do que "se matar para upar ". Então, prefiro fazer umas rates nem muito fácil nem difícil ! assim ha um equilíbrio de level e acontecera uma briga boa pelo top !1 ponto
-
[Tutorial] Templo
1 pontoTutorial Templo ~~ Eai galera tudo bom? Hoje vim ensinar a montar um templo. Templo é a base de um Ot, sempre que for montar um mapa próprio comece pelo templo, pois o Jogador nascerá lá.Alguns ot's o Jogador terá mais de um Local para nascer , por exemplo Global , você pode ser de Carlin,Thais e etc O templo é muito importante,não é porque seu ot vai ter um local que o jogador vai nascer ai você pensa assim "Ah. não vou fazer outro templo" então não irá ter cidades no seu Ot?Templo é um local sagrado, toda cidade deve ter pode ser em cima de uma Cachoeira, pode ser deserto,gelo,fogo,destruído e oque for.Mas tem que ter um Templo. Exemplos de Templos: VictorFT (Templo com Nature e sem Nature Normal) Alissow (Templo Com Nature) Vital900 (Templo Agradável) AnneMotta DuMal Começando Seu Templo Primeiro Passo : faça a base do Seu templo, uma estrutura legal meio que agradável e bonita não precisa ser tão grande mas como o Alissow disse Cidades grandes tem que ter Templos Grandes cidades pequenas templos pequenos, então utilize diversas Wall's. Faça algo coerente não faça Quadrado e nem faça com Auto Border. Segundo Passo:Agora fazendo uma ideia bem rápida não irei escrever muita coisa nesse Passo, apenas veja a imagem que você irá entender. Terceiro Passo: Utilize a ideia do Segundo Passo fora do templo , e adicione framework wall (id: 10228) ,e vá colocando na parte do seu templo até ficar assim , fica bem legal , então vamos fazendo assim em todo os andares do templo,você pode escolher outra wall se quiser mas eu acho mais legal pra esse estilo a FrameWork Wall! Ficará assim: Quarto Passo: Adicione outras wall's no andar superior ficará igual a imagem abaixo. Como podem ver eu fiz um ArchWay Grande (id: 1122/1123/1124/1125) ficará desse jeito.Fica bem legal né ? Se quiser fazer um templo mais 'Bruto' você pode usar Gate's eu acho mais 'bruto' , mas é com você. Quinto Passo: Adicione limestone pillar, para ficar legal e destacado , e não vai deixar 'repetitivo' , mas Victor como assim 'repetitivo' . Por exemplo um templo não precisa ser quadrado completamente, deixar algumas 'dobras' com tanto que fique Bonito. Quinto Passo: Adicione uma escada no Meio e principalmente adicione as Frame's Works para deixar seu templo bonito e agradável, como podem ver eu adicionei uma Parede em frente a escada, isso é bem legal e bonito, para ficar 'elegante' bote lit wall lamp (id: 2040) Sexto Passo: Faça o outro andar , aqui não tem muita coisa para explicar , se estiver fazendo um Templo igual o meu só copiar, mas faça assim é a base de alguns Templos de Cidade Grande. Sétimo Passo : Agora igual o Quarto passo adicione Limestone pillar e Stone Archway (id: 916/917) faça algo onde o pessoal irá ver a paisagem pense igual na Vida Real para fazer algo bonito mas 'transforme' essa ideia em Tibia.Como podem ver a Ideia do segundo Passo Está completa neste Andar, Eu adoro essa ideia acho bem interessante.E adicione Umas frame work's e uma ' Cortina ' daqui a pouco vocês irão entender pra que usar está 'Cortina'. Oitavo Passo: Não irei ficar neste andar por muito tempo , então vou explicar bem rápido.Neste andar adicione o telhado 'Yalahar', algumas Stone ArchWay, metal fittings, outra Cortina e algumas Gate's ( id: 9940/9943/9939 ) , para ficar bonito também adicione LimeStone Pillar. Nono Passo: Último andar que o jogadores vão chegar e irão nascer, adicione os telhados Yalahar's, e algumas Paredes. Se lembra da cortina? Nossa cortina terá o Inicio aqui.Adicione uma estátua, um piso diferente onde o Player irá nascer.E como eu disse desdo início do Tópico adicione Frame Work's para dar outro Estilo. E Em cima adicione mais um Telhado Resultado Final: Ficou até que legal já fiz melhores, porém tem um bug, mas é isto oque devemos fazer Chegar até o Resultado final assim.Fazer um templo bem legal e agradável. Então é isso o Tutorial de Templo, Obrigado a todos. Se quiser contato comigo adicione no msn: [email protected] Skype: Victor.fernandes.t Créditos: VictorFT (Fotos,texto e mapa) DuMal (Ideia do Templo) Obrigado. Att. VictorFT1 ponto
-
[REMAKE] Sematico's Styller - YourOTS
[REMAKE] Sematico's Styller - YourOTS
luanluciano93 reagiu a Sematico por uma resposta no tópico
1 pontoFórum está meio parado... Então vou tentar dar uma movimentada! ____________ Essa aqui é a continuação da hunt de Dragons do post anterior. Tirar parte da montanha que circulava o lugar realmente melhorou tudo, ficou mais aberto e bem mais realista. Espero que gostem! ANTES: DEPOIS: -- Continuarei com essa hunt no próximo post!1 ponto -
(Resolvido)[PEDIDO] Talkaction TFS 1.0 - Comando !online
(Resolvido)[PEDIDO] Talkaction TFS 1.0 - Comando !online
VitorNM reagiu a luanluciano93 por uma resposta no tópico
1 pontofunction onSay(cid, words, param) local player = Player(cid) local hasAccess = player:getGroup():getAccess() local players = Game.getPlayers() local playerCount = Game.getPlayerCount() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, playerCount .. " players online.") local i = 0 local msg = "" for k, tmpPlayer in ipairs(players) do if hasAccess or not tmpPlayer:isInGhostMode() then if i > 0 then msg = msg .. ", " end msg = msg .. tmpPlayer:getName() .. " [" .. tmpPlayer:getLevel() .. "]" i = i + 1 end if i == 10 then if k == playerCount then msg = msg .. "." else msg = msg .. "," end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) msg = "" i = 0 end end if i > 0 then msg = msg .. "." player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg) end return false end1 ponto -
PLAYERS GANHAM 2 DAYS DE VIP AO PASSAR NA AREA VIP
PLAYERS GANHAM 2 DAYS DE VIP AO PASSAR NA AREA VIP
matheuswell reagiu a luanluciano93 por uma resposta no tópico
1 pontoO 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 → Suporte OTServ → Suporte de OTServ Geral" Para: "OTServ → Suporte OTServ → Suporte de Scripts"1 ponto -
Dezon OT Admin [restarter]
1 pontoAqui realmente funcionou, não houve os erros mencionados acima, reputado. -- EDIT -- Se isso for considerado flood me desculpa, não percebi a data da última mensagem, realmente foi sem querer... É que achei muito útil o utilitário e gostaria de incentivar o responsável.1 ponto
-
(Resolvido){Pedido} Potions curando % do HP e mana
(Resolvido){Pedido} Potions curando % do HP e mana
NathanAmaro reagiu a MaTTch por uma resposta no tópico
1 pontoSim, mas tem um porem, o script que fiz é mais simplificado que os tradicionais que vem com o servidor. Ele por exemplo não cria Splash e nem frascos vazios. Se quiser que eu adicione isso só falar.1 ponto -
(Resolvido){Pedido} Potions curando % do HP e mana
(Resolvido){Pedido} Potions curando % do HP e mana
NathanAmaro reagiu a MaTTch por uma resposta no tópico
1 pontoVocê sabe onde colocar, certo?1 ponto -
Frag Remover
Frag Remover
luanluciano93 reagiu a VitorNM por uma resposta no tópico
1 pontoaleluia encontrei um que funcionasse, de verdade luan, salvando sempre hahah vlw brother Rep+1 ponto -
[Pokemon Open-Source] Pokemon Ex 3.0
[Pokemon Open-Source] Pokemon Ex 3.0
KinG DarKensBerG reagiu a Gabrieltxu por uma resposta no tópico
1 pontoOlá a todos , vim atravez deste topico postar a minha possivel ultima contribuição , enfim sobre o conteudo , Pokemon Ex foi feita em cima do Pokemon Dash , entao sim ela é meio antiga , porem contem coisas que ninguem ainda tinha liberado , uma dessas coisas é o Nick system , claro ainda falta alguns ajustes mas é na parte lua , o codigo já está na source e compilado no exe do servidor OBS: Nao modifiquei quase nada nele , como peguei estou postando , sim contem bugs , mas para isso vou deixar as informações logo abaixo , Nao se esqueça de deixar aquele Like que ja ajuda muito ... nao seja um sangue suga ... INFORMAÇÔES BASICAS: - Base Pokemon Dash - Nick System 90% - Ditto System - Novas Pokeballs umas 4 - Novo mapa com a regiao de Johto adicionado (MAPA COM 70 MB UNICO) - Novos Npcs - Falta colocar remakes - Contem um site basico que peguei do xitiba na pasta do servidor - Client está dentro da pasta do servidor - os Criadores deixaram algumas lista ao que tem que se fazer ao servidor - Alguns tutoriais para quem ainda é iniciante dentro da pasta do servidor - BUG CHATO - é que os criadores tentaram criar um sistema de task mas enfim bugaram a xp , eu nao arrumei deixei como está , mas isso se encontra em creaturescripts - Vip system que da +XP ao personagem - Gym system ainda beta nada terminado - ENTRE VARIAS OUTRAS COISAS , Baixe já o servidor e deixe o seu feedback .... OBS: NAO DAREI SUPORTE A ESTE SERVIDOR. IMAGENS: Estou sem tempo para tirar prints , então favor quem baixar postar algumas prints DOWNLOAD (Client + Source + Site está tudo junto): lembrando que nao precisa do site para abrir o servidor https://www.mediafire.com/?kqn3c5tbfyhwnbu SCAN (Como o arquivo é grande tirei print do meu avast buscando por virus no arquivo): executável e dll's site pokemon servidor pasta PokemonEX 020611 - imagens e sprites CREDITOS: Todos que participaram desse servidor (nao sei o nome de ninguem) EU - Por ter compartilhado o conteudo OBS: Se for postar em outro forum favor poste junto com os créditos.. Entao é isso falei tudo que eu tinha que falar , volto a repitir , é antigo e contem bugs , mas é uma otima base , faça bom proveito ...1 ponto -
Hunt/Castle
Hunt/Castle
otteN reagiu a Spraypaint por uma resposta no tópico
1 pontoDownload:Mapa Scan: Mapa Obs:Fico uma coisa bem simples, uma passagem mediana com uma especie de castelo no final.Quem quiser ver mais imagens e so abrir o spoiler!vlw1 ponto -
Qual melhor servidor low exp atualmente?
Não sabia onde postar então postei aqui. Na opinião de vocês, qual o melhor servidor low exp para se jogar atualmente? E por quê? Estou interessada em jogar em um, porém, não faço de idéia de qual. Obrigada!1 ponto
-
[Pokemon Open-Source] Pokemon Ex 3.0
Em nome da comunidade do TK, muito obrigado pela contribuição! Seu tópico de conteúdo foi aprovado e será movido para a seção adequada. Você ganhou 1 REP+!1 ponto
-
Matar o boss, e abrir nova area ou portal
Matar o boss, e abrir nova area ou portal
Black Fenix reagiu a Pedro. por uma resposta no tópico
1 pontoárea correta seria suporte de scripts, daqui a pouco alguém direciona pra lá. tente assim; crie um tp.lua em creaturescript e adicione isso lá. local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end - Tutorial - ["Orshabaal] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script>1 ponto -
Scripts by Diabolic
Scripts by Diabolic
rikardoTibiabrbot reagiu a Bruno Minervino por uma resposta no tópico
1 pontoFala galera, venho aqui trazer pra vocês todos meus scripts de iBot. Como eu parei com iBot ja faz um tempo, não sei se estão todos 100%, quem quiser testar e me dar um feedback eu agradeço. [Knight] Yalahar Bog Raider - 100% [Knight] Brimstonebugs Surface - 100% [Knight] Lizards Mortal Combat - 100% [Mage] Oasis Tomb - 100% [Mage] Demon Yalahar (somente hunt) Postman Quest (não fui eu que fiz) Download https://www.dropbox.com/s/eeb8lcg436g7jaa/scriptsiBotByDiabolic.zip1 ponto -
Recentes Trabalhos - Mapping
1 ponto
-
Item que da HP máximo bonus
Item que da HP máximo bonus
Bluetooth reagiu a abugaduniga por uma resposta no tópico
1 pontoE ae pessoal! vi em otro tópico essa duvida, porém o carinha resolveu sozinho e nao quis compartilhar o script! Então fuçei um poco e descobri como colocar isso aew! Item HP By Abugaduniga Testado em otserv 8.6 TFS 0.36 1º Passo Coloque a seguinte linha no arquivo Items.xml no item que voce deseja que tenha este bonus: <attribute key="maxhealthpoints" value="100"/> Onde Value é a quantidade de HP que voce quer que o item dê de bonus EXEMPLO: Peguei o item coat(2651) e modifiquei ele para dar um bonus de 50 HP maximo Lembre-se do tipo de slot do item! isto é muito importante! <item id="2651" article="a" name="coat"> <attribute key="weight" value="2700" /> <attribute key="armor" value="1" /> <attribute key="slotType" value="body" />, <attribute key="maxhealthpoints" value="50"/> </item> 2º Passo Isto deve ser colocado em movements.xml <movevent type="Equip" itemid="2651" slot="body" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="2651" slot="body" event="function" value="onDeEquipItem"/> onde itemid="2651", Substituir 2651 pelo id do item que você modificou no 1º passo. onde slot="body" , Substituir pelo tipo de slot do item que você modificou no 1º passo. isso aew galera, se foi útil rep+ se nao foi util, rep+ pq deu trabalho! Qualquer dúvida ou bug, tamo ai pra isso! posta no tópico!1 ponto -
Como Ingnorar Monstro no Magebot
1 pontoVou ensinar como ingnorar um montro no magebot Primeiro vai em monster list procure o bixo que vc n quer atacar e poe isso na frente ;99 EX: bonebeast;exori flam;99 Se foi util da um rep+1 ponto
-
Ajuda Para achar sevidor Poke zot
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 → Servidores Derivados" Para: "OTServ → Suporte OTServ → Suporte de Servidores Derivados"1 ponto
-
(Resolvido)Script para Teleportar para Templo !
(Resolvido)Script para Teleportar para Templo !
Silveira reagiu a Alencar123 por uma resposta no tópico
1 pontoTenta esse:1 ponto -
Volatile Spiderling
Volatile Spiderling
Uchira Senju reagiu a xWhiteWolf por uma resposta no tópico
1 pontoé uma spell realmente muito foda e muito útil em servidores de RPG... só fiquei meio triste porque dos 14 usuários que viram o tópico apenas dois curtiram :/ achei que ia fazer mais sucesso1 ponto -
[Gesior] Widget Top Level BOX
1 pontoarrumei soh trocar .$config['site']['players_group_id_block']. por 2 no script1 ponto