Ir para conteúdo

Weslley Kiyo

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    Weslley Kiyo recebeu reputação de NelaMesmo em Porta que abre com chave   
    Não é assim...
    Olha só, vou por algumas imgs de como configurar
     
     
    Você precisa de uma porta Locked e deixar o ActionID dela igual na img (O actionID da porta precisa ser o msm ActionID da chave para ela abrir) - como mostra a imagem:

     
    Para setar o ActionID na chave, existem 3 maneiras.
     
    1 - Você cria uma quest com a key, como na imagem:

     
    2 - Você cria um npc que pode vender a key ou fazer alguma quest no npc para ganha-la, fica ao seu critério. Usando esse código:
    if msgcontains(msg, "key") then npcHandler:say("Do you want to buy the Key to Adventure for 5 gold coins?", cid) npcHandler.topic[cid] = 4 elseif npcHandler.topic[cid] == 4 then if msgcontains(msg, "yes") then if getPlayerMoney(cid) >= 5 then npcHandler:say("Here you are.", cid) doPlayerRemoveMoney(cid, 5) -- money local key = doCreateItemEx(2088, 1) -- key (null) doSetItemActionId(key, 4600) -- actionID (key) doPlayerAddItemEx(cid, key, 1) -- key (actionId) else npcHandler:say("You don't have enough money.", cid) end elseif msgcontains(msg, "no") then npcHandler:say("As you wish.", cid) else npcHandler:say("Only nonsense on your mind, eh?", cid) end npcHandler.topic[cid] = 0  
    3 - Você pode setar a ActionID com o GOD:
     
    /attr ActionID, 4600
  2. Gostei
    Weslley Kiyo recebeu reputação de thelifeofpbion em Servidor Global (o 8.60 mais completo)   
    Funcionando 100%
     
    - Banshee quest 100% global
    - Kissing a Pig Quest 100% global
     

  3. Curtir
    Weslley Kiyo recebeu reputação de Heyron em Duvida open tíbia   
    Não vale a pena abrir mapa custom.
    Se optar por Baiak ou Global, vai depender do balanceamento, hospedagem e qualidade da administração.
     
    Não pense em abrir um servidor com medo de não pegar jogadores.
    Invista em marketing, invista no host, invista em proteção DDoS e jogadores novos. Se optar por log alto, invista em times grandes que vão entrar em seu servidor.
     
    Um time de jogadores que procuram PvP não vai escolher seu servidor por ser livres de bugs mas pelo pvp balanceado.
    Mas lembre-se que esses tipos de jogadores mudam constantemente de servidor. Você deve segura-los pois são eles que vão manter seu log alto. Mas não esqueça também de investir em jogadores maduros que se importem com o suporte e updates do seu servidor.
     
    O chato de abrir servidores hoje em dia é que sempre vai entrar um ou outro jogador perguntando quantos pontos você vai dar para o time dele caso ele traga X PLAYERS para o servidor.
     
    Eu também já abri um servidor sem itens VIP e muitos reclamavam pela falta de arma ou boots VIP. Sim, eles reclamavam por isso kkk
    Acho que jogadores que pagam, curtem ter uma enorme vantagem contra jogadores FREE, isso em todos os games.
     
    Toma bastante cuidado com esse servidores free disponibilizados, muitos possuem bugs.
    Um exemplo de bug: - Você usa uma pick ou só clica em uma pedra em venore e ganha 1 golden helmet. - Você vai em ankrahmun, usa shovel no buraco e ganha 1kk. São vários os bugs. É difícil achar pois muitos estão junto à outros scripts.
    TOOLS.PICK = function(cid, item, fromPosition, itemEx, toPosition) if (itemEx.actionid == 10000) and (itemEx.itemid == 355) then doTransformItem(itemEx.uid, 392) doDecayItem(itemEx.uid) doSendMagicEffect(toPosition, CONST_ME_POFF) elseif (itemEx.itemid == 382) -- EXEMPLOO DE BUG doPlayerAddItem(cid, PUMPKIN1, 100) -- EXEMPLOO DE BUG (ele vai esconder a variável no script, PUMPKIN = 2160 EXEM) return true end if(itemEx.itemid == 7200) then doTransformItem(itemEx.uid, 7236) doSendMagicEffect(toPosition, CONST_ME_BLOCKHIT) return true end if (itemEx.actionid == 42148) and (itemEx.itemid == 1304) then doRemoveItem(itemEx.uid) doSendMagicEffect(toPosition, CONST_ME_POFF) if isPlayer(cid) then doCreatureAddHealth(cid, -60) doCreatureSay(cid, 'You lose 60 hitpoints.', TALKTYPE_ORANGE_1) end end ret  
    aah, existe também um macete que eu usava e muitos outros tenho certeza que faziam o mesmo.
     
    Você abre um servidor qualquer com seus itens.XML, spells e rates (o mapa pode ser baiak pois lota mais rápido).
    Deixa tudo free e vai observando oq os players gostam.
    Vai atualizando e balanceando.
    Em seguida, fecha e abre o mesmo servidor com outro ip e nome (pode mudar o mapa ou edita-lo para não parecer que é o mesmo).
    Faz a mesma coisa novamente. Vai fazendo até que você chegue no balanceamento ideal.
     
    Em seguida, pode abrir o seu. Você também pode arriscar em manter o IP do antigo servidor no seu atual para puxar os jogadores (é arriscado pois muitos vão reclamar e fazer bagunça no servidor).
     
    Opte por eventos automáticos para você não fazer algo errado e tornar o evento desequilibrado.
    Teste tudo antes de lançar algum update ou evento. Lembro de um servidor onde o ADM fez uma invasão...
    A xp do servidor era stages, ao matar o boss, os players level 300 pegaram apenas 2~3 leveis pela xp ser 2x. Já os jogadores de level 20~50, pegaram level 600 pela xp ser 200x+
    Você já deve imaginar que logo em seguida houve um reset no servidor e o mesmo perdeu metade dos jogadores rsrs
  4. Gostei
    Weslley Kiyo recebeu reputação de Eddy2000 em [SPELL] Mas Mort e Mas Pox   
    Versão Testada: OTX_2 0.3.7 (8.60)
     
    Basicamente são 2 spells: Exevo gran mas mort e exevo gran mas pox (as duas com condições curse e poison).
    Estas spells já estão balanceadas mas recomendo fazer testes
     
    > Imagens <
     
     
    Em data/spells/scripts/attack crie 2 arquivos .lua com nomes: mort core e poison core
     
    Mort Core
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 8, 15) local condition = createConditionObject(CONDITION_CURSED) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 4, 2000, -60) setCombatCondition(combat, condition) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end  
    Poison Core
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GREEN_RINGS) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 7, 14) local condition = createConditionObject(CONDITION_POISON) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 4, 2000, -40) setCombatCondition(combat, condition) local area = createCombatArea(AREA_CROSS6X6) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end  
    Agora em data/spells/spells.xml adicione as 2 TAGS:
    <instant name="Mort Core" words="exevo gran mas mort" lvl="120" mana="2100" prem="0" exhaustion="5000" selftarget="1" needlearn="0" event="script" value="attack/mort core.lua"> <vocation id="1"/> <vocation id="5"/> </instant> <instant name="Poison Core" words="exevo gran mas pox" lvl="120" mana="1900" prem="0" selftarget="1" exhaustion="5000" needlearn="0" event="script" value="attack/poison core.lua"> <vocation id="2"/> <vocation id="6"/> </instant>  
    mana="1900" -- É a mana necessária para usar a spell
    exhaustion="5000" -- Tempo de exaust da spell
     
  5. Curtir
    Weslley Kiyo recebeu reputação de PokeZika em HTDOCS não Atualiza   
    Aperta CTRL + F5
     
  6. Curtir
    Weslley Kiyo deu reputação a Hadggar em Servidor Global (o 8.60 mais completo)   
    Muito bom, ótimo trabalho hahaha!
  7. Gostei
    Weslley Kiyo recebeu reputação de Hadggar em Servidor Global (o 8.60 mais completo)   
    Obrigado!
     
     
    Pessoal, Infelizmente tive uns problemas pessoais e acabei dando uma pausa no projeto, mas o mesmo não acabou.
     
    Estou voltando agora com o projeto e estou acrescentando Archivements ao servidor. Também revisando alguns npcs e arrumando o mapa em sí.
  8. Gostei
    Weslley Kiyo recebeu reputação de Hadggar em Servidor Global (o 8.60 mais completo)   
    Sabe, tenho ódio de ver os servidores anunciando (100% global, o mais completo)... Bem, hoje venho mostrar a vocês, que de fato, o mais atual está por vir. O servidor ainda está em desenvolvimento mas posso dizer que já é o mais completo 
     
    Todas as falas dos npcs  retirado do tibiawiki (Ao digitar job, name, etc...) Todas as missões e quests retirado do tibiawiki (Com questlog) Servidor 8.60 com mapa 10.37 e muitas adições de áreas da versão 11.0 que possui suporte à 8.60 Todos os monstros atualizados para melhor balanceamento de loot/damage Todas as houses foram refeitas para evitar bugs em paredes e nomes das mesmas.  
    Imagens \/ \/
     
     
    "O trabalho é árduo, porém o resultado pode ser gratificante" 
  9. Gostei
    Weslley Kiyo deu reputação a Igorzerah em Servidor Global (o 8.60 mais completo)   
    Parabéns Belo Projeto.
  10. Gostei
    Weslley Kiyo deu reputação a luanluciano93 em Servidor Global (o 8.60 mais completo)   
    Muito bom, parabéns!
  11. Gostei
    Weslley Kiyo recebeu reputação de luanluciano93 em Servidor Global (o 8.60 mais completo)   
    Sabe, tenho ódio de ver os servidores anunciando (100% global, o mais completo)... Bem, hoje venho mostrar a vocês, que de fato, o mais atual está por vir. O servidor ainda está em desenvolvimento mas posso dizer que já é o mais completo 
     
    Todas as falas dos npcs  retirado do tibiawiki (Ao digitar job, name, etc...) Todas as missões e quests retirado do tibiawiki (Com questlog) Servidor 8.60 com mapa 10.37 e muitas adições de áreas da versão 11.0 que possui suporte à 8.60 Todos os monstros atualizados para melhor balanceamento de loot/damage Todas as houses foram refeitas para evitar bugs em paredes e nomes das mesmas.  
    Imagens \/ \/
     
     
    "O trabalho é árduo, porém o resultado pode ser gratificante" 
  12. Gostei
    Weslley Kiyo recebeu reputação de dimiot em AMULETO AOL INFINITO   
    <item id="2173" article="an" name="amulet of loss"> <attribute key="weight" value="420"/> <attribute key="slotType" value="necklace"/> <attribute key="preventDrop" value="1"/> <attribute key="absorbPercentPhysical" value="5"/> <attribute key="absorbPercentFire" value="5"/> <attribute key="absorbPercentIce" value="5"/> <attribute key="absorbPercentEarth" value="5"/> <attribute key="absorbPercentDeath" value="5"/> <attribute key="absorbPercentHoly" value="5"/> <attribute key="absorbPercentEnergy" value="5"/> </item>  
    Onde value="5" é 5% que vai absorver de dano
  13. Gostei
    Weslley Kiyo recebeu reputação de leandriinn em Servidor Global (o 8.60 mais completo)   
    Rookgaard já está completa. Mas hoje fiz uma última atualização pois acabei deixando passar despercebida.
     
    NPC Amber, ao digitar 'salmon', ela fala algumas palavras da língua orc aleatória e o significado de cada palavra.
     

     
    Servidor está na versão 8.60
    Quero deixar este servidor o mais Global RPG possível. Tudo oq a cipsoft não foi ou não fez!
    RookGaard possui todas as missões e quests disponíveis nesta versão. Tudo retirado do TibiaWiki.
     
    Servidor vai ser XP 2x (1x ao atingir lvl 100+), com regen hp/mana 2x do global. E para ajudar no começo, ao ir para main você cairá em uma pequena ilha 'custom' onde poderá pegar sua arma inicial. (apenas a arma/wand/ammo vai estar disponível).
    OBS: Por favor, caso achem melhor colocar para o player começar com um setzinho newbie para ajudar, comentem.
     
     
    O meu objetivo neste servidor é voltar a época antiga do tibia. Onde você brincava com seus amigos no Ts, faziam hunts juntos. Caçar Frost Dragon, Demon, hydra sozinho era complicado pois dava waste, e com os amigos ficava muito melhor e divertido.
    Servidor não vai visar lucros pois o mesmo só haverá Premium no Shop onde da acesso a um devasto continente 'custom'. (no continente VIP só haverá hunts e cidades para os npcs. Nada de quests, para deixar balanceado igualmente aos free account). Free account terá acesso a todo o continente tibiano (yalahar, farmine, edron, darashia e todos os outros....)
     
    Por favor, deixem suas opiniões, em breve criarei um tópico mais reformulado sobre meu projeto, o mesmo terá como objetivo mostrar atualizações do servidor e o andamento do mesmo.
     
    Estou pensando também em liberar algumas contas para um Beta fechado. Gostaria de testar toda a RookGaard.
    Lembrando que todos os participantes de Beta fechado receberá prêmios e VIP account no lançamento do servidor.
     
    Vou criar um present bag(custom) com vários items para dar no servidor oficial, para cada bug reportado pelo jogador.
     
    Comentem oq acham do servidor
     
    Por favor, jogadores de Baiak, OT 999x e servidores 400x~100x -- Este servidor não foi criado para ser fácil, o mesmo é HC e não haverá 'ajuda', tais como scripts de recompença em X level ou eventos de castelo 24~48hrs sem noção e cheio de teleports... Tenham em mente que o servidor é para parecer o mais próximo do Global porém com melhor jogabilidade. A Xp deste servidor poderá ser muito mais complicada que da própria cipsoft (a dificuldade será a mesma que naquela época do 7.6~8.60, onde level 100 se tornam os 'poderosos').  
  14. Gostei
    Weslley Kiyo recebeu reputação de Digoshow em (Resolvido)Porta que abre só para Premium Account   
    http://www.tibiaking.com/forum/forums/topic/73388-help-porta-premium-account-ot-server-800/
  15. Gostei
    porra.. agradecido demais meu mano! que o universo retribua teu bom grado rs
     
    100% !
     
    Resolvido. rs
  16. Gostei
    local cfg = { knight = {2430}, paladin = {2173}, sorcerer = {2189}, druid = {8857}, } function onUse(cid, item) if getPlayerStorageValue(cid, 38493) < 1 then if getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then if doPlayerAddItem(cid, cfg.knight[1], 1) then doPlayerSendTextMessage(cid, 25, "Congratulations!!") doPlayerSetStorageValue(cid, 38493, 1) else doPlayerSendTextMessage(cid,25,"ERROR! Please contact the administrator.") end elseif getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then if doPlayerAddItem(cid, cfg.sorcerer[1], 1) then doPlayerSendTextMessage(cid, 25, "Congratulations!!") doPlayerSetStorageValue(cid, 38493, 1) else doPlayerSendTextMessage(cid,25,"ERROR! Please contact the administrator.") end elseif getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then if doPlayerAddItem(cid, cfg.druid[1], 1) then doPlayerSendTextMessage(cid, 25, "Congratulations!!") doPlayerSetStorageValue(cid, 38493, 1) else doPlayerSendTextMessage(cid,25,"ERROR! Please contact the administrator.") end elseif getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then if doPlayerAddItem(cid, cfg.paladin[1], 1) then doPlayerSendTextMessage(cid, 25, "Congratulations!!") doPlayerSetStorageValue(cid, 38493, 1) else doPlayerSendTextMessage(cid,25,"ERROR! Please contact the administrator.") end end elseif getPlayerStorageValue(cid, 38493) >= 1 then doPlayerSendCancel(cid, "It's empty.") end return true end  
  17. Gostei
    Weslley Kiyo recebeu reputação de maicon genebra em Servidor Global (o 8.60 mais completo)   
    Sabe, tenho ódio de ver os servidores anunciando (100% global, o mais completo)... Bem, hoje venho mostrar a vocês, que de fato, o mais atual está por vir. O servidor ainda está em desenvolvimento mas posso dizer que já é o mais completo 
     
    Todas as falas dos npcs  retirado do tibiawiki (Ao digitar job, name, etc...) Todas as missões e quests retirado do tibiawiki (Com questlog) Servidor 8.60 com mapa 10.37 e muitas adições de áreas da versão 11.0 que possui suporte à 8.60 Todos os monstros atualizados para melhor balanceamento de loot/damage Todas as houses foram refeitas para evitar bugs em paredes e nomes das mesmas.  
    Imagens \/ \/
     
     
    "O trabalho é árduo, porém o resultado pode ser gratificante" 
  18. Gostei
    Weslley Kiyo recebeu reputação de Frenesy em Bug de clonagem de dinheiro/itens   
    Nesse caso, qual seria o correto?
     
    elseif msgcontains(msg, "yes") then if npcHandler.topic[cid] == 1 then if getPlayerItemCount(cid, 2677) >= 5 then -- blueberries npcHandler:say("It was a great help! If you have more you can come.", cid) doPlayerRemoveItem(cid, 2677, 5) -- honey flower doPlayerAddMoney(cid, 1) -- dinheiro (1 gold) npcHandler.topic[cid] = 0 else npcHandler:say("You don't have it... Buy from 5 blueberries.", cid) end end  
    elseif msgcontains(msg, "yes") then if npcHandler.topic[cid] == 1 then if getPlayerItemCount(cid, 2677) >= 5 then -- blueberries if doPlayerRemoveItem(cid, 2677, 5) then -- honey flower npcHandler:say("It was a great help! If you have more you can come.", cid) doPlayerAddMoney(cid, 1) -- dinheiro (1 gold) npcHandler.topic[cid] = 0 else npcHandler:say("Error 404! Contact the administrator.", cid) npcHandler:releaseFocus(cid) end else npcHandler:say("You don't have it... Buy from 5 blueberries.", cid) end end  
  19. Gostei
    Weslley Kiyo deu reputação a Bruno Carvalho em Bug de clonagem de dinheiro/itens   
    @Weslley Kiyo O segundo modo está correto. Mas não precisaria nem do getPlayerItemCount pois ele já faz isso ao remover... O porém o sistema que você fez seria a maneira mais segura.
  20. Gostei
    Weslley Kiyo recebeu reputação de Nandozeraah em Servidor Global (o 8.60 mais completo)   
    Annihilator Quest 100% completa!
     

     

     

     

     

  21. Gostei
    Weslley Kiyo deu reputação a Absolute em [Sistema de Ticket] Atendimento - Gesior Acc   
    Fala galerinha do TK, depois de ver muitos pedidos em busca desse simples sistema, resolvi pegar um antigo meu e realizar algumas modificações para que vocês possam usar em seus servidores, aprimorando o atendimento aos seus players.
     
     
     
     
    Funcionamento;
     
     
    Quando o player logar a conta e clicar na página para abrir um chamado, irá abrir:
     

     
     
    Qualquer jogador com a conta logada, poderá abrir seu chamado, clicando em [Abrir chamado] (como mostra na imagem a cima). Então o mesmo será redirecionado para:

     
     
     
     
    Campos requeridos:
     
    Assunto;

    O nome já diz tudo, o motivo da abertura do chamado.
     
     
     
    Descrição;

    Nome também diz tudo, o assunto do motivo da abertura do chamado.
     
     
     
     
    Tag;

    Em tag ele selecionará o motivo do chamado (para ajudar o administrador dos tickets no assunto), Ficando mais ágil e bonito hihi .
     
     
     
     
    Prioridade;

    Em prioridade ele irá selecionar a prioridade da resposta do ticket, Alta; Normal ou Baixa.
     
     
     
     
     
    Pós clicar em "Submit" irá abrir o chamado como na imagem:

     
     
     
     
    Nota: Quando estiver logado com a conta do administrador (Page acess 6) irá aparecer na página um "Admin Painel" onde você irá ver, responder e gerenciar os chamados abertos pelos jogadores.
     
    Toda vez que o ticket for respondido o status é alterado para "Respondido" e então caso ainda haja alguma dúvida o players poderá responder o ticket, até você selecionar o status como "Fechado"


     
     

    Creio que está bem explicado o funcionamento.
     
     
     
    Enfim, agora vamos a instalação do sistema *-*
     
     
    Primeiramente na sua pasta htocs(em windows) ou www(no caso de linux), ou seja, na pasta do seu site, onde fica as páginas principais como: latestnews.php, arichive.php, highscores.php e companhia.
    Nesta pasta crie um arquivo com o nome de helpdesk.php e adicione o seguinte dentro:
    <?php if($logged) { // type (1 = question; 2 = answer) // status (1 = open; 2 = new message; 3 = closed;) $dark = $config['site']['darkborder']; $light = $config['site']['lightborder']; $priority = array(1 => "Baixa", "Normal", "Alta"); $tags = array(1 => "[Vendas]", "[Suporte]", "[Parceria]", "[Bug]", "[Outros]"); if($group_id_of_acc_logged >= $config['site']['access_admin_panel'] and $_REQUEST['control'] == "true") { if(empty($_REQUEST['id']) and empty($_REQUEST['acc']) or !is_numeric($_REQUEST['acc']) or !is_numeric($_REQUEST['id']) ) $bug[1] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `type` = 1 order by `uid` desc'); if(!empty($_REQUEST['id']) and is_numeric($_REQUEST['id']) and !empty($_REQUEST['acc']) and is_numeric($_REQUEST['acc'])) $bug[2] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 1')->fetch(); if(!empty($_REQUEST['id']) and is_numeric($_REQUEST['id']) and !empty($_REQUEST['acc']) and is_numeric($_REQUEST['acc'])) { if(!empty($_REQUEST['reply'])) $reply=true; $account = $ots->createObject('Account'); $account->load($_REQUEST['acc']); $account->isLoaded(); $players = $account->getPlayersList(); if(!$reply) { if($bug[2]['status'] == 2) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($bug[2]['status'] == 4) $value = "<font color=green><b>Respondido</b></font> <img src=images/bug/ok.png>"; elseif($bug[2]['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($bug[2]['status'] == 1) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Atendimento</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=40%><img src=images/bug/report.png> <b>Assunto:</b></td><td> '.$tags[$bug[2]['tag']].' '.$bug[2]['subject'].' '.$value.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td><img src=images/bug/pri.gif> <b>Prioridade:</b></td><td> <img src=images/bug/'.$bug[2]['priority'].'.png> '.$priority[$bug[2]['priority']].''; $main_content .= '<TR BGCOLOR="'.$dark.'"><td><img src=images/bug/tibia.png> <b>Enviado por:</b></td><td>'; foreach($players as $player) { $main_content .= '<img src=images/bug/t.png> '.$player->getName().'<br>'; } $main_content .= '</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.png><b>Descrição:</b></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($bug[2]['text']).'</td></tr>'; $main_content .= '</TABLE>'; $answers = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 2 order by `reply`'); $ot = $config['site']['worlds']; foreach($answers as $answer) { if($answer['who'] == 1) $who = "<img src=images/bug/staff.gif> <font color=red><b>Staff</b></font>"; else $who = "<img src=images/bug/player.gif> <font color=green><b>Player</b></font>"; $main_content .= '<br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Resposta #'.$answer['reply'].'</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=70%><img src=images/bug/tibia.png><i><b>Enviado por:</b></i></td><td>'.$who.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.png><i><b>Descrição:</b></i></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($answer['text']).'</td></tr>'; $main_content .= '</TABLE>'; } if($bug[2]['status'] <= 4) $main_content .= '<br><a href="index.php?subtopic=helpdesk&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].'&reply=true"><b>[Responder]</b></a>'; } else { //if($bug[2]['status'] < 3) //{ $reply = $SQL->query('SELECT MAX(reply) FROM `z_helpdesk` where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 2')->fetch(); $reply = $reply[0] + 1; $iswho = $SQL->query('SELECT * FROM `z_helpdesk` where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].' and `type` = 2 order by `reply` desc limit 1')->fetch(); if(isset($_POST['finish'])) { if(empty($_POST['text'])) $error[] = "<font color=black><b>Por favor, preencha a descrição.</b></font>"; //if($iswho['who'] == 1) //$error[] = "<font color=black><b>Você precisa aguardar a resposta do usuário.</b></font>"; if(empty($_POST['status'])) $error[] = "<font color=black><b>Status cannot be empty.</b></font>"; if(!empty($error)) { foreach($error as $errors) $main_content .= ''.$errors.'<br>'; } else { $type = 2; $INSERT = $SQL->query('INSERT INTO `z_helpdesk` (`account`,`id`,`text`,`reply`,`type`, `who`) VALUES ('.$SQL->quote($_REQUEST['acc']).','.$SQL->quote($_REQUEST['id']).','.$SQL->quote($_POST['text']).','.$SQL->quote($reply).','.$SQL->quote($type).','.$SQL->quote(1).')'); $UPDATE = $SQL->query('UPDATE `z_helpdesk` SET `status` = '.$_POST['status'].' where `account` = '.$_REQUEST['acc'].' and `id` = '.$_REQUEST['id'].''); header('Location: index.php?subtopic=helpdesk&control=true&id='.$_REQUEST['id'].'&acc='.$_REQUEST['acc'].''); } } $main_content .= '<br><form method="post" action=""><table><tr><td>Mensagem:</i></td><td><textarea name="text" rows="3" cols="25"></textarea></td></tr><tr><td><br><font color=gray><b>Aguardando</b></font> <img src=images/bug/waiting.gif></td><td><input type=radio name=status value=2></td></tr><tr><td><font color=green><b>Respondido <img src=images/bug/ok.png /></b></font></td><td><input type=radio name=status value=4></td></tr><tr><td><font color=red><b>Fechado <img src=images/bug/closed.png></b></font></td><td><input type=radio name=status value=3></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>'; //} //else //{ //$main_content .= "<br><font color=black><b>You can't add answer to closed bug thread.</b></font>"; //} } $post=true; } if(!$post) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD colspan=2 CLASS=white><B>Atendimento Admin</B></TD></TR>'; $i=1; foreach($bug[1] as $report) { if($report['status'] == 2) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($report['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($report['status'] == 4) $value = "<font color=green><b>Respondido </b></font> <img src=images/bug/ok.png>"; elseif($report['status'] == 1) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; if(is_int($i / 2)) { $bgcolor = $dark; } else { $bgcolor = $light; } $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><td width=75%><img src=images/bug/'.$report['priority'].'.png> <a href="index.php?subtopic=helpdesk&control=true&id='.$report['id'].'&acc='.$report['account'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>'; $showed=true; $i++; } $main_content .= '</TABLE>'; } } else { $acc = $account_logged->getId(); $account_players = $account_logged->getPlayersList(); foreach($account_players as $player) { $allow=true; } if(!empty($_REQUEST['id'])) $id = addslashes(htmlspecialchars(trim($_REQUEST['id']))); if(empty($_REQUEST['id'])) $bug[1] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$account_logged->getId().' and `type` = 1 order by `id` desc'); if(!empty($_REQUEST['id']) and is_numeric($_REQUEST['id'])) $bug[2] = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$account_logged->getId().' and `id` = '.$id.' and `type` = 1')->fetch(); else $bug[2] = NULL; if(!empty($_REQUEST['id']) and $bug[2] != NULL) { if(!empty($_REQUEST['reply'])) $reply=true; if(!$reply) { if($bug[2]['status'] == 1) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($bug[2]['status'] == 2) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; elseif($bug[2]['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($bug[2]['status'] == 4) $value = "<font color=green><b>Respondido</b></font> <img src=images/bug/ok.png>"; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Atendimento</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=40%><img src=images/bug/report.png><b> Assunto:</b></td><td> '.$tags[$bug[2]['tag']].' '.$bug[2]['subject'].' '.$value.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td><img src=images/bug/pri.gif> <b>Prioridade:</b></td><td> <img src=images/bug/'.$bug[2]['priority'].'.png> '.$priority[$bug[2]['priority']].''; $main_content .= '<TR BGCOLOR="'.$dark.'"><td><img src=images/bug/tibia.png> <b>Enviado por:</b></td><td>'; $main_content .= '<img src=images/bug/t.png> You <br>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.png><b>Descrição:</b></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($bug[2]['text']).'</td></tr>'; $main_content .= '</TABLE>'; $answers = $SQL->query('SELECT * FROM '.$SQL->tableName('z_helpdesk').' where `account` = '.$account_logged->getId().' and `id` = '.$id.' and `type` = 2 order by `reply`'); foreach($answers as $answer) { if($answer['who'] == 1) $who = "<img src=images/bug/staff.gif> <font color=red><b>Staff</b></font>"; else $who = "<img src=images/bug/player.gif> <font color=green><b>YOU</b></font>"; $main_content .= '<br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Answer #'.$answer['reply'].'</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td width=70%><img src=images/bug/tibia.png><i><b> Enviado por:</b></i></td><td>'.$who.'</td></tr>'; $main_content .= '<TR BGCOLOR="'.$light.'"><td colspan=2><img src=images/bug/des.png><i><b>Descrição:</b></i></td></tr>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td colspan=2>'.nl2br($answer['text']).'</td></tr>'; $main_content .= '</TABLE>'; } if($bug[2]['status'] != 3) $main_content .= '<br><a href="index.php?subtopic=helpdesk&id='.$id.'&reply=true"><b>[Responder]</b></a>'; } else { //if($bug[2]['status'] != 3) //{ $reply = $SQL->query('SELECT MAX(reply) FROM `z_helpdesk` where `account` = '.$acc.' and `id` = '.$id.' and `type` = 2')->fetch(); $reply = $reply[0] + 1; $iswho = $SQL->query('SELECT * FROM `z_helpdesk` where `account` = '.$acc.' and `id` = '.$id.' and `type` = 2 order by `reply` desc limit 1')->fetch(); if(isset($_POST['finish'])) { if(empty($_POST['text'])) $error[] = "<font color=black><b>Descrição não pode ser vazia.</b></font>"; if($iswho['who'] == 0) $error[] = "<font color=black><b>Você precisa aguardar a resposta da staff.</b></font>"; if(!$allow) $error[] = "<font color=black><b>Você não possui nenhum char na conta.</b></font>"; if(!empty($error)) { foreach($error as $errors) $main_content .= ''.$errors.'<br>'; } else { $type = 2; $INSERT = $SQL->query('INSERT INTO `z_helpdesk` (`account`,`id`,`text`,`reply`,`type`) VALUES ('.$SQL->quote($acc).','.$SQL->quote($id).','.$SQL->quote($_POST['text']).','.$SQL->quote($reply).','.$SQL->quote($type).')'); $UPDATE = $SQL->query('UPDATE `z_helpdesk` SET `status` = 1 where `account` = '.$acc.' and `id` = '.$id.''); header('Location: index.php?subtopic=helpdesk&id='.$id.''); } } $main_content .= '<br><form method="post" action=""><table><tr><td><i>Description</i></td><td><textarea name="text" rows="15" cols="35"></textarea></td></tr></table><br><input type="submit" name="finish" value="Submit" class="input2"/></form>'; //} //else // //$main_content .= "<br><font color=black><b>You can't add answer to closed bug thread.</b></font>"; //} } $post=true; } elseif(!empty($_REQUEST['id']) and $bug[2] == NULL) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD CLASS=white><B>Atendimento</B></TD></TR>'; $main_content .= '<TR BGCOLOR="'.$dark.'"><td><i>Ticket doesn\'t exist.</i></td></tr>'; $main_content .= '</TABLE>'; $post=true; } if(!$post) { if($_REQUEST['add'] != TRUE) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD colspan=2 CLASS=white><B>Atendimento</B></TD></TR>'; foreach($bug[1] as $report) { if($report['status'] == 1) $value = "<font color=gray><b>Aguardando</b> <img src=images/bug/waiting.gif></font>"; elseif($report['status'] == 2) $value = "<font color=#4169E1><b>Nova Resposta</b></font> <img src=images/bug/new.png>"; elseif($report['status'] == 3) $value = "<font color=red><b>Fechado</b></font> <img src=images/bug/closed.png>"; elseif($report['status'] == 4) $value = "<font color=green><b>Respondido </b></font> <img src=images/bug/ok.png>"; if(is_int($report['id'] / 2)) { $bgcolor = $dark; } else { $bgcolor = $light; } $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><td width=75%><img src=images/bug/'.$report['priority'].'.png> <a href="index.php?subtopic=helpdesk&id='.$report['id'].'">'.$tags[$report['tag']].' '.$report['subject'].'</a></td><td>'.$value.'</td></tr>'; $showed=true; } if(!$showed) { $main_content .= '<TR BGCOLOR="'.$dark.'"><td><i>Nenhum atendimento solicitado.</i></td></tr>'; } $main_content .= '</TABLE>'; $main_content .= '<br><a href="index.php?subtopic=helpdesk&add=true"><b>[Abrir Chamado]</b></a>'; } elseif($_REQUEST['add'] == TRUE) { $thread = $SQL->query('SELECT * FROM `z_helpdesk` where `account` = '.$acc.' and `type` = 1 order by `id` desc')->fetch(); $id_next = $SQL->query('SELECT MAX(id) FROM `z_helpdesk` where `account` = '.$acc.' and `type` = 1')->fetch(); $id_next = $id_next[0] + 1; if(empty($thread)) $thread['status'] = 3; if(isset($_POST['submit'])) { //if($thread['status'] != 3) //$error[] = "<font color=black><b>Can be only 1 open bug thread.</b></font>"; if(empty($_POST['subject'])) $error[] = "<font color=black><b>Assunto cannot be empty.</b></font>"; if(empty($_POST['text'])) $error[] = "<font color=black><b>Description cannot be empty.</b></font>"; if(!$allow) $error[] = "<font color=black><b>You haven't any characters on account.</b></font>"; if(empty($_POST['tags'])) $error[] = "<font color=black><b>Tag cannot be empty.</b></font>"; if(!empty($error)) { foreach($error as $errors) $main_content .= ''.$errors.'<br>'; } else { $type = 1; $status = 1; $INSERT = $SQL->query('INSERT INTO `z_helpdesk` (`account`,`id`,`text`,`type`,`subject`,`status`,`tag`,`priority`) VALUES ('.$SQL->quote($acc).','.$SQL->quote($id_next).','.$SQL->quote($_POST['text']).','.$SQL->quote($type).','.$SQL->quote($_POST['subject']).','.$SQL->quote($status).','.$SQL->quote($_POST['tags']).','.$SQL->quote($_POST['priority']).')'); header('Location: index.php?subtopic=helpdesk&id='.$id_next.''); } } $main_content .= '<br><form method="post" action=""><font size=4><b>Atendimento</b></font><br><br><br><table><tr><td><img src=images/bug/report.png> <b>Assunto:</b></td><td><input type=text name="subject"/></td></tr><tr><td><img src=images/bug/des.png><b>Descrição:</b></td><td><textarea name="text" rows="4" cols="15"></textarea></td></tr><tr><td><img src=images/bug/tag.png> <b>TAG:</b></td><td><select name="tags"><option value="">SELECT</option>'; for($i = 1; $i <= count($tags); $i++) { $main_content .= '<option value="' . $i . '">' . $tags[$i] . '</option>'; } $main_content .= '</td></tr><tr><td><br><img src=images/bug/pri.gif> <b>Prioridade:</b></td><td><br><select name="priority"><option value="">SELECT</option>'; for($i = 1; $i <= count($priority); $i++) { $main_content .= '<option value="' . $i . '">' . $priority[$i] . '</option>'; } $main_content .= '</select></tr></tr></table><br><input type="submit" name="submit" value="Submit" class="input2"/></form>'; } } } if($group_id_of_acc_logged >= $config['site']['access_admin_panel'] and empty($_REQUEST['control'])) { $main_content .= '<br><br><a href="index.php?subtopic=helpdesk&control=true">[ADMIN PANEL]</a>'; } } 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=helpdesk" 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 onMouseOver="MouseOverBigButton(this);" onMouseOut="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 onMouseOver="MouseOverBigButton(this);" onMouseOut="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>'; } ?> Salve e feche.
     
     
    Pós isso abra o seu phpmyadmin, seuip.com/phpmyadmin, clique em executar e dentro da caixa coloque o seguinte:
    CREATE TABLE IF NOT EXISTS `z_helpdesk` ( `account` varchar(255) NOT NULL, `type` int(11) NOT NULL, `status` int(11) NOT NULL, `text` text NOT NULL, `id` int(11) NOT NULL, `subject` varchar(255) NOT NULL, `priority` int(11) NOT NULL, `reply` int(11) NOT NULL, `who` int(11) NOT NULL, `uid` int(11) NOT NULL AUTO_INCREMENT, `tag` int(11) NOT NULL, `registered` int(11) NOT NULL, PRIMARY KEY (`uid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=61 ; E então irá aparecer aquela linha verde dizendo que o comando foi executado com sucesso...


    Pronto, o sistema foi implantando.


    Agora irei ensinar vocês (caso não saibam) adicionar a aba de atendimento no menu do seu website.

    Primeiramente, na pasta principal do seu site abra o arquivo index.php e procure por:
     
    case "houses": $topic = "Houses"; $subtopic = "houses"; include("houses.php"); break; Logo abaixo de break; adicione o seguinte:
    case "helpdesk": $topic = "Helpdesk"; $subtopic = "helpdesk"; include("helpdesk.php"); break; Ficando então:
     
    case "houses": $topic = "Houses"; $subtopic = "houses"; include("houses.php"); break; case "helpdesk": $topic = "Helpdesk"; $subtopic = "helpdesk"; include("helpdesk.php"); break; Salve e feche.
     
     
     
     
    Logo depois na pasta principal vá em layouts/tibiacom/layout.php e procure por:
    <a href='index.php?subtopic=archive'> <div id='submenu_archive' 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_archive' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>News Archive</div> <div class='RightChain' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/general/chain.gif);'></div> </div> </a> Logo depois do </a> adicione:
    <a href='index.php?subtopic=helpdesk'> <div id='submenu_helpdesk' 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_helpdesk' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Atendimento <font size=-3>NOVO</font></div> <div class='RightChain' style='background-image:url(<?PHP echo "$layout_name"; ?>/images/general/chain.gif);'></div> </div> </a> Salve e feche.
     
     
     
    Pronto, atualize seu site e no menu News verifique que estará lá em funcionalidade o sistema de Atendimento por Ticket.
     
     
     
     
    Dica: Seja formal e tenha eficaz com seus jogadores, isto mostrará a dedicação da equipe em cima do servidor.
     
     
     
     
    Este sistema é antigo, onde venho adaptando para postar para vocês do TibiaKing, não autorizo o post do mesmo em outro fórum seja qual for a relação. O conteúdo foi adaptado por mim e exclusivo ao fórum do tibiaking.




    Qualquer dúvida quero que me comunique e poste aqui no fórum.


    O Sistema foi testado e encontra-se em funcionalidade a qualquer gesior account, seja qual for a versão do mesmo.


    Créditos:
    Averatec -OTLAND
    Absolute

    Gostaram?
     
     
     
    Até o próximo sistema/script/servidor seja o que for!

    Até mais galerinha do TK!
     
  22. Gostei
    Weslley Kiyo deu reputação a Nightz em [Sistema de Ticket] Atendimento - Gesior Acc   
    Para quem usa o Gesior 2012, a solução é bem simples para utilizar o sistema:
     
    Vá até a linha que tem o código abaixo:
    $account = $ots->createObject('Account'); E substitua por:
    $account = new Account;
  23. Gostei
    Weslley Kiyo deu reputação a WooX em Servidor Global (o 8.60 mais completo)   
    Projeto com potencial, se conseguir manter o "gás" nas correções vai estar pronto mais rápido do que imagina.
  24. Gostei
    Weslley Kiyo deu reputação a lucasmacaca em Servidor Global (o 8.60 mais completo)   
    Curti pakas ,tem uma previsao pra quando vai por online? acredito que sera um servidor de sucesso!!
  25. Gostei
    Weslley Kiyo recebeu reputação de lucasmacaca em Servidor Global (o 8.60 mais completo)   
    Bright Sword Quest 100%
     
     
    SEM BARRIL
     
     
    COM BARRIL
     
    OBS: A alavanca pode ser usada várias vezes podendo abrir e fechar está área da quest (porém, é necessário o Power Ring na parte 1 da quest).

Informação Importante

Confirmação de Termo