Ir para conteúdo

Reginaldo Filho

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Haha
    Reginaldo Filho deu reputação a Wend II em (Resolvido)[AJUDA] como adicionar pokebar no meu client   
    Esse erro não tem nada haver com o da pokebar 
     
     
    wtf? 
  2. Curtir
    Reginaldo Filho deu reputação a Wend II em (Resolvido)[AJUDA] como adicionar pokebar no meu client   
    Foi nada, qualquer dúvida estaremos por aqui rsrs ~~ 
  3. Curtir
    Reginaldo Filho deu reputação a Kolisium em Erro ao compilar TFS 0.3.6 Crying Damson   
    Me ajudem a solucionar o erro:

    [Linker error] undefined reference to `___dyn_tls_init_callback'
    [Linker error] undefined reference to `__setargv'

    Estou usando Stian's Repack Dev-cpp v2


    Resolvido!
    Solução: desinstalar o Mingw que estava instalado e usar o q ja veio com o Dev-cpp!
  4. Curtir
    Reginaldo Filho deu reputação a Listrik em Ajuda Npc não fala   
    Essa é a base DxP, correto!?
     
    vá na pasta do seu servidor em seguida vai em:
     
    data/npc/lib/npcsystem
     
    Abra o arquivo npchandler.lua
     
    Apague o que tiver dentro e coloque isto:
     
     


     
    Deve resolver seu problema.
     
    Ajudei? Da REP+! Não cai o dedo xD
     
     
  5. Obrigado
    Reginaldo Filho deu reputação a Guilherme em [C++] Opcode versão 8.54+   
    Por: BananaFight > DragonElement
     
    Adaptação pra source 8.54+

    LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR

    Vamos ao código.


    protocolgame.h

    Embaixo de
    void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione

    void parseExtendedOpcode(NetworkMessage& msg); void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp

    Embaixo de

    uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()}; enableXTEAEncryption(); setXTEAKey(key); Adicione

    // notifies to otclient that this server can receive extended game protocol opcodes if(operatingSystem >= CLIENTOS_OTCLIENT_LINUX) sendExtendedOpcode(0x00, std::string()); Embaixo de

    void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item) { const ItemType& it = Item::items[item.itemId]; msg->AddU16(it.clientId); if(it.isSplash() || it.isFluidContainer()) msg->AddByte(fluidMap[item.subType % 8]); else if(it.stackable || it.charges) msg->AddByte(item.subType); else msg->AddByte(0x01); msg->AddString(item.itemName); msg->AddU32(uint32_t(it.weight * 100)); msg->AddU32(item.buyPrice); msg->AddU32(item.sellPrice); } Adicione

    void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg) { uint8_t opcode = msg.GetByte(); std::string buffer = msg.GetString(); // process additional opcodes via lua script event addGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer); } void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer) { // extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand them NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->AddByte(0x32); msg->AddByte(opcode); msg->AddString(buffer); } } Embaixo de

    case 0x1E: // keep alive / ping response parseReceivePing(msg); break;
    Adicione

    case 0x32: // otclient extended opcode parseExtendedOpcode(msg); break; enums.h

    Embaixo de

    enum GuildLevel_t { GUILDLEVEL_NONE = 0, GUILDLEVEL_MEMBER, GUILDLEVEL_VICE, GUILDLEVEL_LEADER }; Substitua o OperatingSystem por este

    enum OperatingSystem_t { CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_OTCLIENT_LINUX = 0x0A, CLIENTOS_OTCLIENT_WINDOWS = 0x0B, CLIENTOS_OTCLIENT_MAC = 0x0C, };/
    player.h

    Embaixo de
     

    void sendCreatureShield(const Creature* creature) Adicione

    void sendExtendedOpcode(uint8_t opcode, const std::string& buffer) {if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp

    Embaixo de

    void LuaScriptInterface::registerFunctions() { Adicione

    //doSendPlayerExtendedOpcode(cid, opcode, buffer) lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de

    SHIFT_OPERATOR(int32_t, LeftShift, <<) SHIFT_OPERATOR(int32_t, RightShift, >>) SHIFT_OPERATOR(uint32_t, ULeftShift, <<) SHIFT_OPERATOR(uint32_t, URightShift, >>) #undef SHIFT_OPERATOR Adicione
    int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L) { //doSendPlayerExtendedOpcode(cid, opcode, buffer) std::string buffer = popString(L); int opcode = popNumber(L); ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->sendExtendedOpcode(opcode, buffer); lua_pushboolean(L, true); } lua_pushboolean(L, false); return 1; } luascript.h

    Embaixo de

    virtual void registerFunctions(); Adicione

    static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h
    .
    Substitua
    CREATURE_EVENT_PREPAREDEATH Por isso

    CREATURE_EVENT_PREPAREDEATH, CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de
    uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione
    uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp

    Embaixo de

    else if(tmpStr == "death") m_type = CREATURE_EVENT_DEATH; Adicione

    else if(tmpStr == "extendedopcode") m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de

    case CREATURE_EVENT_DEATH: return "onDeath"; Adicione
    case CREATURE_EVENT_EXTENDED_OPCODE: return "onExtendedOpcode"; Embaixo de

    case CREATURE_EVENT_DEATH: return "cid, corpse, deathList"; Adicione
    case CREATURE_EVENT_EXTENDED_OPCODE: return "cid, opcode, buffer"; Embaixo de

    std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl; return 0; } } Adicione
    uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer) { //onExtendedOpcode(cid, opcode, buffer) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local opcode = " << (int)opcode << std::endl; scriptstream << "local buffer = " << buffer.c_str() << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEvent(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, opcode); lua_pushlstring(L, buffer.c_str(), buffer.length()); bool result = m_interface->callFunction(3); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl; return 0; } } game.h

    Embaixo de


    int32_t getLightHour() {return lightHour;} void startDecay(Item* item); Adicione
    void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer);
    game.cpp

    Embaixo de

    player->sendTextMessage(MSG_INFO_DESCR, buffer); }
    Adicione

    void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer) { Player* player = getPlayerByID(playerId); if(!player || player->isRemoved()) return; CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE); for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it) (*it)->executeExtendedOpcode(player, opcode, buffer); } /creaturescripts/creaturescrips.xml

    <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/>
    /creaturescripts/extendedopcode.lua
    OPCODE_LANGUAGE = 1 function onExtendedOpcode(cid, opcode, buffer)         if opcode == OPCODE_LANGUAGE then          -- otclient language          if buffer == 'en' or buffer == 'pt' then                  -- example, setting player language, because otclient is multi-language...                  --doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)          end         else          -- other opcodes can be ignored, and the server will just work fine...         end end Créditos : MaXwEllDeN 100% por adaptar o código
  6. Curtir
    Reginaldo Filho deu reputação a FireBlue em Sprites Ot Pokemon Atualizadas 30/08/17   
    Esse é seu papel de T r 0 x 4 
  7. Gostei
    Fala linduxos do TK, hoje vim trazer para vocês um sistema que venho modificando a algum tempo.
    O Sistema de pagseguro automático, ao longo do script ensinarei perfeitamente como instalar/configurar.
    Lembrando que uso esse sistema em um servidor meu e está 100% entregando os pontos no mesmo instante, adicionei a opção de entregar pontos dobrados, para promoção double points acima de X valor.
     
    Vá em sua pasta www ou htocs/config abra o arquivo config.php e procure por: $config['site']['layout'] = ... embaixo disto adicione o seguinte:
     
    // Pagseguro Automático by Absolute on Luminera // Seu email cadastrado no PagSeguro $config['pagseguro']['email'] = 'SEU E-MAIL DO PAGSEGURO'; // Nome do produto $config['pagseguro']['produtoNome'] = 'Premium Points'; // Valor de cada ponto // Exemplo de valores: // 100 = R$ 1,00 // 250 = R$ 2,50 $config['pagseguro']['produtoValor'] = '100'; Simples explicação sobre este passo: em SEU E-MAIL DO PAGSEGURO basta colocar o seu e-mail do pagseguro, ficando como exemplo:
    $config['pagseguro']['email'] = '[email protected]';        (não mexa em mais nada)
     
    Próximo passo:
    Agora vá na sua pasta www ou htocs e crie um arquivo chamado pagseguro_retorno.php (Extensão PHP formato de página PHP), dentro do pagseguro_retorno.php adicione:
     
    <?PHP $host = "localhost"; /* HOST */ $user = "root"; /* USER */ $passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */ $db = "NOMEDADATABASE"; /* DB */ ############################################################## #                         CONFIGURAÇÕES ############################################################## $retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguro if (empty($_POST['Referencia'])) { header("Location http://pagseguro.com.br");  } list($accname, $world) = explode('-', $_POST['Referencia']); if ($world=='sv') {     $retorno_host = "$host"; // Local da base de dados MySql     $retorno_database = "$db"; // Nome da base de dados MySql     $retorno_usuario = "$user"; // Usuario com acesso a base de dados MySql     $retorno_senha = "$passwd";  // Senha de acesso a base de dados MySql } ############################################################### #            ATENÇÃO TIBIAKING  NÃO ALTERE DESTA LINHA PARA BAIXO OK? Absolute Agradeçe hihi # $lnk = mysql_connect("$host", "$user", "$passwd") or die ('Nao foi possível conectar ao MySql: ' . mysql_error()); mysql_select_db("$db", $lnk) or die ('Nao foi possível ao banco de dados selecionado no MySql: ' . mysql_error());     // Validando dados no PagSeguro $PagSeguro = 'Comando=validar'; $PagSeguro .= '&Token=' . $retorno_token; $Cabecalho = "Retorno PagSeguro"; foreach ($_POST as $key => $value) {  $value = urlencode(stripslashes($value));  $PagSeguro .= "&$key=$value"; } if (function_exists('curl_exec')) {  $curl = true; } elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) ) {  $fsocket = true; } elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30)) {  $fsocket = true; } if ($curl == true) {  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');  curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  curl_setopt($ch, CURLOPT_HEADER, false);  curl_setopt($ch, CURLOPT_TIMEOUT, 30);  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');   $resp = curl_exec($ch);  curl_close($ch);  $confirma = (strcmp ($resp, "VERIFICADO") == 0); } elseif ($fsocket == true) {  $Cabecalho  = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n";  $Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";  $Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n";  if ($fp || $errno>0)  {     fputs ($fp, $Cabecalho . $PagSeguro);     $confirma = false;     $resp = '';     while (!feof($fp))     {        $res = @fgets ($fp, 1024);        $resp .= $res;        if (strcmp ($res, "VERIFICADO") == 0)        {           $confirma=true;           break;        }     }     fclose ($fp);  }  else  {     echo "$errstr ($errno)<br />\n";  } } if ($confirma) { ## Recebendo Dados ## $TransacaoID = $_POST['TransacaoID']; $VendedorEmail  = $_POST['VendedorEmail']; $Referencia = $_POST['Referencia']; $TipoFrete = $_POST['TipoFrete']; $ValorFrete = $_POST['ValorFrete']; $Extras = $_POST['Extras']; $Anotacao = $_POST['Anotacao']; $TipoPagamento = $_POST['TipoPagamento']; $StatusTransacao = $_POST['StatusTransacao']; $CliNome = $_POST['CliNome']; $CliEmail = $_POST['CliEmail']; $CliEndereco = $_POST['CliEndereco']; $CliNumero = $_POST['CliNumero']; $CliComplemento = $_POST['CliComplemento']; $CliBairro = $_POST['CliBairro']; $CliCidade = $_POST['CliCidade']; $CliEstado = $_POST['CliEstado']; $CliCEP = $_POST['CliCEP']; $CliTelefone = $_POST['CliTelefone']; $NumItens = $_POST['ProdValor_1']; $ProdQuantidade_x = $POST['ProdQuantidade_1'];   # GRAVA OS DADOS NO BANCO DE DADOS # mysql_query("INSERT into pagsegurotransacoes SET     TransacaoID='$TransacaoID',     VendedorEmail='$VendedorEmail',     Referencia='$Referencia',     TipoFrete='$TipoFrete',     ValorFrete='$ValorFrete',     Extras='$Extras',     Anotacao='$accname',     TipoPagamento='$TipoPagamento',     StatusTransacao='$StatusTransacao',     CliNome='$CliNome',     CliEmail='$CliEmail',     CliEndereco='$CliEndereco',     CliNumero='$CliNumero',     CliComplemento='$CliComplemento',     CliBairro='$CliBairro',     CliCidade='$CliCidade',     CliEstado='$CliEstado',     CliCEP='$CliCEP',     CliTelefone='$CliTelefone',     NumItens='$NumItens',     Data=now(), ProdQuantidade_x='$ProdQuantidade_x';"); if ($NumItens >= 5) { $pontosadd = $NumItens * 2; } else { $pontosadd = $NumItens; } if ($StatusTransacao == "Aprovado") { mysql_query("UPDATE accounts SET premium_points = premium_points + '$pontosadd' WHERE name = '".htmlspecialchars($accname)."'"); mysql_query("UPDATE pagsegurotransacoes SET StatusTransacao = 'Entregue' WHERE CONVERT( `pagsegurotransacoes`.`TransacaoID` USING utf8 ) = '$TransacaoID' AND CONVERT( `PagSeguroTransacoes`.`StatusTransacao` USING utf8 ) = 'Aprovado' LIMIT 1 ;"); mysql_query('OPTIMIZE TABLE  `pagsegurotransacoes`'); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Donate Server</title> <style type="text/css"> body {     font-family: Tahoma, Geneva, sans-serif;     font-size: 16px;     width: 900px;     margin: 0px auto;     margin-top: 30px; } b {     font-size: 18px;     font-weight: bold; } </style> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">   <tr>     <td width="11%" align="center" valign="middle"><img src="images/true.png" height="auto" width="64" /></td>     <td width="89%"><p><b>S</b>ua compra está sendo processada por nossos sistemas de apuração, dentro de no máximo <u>1 hora seus pontos serão creditados</u>, caso o pagamento não for efetuado, ficará em aberto 1 ou mais pagamentos pendentes em sua conta. Caso você tenha mais de 3 pagamentos pendentes por falta de pagamento, sua conta será bloqueada temporariamente para efetuar pagamentos.</p></td>   </tr> </table> <p><b>ID de Transação:</b> <?php echo $_POST['TransacaoID']; ?></p> </body> </html> Explicação de configuração deste passo:
    Coloque a senha que você usa para entrar no phpmyadmin aqui: $passwd = "SENHADOPHPMYADMIN"; /* PASSWORD */
    Exemplo de como ficaria: $passwd = "absolute123"; /* PASSWORD */
    Coloque aqui o nome que está seu banco de dados (o mesmo que vai no config.lua, onde salva os characters, contas e cia):
    $db = "NOMEDADATABASE"; /* DB */ ;
    Exemplo de como ficaria:
    $db = "otserver"; /* DB */
     
     
    IMPORTANTE, TOKEN Pagseguro!
    Você irá entrar neste link, aparecerá uma página pedindo para colocar a url de retorno, no entanto você colocará o seu site terminado em /pagseguro_retorno.php, exemplo de link para colocar: http://otglobal.com/pagseguro_retorno.php (LEMBRANDO QUE É APENAS UM EXEMPLO, SERÁ SEUSITE.COM/pagseguro_retorno.php, como na imagem a seguir:

    Pós verificar a seleção do "Ativar" e o link correto clique em Salvar.
    Agora descendo um pouco esta página onde terá a opção a cima terá uma opção como a imagem a seguir:

     
    Clique em GERAR, você receberá o seu código token e coloque no script que estará na sua pasta www ou htocs, mude na linha:
    $retorno_token = 'SEUTOKENPAGSEGURO'; // Token gerado pelo PagSeguro
    EM SEUTOKENPAGSEGURO coloque o TOKEN que você acabou de pegar, será vários números e letras, exemplo de como ficaria:
    $retorno_token = 'AE89464AE8145487484PAEA978E91'; // Token gerado pelo PagSeguro
     
    DOUBLE POINTS EXPLICAÇÃO:
    Neste mesmo script há algumas linhas com a seuginte função:
    if ($NumItens >= 5) {
    $pontosadd = $NumItens * 2;
    Isto quer dizer, > 5 (A cima de 5 pontos, receba: NumItens * 2, receba em 2x PONTOS EM DOBRO!)
    Para alterar o valor a cima que a pessoa receberá em dobro: NumItens >= 5) 5 pontos ou mais a pessoa receberá em dobro, caso seja para qualquer valor, troque o 5 pelo 1.
    Caso não deseje DOUBLE POINTS e sim 50% do valor em pontos, exemplo: 10R$ = 15 Pontos, altere para:
    $pontosadd = $NumItens * 1.5;
    Caso não deseje promoção e queira que seja 1 Real = 1 Ponto:
    $pontosadd = $NumItens * 1;
     
     
     
     
    Próximo passo:
     
    Calma gente, está quase acabando eu prometo, então abra o seu PHPMYADMIN, localhost/phpmyadmin ou seusite.com/phpmyadmin, exemplo: www.absolutewar.com/phpmyadmin ; absoluteot.servegame.com/phpmyadmin, clique na opção SQL do phpmyadmin (como mostrarei na imagem e de executar.

     
     
     
    Código a inserir no "espaço":
    CREATE TABLE `pagsegurotransacoes` ( `TransacaoID` varchar(36) NOT NULL, `VendedorEmail` varchar(200) NOT NULL, `Referencia` varchar(200) default NULL, `TipoFrete` char(2) default NULL, `ValorFrete` decimal(10,2) default NULL, `Extras` decimal(10,2) default NULL, `Anotacao` text, `TipoPagamento` varchar(50) NOT NULL, `StatusTransacao` varchar(50) NOT NULL, `CliNome` varchar(200) NOT NULL, `CliEmail` varchar(200) NOT NULL, `CliEndereco` varchar(200) NOT NULL, `CliNumero` varchar(10) default NULL, `CliComplemento` varchar(100) default NULL, `CliBairro` varchar(100) NOT NULL, `CliCidade` varchar(100) NOT NULL, `CliEstado` char(2) NOT NULL, `CliCEP` varchar(9) NOT NULL, `CliTelefone` varchar(14) default NULL, `NumItens` int(11) NOT NULL, `Data` datetime NOT NULL, `status` tinyint(1) unsigned NOT NULL default '0', UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`), KEY `Referencia` (`Referencia`), KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Pós executar irá aparecer uma mensagem que o código foi aceito e uma tabela nova foi criada, como na imagem a seguir:

     
     
     
    Agora por fim o ÚLTIMO PASSO
    Novamente na pasta www ou htdocs substitua o seu arquivo donate.php por este:
     
    <?php if(!$logged) if($action == "logout") $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Logout Successful</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td>You have logged out of your '.$config['server']['serverName'].' account. In order to view your account you need to <a href="?subtopic=accountmanagement" >log in</a> again.</td></tr> </table> </div> </table></div></td></tr>'; else $main_content .= 'Please enter your account name and your password.<br/><a href="?subtopic=createaccount" >Create an account</a> if you do not have one yet.<br/><br/><form action="?subtopic=accountmanagement" method="post" ><div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Account Login</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><tr><td class="LabelV" ><span >Account Name:</span></td><td style="width:100%;" ><input type="password" name="account_login" SIZE="10" maxlength="10" ></td></tr><tr><td class="LabelV" ><span >Password:</span></td><td><input type="password" name="password_login" size="30" maxlength="29" ></td></tr> </table> </div> </table></div></td></tr><br/><table width="100%" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div &#111;nmouseover="MouseOverBigButton(this);" &#111;nmouseout="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=lostaccount" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div &#111;nmouseover="MouseOverBigButton(this);" &#111;nmouseout="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Account lost?" alt="Account lost?" src="'.$layout_name.'/images/buttons/_sbutton_accountlost.gif" ></div></div></td></tr></form></table></td></tr></table>'; else { $main_content .= '<br><br><b>Valores:</b><br> 1 Point = R$ 1,00<br> 10 Points = R$ 10,00<br> 20 Points = R$ 20,00<br> E assim por diante...<br><br> '; $main_content .= ' <form target="pagseguro" method="post" action="https://pagseguro.uol.com.br/checkout/checkout.jhtml"> <input type="hidden" name="email_cobranca" value="'. $config['pagseguro']['email']. '"> <input type="hidden" name="tipo" value="CP"> <input type="hidden" name="moeda" value="BRL"> <input type="hidden" name="item_id_1" value="1"> <input type="hidden" name="item_descr_1" value="Pontos na account de nome: '.$account_logged->getCustomField("name").'"> <input type="hidden" name="item_valor_1" value="'. $config['pagseguro']['produtoValor'] .'"> <input type="hidden" name="item_frete_1" value="0"> <input type="hidden" name="item_peso_1" value="0"> <input type="hidden" name="ref_transacao" value="'.$account_logged->getCustomField("name").'"> <table border="0" cellpadding="4" cellspacing="1" width="100%" id="#estilo"><tbody> <tr bgcolor="#505050" class="white"> <th colspan="2"><strong>Escolha a quantidade de pontos que deseja comprar</strong></th> </tr> <tr> <td width="10%">Sua conta</td> <td><strong>'.$account_logged->getCustomField("name").'</strong></td> </tr> <tr> <td width="10%">Pontos</td> <td> <input name="item_quant_1" type="text" value="10" size="5" maxlength="5"> </td> </tr> <tr> <td colspan="2"> <input type="image" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/carrinhoproprio/btnFinalizar.jpg" name="submit" alt="Pague com PagSeguro - é rápido, grátis e seguro!" /> </td> </tr> </tbody></table></form> <b><span style="color:#ff0000;">OBS&sup1;:</span></b> Os pontos são entregues <b>automáticamente</b> logo após a <u>aprovação</u> do seu pagamento pelo PagSeguro, ou seja, pagou e foi aprovado pontos depositados. Você pdoerá acessar o shop offer e desfrutar dos melhores items do servidor! <?php } ?>'; } ?> Pronto galera tão fácil né? agora vocês poderão pegar seu guarda sol, sua água de coco e sentar na sua cadeira de praia enquanto o script entregará os pontos automáticamente em menos de 1 minuto.
     
    Espero ter ajudado, quaisquer dúvidas podem solicitar no tópico ou até mesmo me mandar uma mensagem privado que estarei disposto a ajuda-los.
     
    Créditos:
    Absolute (EU)
    Matheus Sesso pela página donate.php
     
     
    Nos vemos na próxima!
    Enjoy.
  8. Gostei
    Reginaldo Filho deu reputação a Ivens Pontes em [PagSeguro] Novo Método de Retorno Automático   
    Olá amiguinhos! Esse é meu primeiro script que faço e trago para vocês.
    Esse sistema usa a API PHP do PagSeguro, muito mais simples e seguro, sem muitas gambiarras.
    Tentei deixar o mais fácil possível de se instalar, qualquer sugestão será bem vinda!
     
    Requisitos:
    PHP 5.4.27+
    SPL
    cURL
    SimpleXml
     
    Funcionalidades:
    Double Points no config/config.php
    Possibilidade de usar vários sites em uma unica conta do PagSeguro
    Possibilidade de acrescentar mais funcionalidades ao Gesior ou outro AAC com a API do PagSeguro.
     
    Primeiramente pegue seu token (AQUI) e desative todas as configurações.
    Assim: 
     
    Feito isso, baixe a source no repositório do GitHub (AQUI).
    Extraia o conteúdo e coloque na raiz do seu site (www ou htdocs).
     
    Agora vamos colocar a mão na massa!
     
    Abra config/config.php e coloque esse código onde achar melhor:
    $config['pagSeguro']['email'] = "[email protected]"; // Email da conta pagseguro $config['pagSeguro']['token'] = "yourtokenhere"; // Seu TOKEN $config['pagSeguro']['urlRedirect'] = 'http://seusite.com/?subtopic=donate&action=final'; $config['pagSeguro']['urlNotification'] = 'http://seusite.com/retpagseguro.php'; $config['pagSeguro']['productName'] = 'Premium Points'; // Nome do produto que irá aparecer no pagseguro $config['pagSeguro']['productValue'] = 1.00; // valor de cada ponto ex.: 0.50 = R$ 0,50 / 1.50 = R$ 1,50 .... $config['pagSeguro']['doublePoints'] = false; // se true ativa double points / se false desativa $config['pagSeguro']['host'] = 'localhost'; // host banco de dados $config['pagSeguro']['database'] = 'tibiaking_db'; // nome do banco de dados $config['pagSeguro']['databaseUser'] = 'root'; // usuario banco de dados $config['pagSeguro']['databasePass'] = 'tibiaKing3321'; // senha banco de dados Preencha as configurações, não tem muita dificuldade.
     
    Um passo importante para o sistema funcionar corretamente é preencher o ['urlRedirect'] e ['urlNotification'] corretamente.
     
    ['urlRedirect'] é a pagina que o PagSeguro irá mandar o comprador depois que ele pagar a solicitação.
    Substitua o seusite.com pelo seu site eu se quiser o para outra pagina ex.: seusite.com/?subtopic=accountmanagement 
     
    ['urlNotification'] é onde o retpagseguro.php está, tenha certeza que ele está na raiz do site, não o coloque em outro lugar para evitar problemas.
     
    Com tudo preenchido vamos ao banco de dados e execute esse código sql: 
    CREATE TABLE IF NOT EXISTS `pagseguro_transactions` ( `transaction_code` varchar(36) NOT NULL, `name` varchar(200) DEFAULT NULL, `payment_method` varchar(50) NOT NULL, `status` varchar(50) NOT NULL, `item_count` int(11) NOT NULL, `data` datetime NOT NULL, UNIQUE KEY `transaction_code` (`transaction_code`,`status`), KEY `name` (`name`), KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Ou importe o arquivo pagseguro.sql que vem dentro da pasta schemas.
     
    Feito isso entre em seusite.com/?subtopic=donate e prossiga normalmente como se fosse fazer uma doação.
     
    Se ao clicar no botão de finalizar for levado a esta tela:
     
    Provavelmente você fez tudo corretamente.
     
    Qualquer bug ou dificuldade na instalação só comentar que irei ajudar. Até a próxima!
     
    Scan mais recente: Link
    Documentação da API: Link
     
    Agradecimentos:
    DexDev
    Natanael e Abusolute e Matk (Os sistemas anteriores me fizeram entender a logica da coisa)
  9. Gostei
    Reginaldo Filho deu reputação a Jaurez em .   
    .
  10. Gostei
    Reginaldo Filho deu reputação a Sufaiter em Entrada Para Dois Server   
    veio trazer mais uma entrada para dois servidores espero que curta estarei criando mais uma
    http://www.4shared.com/rar/J9MkN8Ln/entrada_dois_server.html

  11. Gostei
    Global 11/12x [v32]
     

     
     
    - New Falcons
    - New Asuras
    - Warzone 4,5,6
    - Exercise Training
    - Raids 100%
    - Monstros 100%
    - Trainer Offline 100%
    - Trainer Online 100%
    - Taming system funcionando 100%;
    - Database completa
    - War System 100%
    - Global MAP Full
    - Store 100%
    - Imbuement
    - Prey System
    - Entre outros sistemas.
     
    Projeto no: GITHUB

    Scan Vírus Total
     
    IMAGES
     
    Créditos:
     
     











Informação Importante

Confirmação de Termo