Jump to content

X3nO

Użytkownicy
  • Content Count

    101
  • Joined

  • Last visited

Seller statistics

  • 0
  • 0
  • 0

Community Reputation

7 Neutral

About X3nO

  • Rank
    Coś tam wie o IP.Board
  • Birthday 11/14/2000

Profile Information

  • Płeć
    Mężczyzna
  • Location
    Włocławek

Contact Methods

Informacje o forum

Recent Profile Visitors

6526 profile views
  1. Zmiana hostingu pomogła, w moim przypadku az.pl jest bardzo problematyczne, można oznaczyć jako rozwiązane.
  2. Właśnie to jest świeża instalacja, jak wyłącze dev to ścieżki są poprawne
  3. Witam, mam problem z developer tools, mianowicie po utworzeniu pliku constants.php w głównym katalogu IPSa konsola przeglądarki sypie błędami, pliki są zgodne, najnowsza wersja, pliki dev wrzucone w diagnostyce jest problem z czasem, lecz narzędzie IPS nie jest w stanie tego naprawić http://dev.playordie.pro/
  4. Dziękuję, mam jeszcze pytanko, jak odebrać $_POST z zewnętrznego formularza? if(isset($_GET['checkPayment']) && $_POST['status']) { ob_clean(); $psc->validate_ipn(); $psc->validate_user($config, $_POST); /* rushpay prześle metodą post pod zdefiniowany link url w formularu pakiet pakietów. status => Status płatności TRUE i FALSE test => transakcja testowa = true, produkcja = false userid => id przyjmującego płatność pid => Unikalny numer transakcji mtid => Unikalny numer transakcji w PSC control => Pole dla sklepu, umożliwiające m.in zapisanie sesji amount => Wartość zamówienia (kuponu PSC) description => Opis płatności zdefiniowany w fomrmularzu hash => Indywidualna suma kontrolna w md5() */ /* Przykład zastosowania */ if($_POST['status'] == TRUE) { // dalsza część kodu // np. zapytanie mysql // SELECT * FROM `payments` WHERE `control` = $_POST['control'] } exit('OK'); } Próbowałem zrobić tak ale mam błąd w panelu RushPay (Twój skrypt nie zwrócił komunikatu "OK") : public function pscWallet() { global $panel; if ( \IPS\Settings::i()->panel_payaments_type == 'rushpay') { //Only RushPay.pl /* RushPay.pl PaySafeCard API */ include( \IPS\ROOT_PATH . "/applications/panel/interface/mpsc.php" ); $psc = new \IPS\panel\mpsc\mPaySafeCard; if(isset(\IPS\Request::i()->checkPayment) && \IPS\Request::i()->status) { $psc->validate_ipn(); $psc->validate_user(\IPS\Settings::i()->panel_payaments_userid, \IPS\Request::i()->userid); if(\IPS\Request::i()->status == TRUE) { \IPS\Db::i('samp_db')->update( 'Players', array( 'Gold' => ($panel->gPlayerInfo('Gold', \IPS\Request::i()->control) + $values['amount']) ), array( 'Name=?', $panel->gSamp(\IPS\Request::i()->control) ) ); } \IPS\Output::i()->sendOutput( 'OK' ); exit(); } $amount = 10; $form = new \IPS\Helpers\Form( NULL, "Doładuj", \IPS\Http\Url::external( "https://www.rushpay.pl/api/psc/" ) ); $form->hiddenValues['userid'] = \IPS\Settings::i()->panel_payaments_userid; $form->hiddenValues['shopid'] = '125'; $form->hiddenValues['return_ok'] = \IPS\Http\Url::internal( "app=panel&module=main&controller=account&do=pscWallet&status=ok", 'front', 'main' ); $form->hiddenValues['return_fail'] = \IPS\Http\Url::internal( "app=panel&module=main&controller=account&do=pscWallet&status=fail", 'front', 'main' ); $form->hiddenValues['url'] = \IPS\Http\Url::internal( "app=panel&module=main&controller=account&do=pscWallet", 'front', 'main' ); $form->hiddenValues['description'] = 'Jakiś opis ;c'; $form->hiddenValues['control'] = \IPS\Member::loggedIn()->member_id; $form->hiddenValues['hash'] = md5(\IPS\Settings::i()->panel_payaments_userid . '###' . $amount); $form->add( new \IPS\Helpers\Form\Text('amount') ); \IPS\Output::i()->output = $form; } else { \IPS\Output::i()->output = 'Opcje płatności są obecnie wyłączone.'; } }
  5. $form = new \IPS\Helpers\Form( NULL, 'Zapłać', \IPS\Http\Url::external( "https://www.rushpay.pl/api/psc/" ) ); $form->hiddenValues['userid'] = \IPS\Settings::i()->panel_payaments_userid; $form->hiddenValues['shopid'] = '999'; $form->hiddenValues['return_ok'] = \IPS\Http\Url::internal( "app=panel&module=main&controller=account&do=pscWallet&status=ok", 'front', 'main' ); $form->hiddenValues['return_fail'] = \IPS\Http\Url::internal( "app=panel&module=main&controller=account&do=pscWallet&status=fail", 'front', 'main' ); $form->hiddenValues['url'] = \IPS\Http\Url::internal( "app=panel&module=main&controller=account&do=pscWallet", 'front', 'main' ); $form->hiddenValues['description'] = 'Jakiś opis ;c'; $form->hiddenValues['control'] = \IPS\Member::loggedIn()->member_id; $form->hiddenValues['hash'] = md5(\IPS\Settings::i()->panel_payaments_userid . 'hash' . $amount); $form->add( new \IPS\Helpers\Form\Text('amount') ); W ten sposób mam to dodać? Tak, ten skrypt ma działać jako bramka płatności PaySafeCard za pośrednictwem RushPay.pl
  6. Dziękuję, jeszcze mam jedno szybkie pytanko, jak zrobić ukryte inputy w formularzu oraz jak ustawić akcje formularza na zewnętrzny serwer? Przykład: <form method="post" name="paysafecard" action="https://www.rushpay.pl/api/psc/"> <input type="hidden" name="userid" value="1"> <input type="hidden" name="shopid" value="1"> <input type="submit" value="Zapłać"> </form>
  7. Witam, mógłbym poprosić o przykład includowania pliku z katalogu interface w frontowym module? Z góry dzięki za odpowiedź.
  8. Próbuję to przerobić pod IPS 4. You have used a file management function directly (/public_html/applications/amxxpanel/sources/GameServerQuery.php::86). Please use the proper APIs instead. protected function ping($host, $port, $command) { $socket = @stream_socket_client('udp://'.$host.':'.$port, $errno, $errstr, 2); if (!$errno && $socket) { stream_set_timeout($socket, 2); fwrite($socket, $command); $buffer = @fread($socket, 1500); fclose($socket); return $buffer; } return false; }
  9. Witam, mam taki problem: RuntimeException thrown with message "UDP_SCHEME_NOT_PERMITTED" Przerabiam http://alexou.net/pub/?GameServerQuery/GameServerQuery.php pod IPS 4, mój kod obecnie wygląda tak: <?php namespace IPS\amxxpanel\sources; class _GameServerQuery { protected function getByte(&$chaine) { $data = ord($chaine{0}); $chaine = substr($chaine, 1); return $data; } protected function getString(&$chaine, $chr = "\x00") { $data = strstr($chaine, $chr, true); $chaine = substr($chaine, strlen($data) + 1); return $data; } protected function getLong(&$chaine) { $long = unpack('l', substr($chaine, 0, 4)); $chaine = substr($chaine, 4); return $long[1]; } protected function getInteger16(&$chaine) { $int = unpack('Sint', substr($chaine, 0, 2)); $chaine = substr($chaine, 2); return $int['int']; } protected function getInteger32(&$chaine) { $int = unpack('Sint', substr($chaine, 0, 4)); $chaine = substr($chaine, 4); return $int['int']; } protected function getInteger8(&$chaine) { $chaine = substr($chaine, 1); return ord($chaine{0}); } protected function getVarInt(&$socket) { $int = 0; $i = 0; do { $byte = @fgetc($socket); if($byte === false) { return 0; } $byte = ord($byte); $int |= ($byte & 0x7F) << $i++ * 7; } while ($i < 6 && ($byte & 0x80) == 128); return $int; } protected function ping($host, $port, $command) { $socket = \IPS\Http\Url::external('udp://'.$host.':'.$port)->request()->get(); if (!$errno && $socket) { stream_set_timeout($socket, 2); fwrite($socket, $command); $buffer = @fread($socket, 1500); fclose($socket); return $buffer; } return false; } public function query ($host, $port, $type) { if (method_exists('GameServerQuery', 'query'.$type)) { return call_user_func('self::query'.$type, $host, $port); } else { throw new exception('Typpe de serveur invalide!'); } } public function isOnline ($host, $port, $type) { if ($type == 'minecraft') { // No need for the full ping return @fclose (@fsockopen ( $host , $port , $err , $errstr , 2 )); } if (method_exists('GameServerQuery', 'query'.$type)) { return self::{'query'.$type}($host , $port); } return @fclose (@fsockopen ( $host , $port , $err , $errstr , 2 )); } public function querySource($host, $port) { if ($reponse = self::ping($host, $port, "\xFF\xFF\xFF\xFFTSource Engine Query")) { $cs15 = false; $info = array(); $header = substr($reponse, 0, 5); if ($header !== "\xFF\xFF\xFF\xFF\x6D" && $header !== "\xFF\xFF\xFF\xFF\x49") { return false; } if ($reponse[4] == 'm') { //Le moteur CS1.5 $reponse = substr($reponse, 5); $reponse = strstr($reponse, chr(0)); $cs15 = true; } elseif ($reponse[4] == 'I') { // Le moteur source $reponse = substr($reponse, 5); } else { return false; } $info['version'] = self::getByte($reponse); $info['name'] = trim(self::getString($reponse)); $info['mapname'] = self::getString($reponse); $info['gamedir'] = self::getString($reponse); $info['gamedesc'] = self::getString($reponse); if (!$cs15) $reponse = substr($reponse, 2); $info['numplayers'] = self::getByte($reponse); $info['maxplayers'] = self::getByte($reponse); $info['bot'] = self::getByte($reponse); $info['dedicated'] = (chr(self::getByte($reponse)) === 'd') ? 1 : 0; $info['os'] = chr(self::getByte($reponse)); $info['password'] = self::getByte($reponse); $info['secure'] = self::getByte($reponse); return $info; } return false; } public function queryGS2($host, $port) { $reponse = self::ping($host, $port, "\xFE\xFD\x00PiNG\xFF\x00\x00"); if ($reponse === false || substr($reponse, 0, 5) !== "\x00PiNG") { return false; } $info = array(); $reponse=substr($reponse, 5); while($reponse != '') { $info[self::getString($reponse)] = self::getString($reponse); } return $info; } public function queryQuake3($host, $port) { $reponse = self::ping($host, $port, "\xFF\xFF\xFF\xFFgetstatus\x00"); if ($reponse === false || substr($reponse, 0, 5) !== "\xFF\xFF\xFF\xFFs") { return false; } $reponse = substr($reponse, strpos($reponse, chr(10))+2); $info = array(); $joueurs = substr($reponse, strpos($reponse,chr(10))+2); $reponse = substr($reponse, 0, strpos($reponse, chr(10))); while($reponse != ''){ $info[self::getString($reponse, '\\')] = self::getString($reponse, '\\'); } if (!empty($joueurs)) { $info['players'] = array(); while ($joueurs != ''){ $details = self::getString($joueurs, chr(10)); $info['players'][] = array('frag' => self::getString($details, ' '), 'ping' => self::getString($details, ' '), 'name' => $details); } } return $info; } public function queryDoom3($host, $port) { $reponse = self::ping($host, $port, "\xFF\xFFgetInfo\x00PiNGPoNG\x00"); if ($reponse === false || substr($reponse, 0, 5) !== "\xFF\xFFinf") { return false; } $reponse = substr($reponse, strpos($reponse, chr(0).chr(0))+2); while($reponse != '') { $variable = self::getString($reponse); $valeur = self::getString($reponse); if (empty($variable) && empty($valeur)) break; $info[$variable] = $valeur; } $info['players'] = array(); while (self::getInteger8($reponse) != 32 && $reponse != '') { $info['players'][] = array('ping' => self::getInteger16($reponse), 'frag' => self::getInteger32($reponse), 'name' => htmlentities(self::getString($reponse))); $reponse = substr($reponse, 1); } return $info; } public function queryMinecraft($host, $port) { $socket = @fsockopen( $host, $port, $errno, $errstr, 2); if (!$socket) { return false; } $header = "\x00"; // Packet ID $header .= "\x04"; // Protocol Version $header .= pack('c', strlen($host)) . $host; // server host + its length $header .= pack('n', $port); // server port $header .= "\x01"; // status $payload = pack('c', strlen($header)) . $header . "\x01\x00"; fwrite($socket, $payload); // handshake $length = self::getVarInt($socket); if($length < 15) { return false; } fgetc($socket); // Ping $length = self::getVarInt($socket); //payload $data = ''; while ($length != strlen($data) && $block = fread($socket, $length)) { $data .= $block; } if (strlen($data) < $length || $data === false) { return false; //Oh oh... } return json_decode($data, true); } } function parse_minecraft_string ($string) { $colors = array ( 1 => '#4c00c8', 2 => '#00d400', 3 => '#00c1c1', 4 => '#be0000', 5 => '#c900c3', 6 => '#d2ac00', 7 => '#bcbcbc', 8 => '#414141', 9 => '#7400ff', 0 => '#000000', 'a' => '#00ff00', 'b' => '#34ffff', 'c' => '#ff0000', 'd' => '#ff00ff', 'e' => '#eeff00', 'f' => '#ffffff', 'r' => '#ffffff', ); $format = array( 'l' => 'font-weight:bold;', 'm' => 'text-decoration: line-through', 'n' => 'text-decoration: underline', 'o' => 'font-style:italic', 'r' => '', ); foreach($colors as $a => $color) { $search[] = chr(194) . chr(167) . $a; $replace[] = '</span><span style="color: ' . $color . ';">'; } foreach($format as $a => $style) { $search[] = chr(194) . chr(167) . $a; $replace[] = ''; } return '<span>' . str_replace($search, $replace, $string) . '</span>'; } I mam kłopot z dokładnie tą funkcją: protected function ping($host, $port, $command) { $socket = \IPS\Http\Url::external('udp://'.$host.':'.$port)->request()->get(); if (!$errno && $socket) { stream_set_timeout($socket, 2); fwrite($socket, $command); $buffer = @fread($socket, 1500); fclose($socket); return $buffer; } return false; } Oryginalna wygląda tak: private static function ping($host, $port, $command) { $socket = @stream_socket_client('udp://'.$host.':'.$port, $errno, $errstr, 2); if (!$errno && $socket) { stream_set_timeout($socket, 2); fwrite($socket, $command); $buffer = @fread($socket, 1500); fclose($socket); return $buffer; } return false; } Jest ktoś w stanie mi pomóc? Z góry dziękuję
  10. Witam, mam problem z autocmplete, konsola wywala błąd z JS $output = '<script type="text/javascript"> new ipb.Autocomplete( $(\'main_search\'), { multibox: false, url: ipb.vars[\'base_url\'] + app=core&module=ajax&section=findnames&do=get-member-names&secure_key=\' + ipb.vars[\'secure_hash\'] + \'&name=\', templates: { wrap: ipb.templates[\'autocomplete_wrap\'], item: ipb.templates[\'autocomplete_item\'] } } ); </script><h3 class="maintitle">Gracze</h3><br /> <div id="search" style="width: 400px"> <form action="#" method="post" id="search-box"> <fieldset> <span id="search_wrap"> <input type="text" id="main_search" name="entered_name" class="" size="17" tabindex="1" placeholder="Wyszukiwanie..."> <span id="search_options" style="">Nazwa konta</span> <input type="submit" class="submit_input clickable" value=""> </span> </fieldset> </form> </div>'; SyntaxError: Left hand side of operator '=' must be a reference. Proszę o pomoc ;/
  11. Tylko buildandfetch daje 1 rekord a ja potrzebuje pętle ;/
  12. while ($row = $this->registry->DB('samp_db')->buildAndFetch( array( 'select' => 'lastvisit, name, premium, premiumtime, skin, online', 'from' => 'Accounts', 'where' => 'premium>=1', 'order'=> 'premium desc' ))) { $output .= '<tr class="row2"> <td style="text-align: center;">'.$panel->formatSkin($row['skin']).'</td> <td style="text-align: center;">'.$panel->formatName($row['name'], '1').' ('.$panel->formatName($row['name'], '2').')</td> <td style="text-align: center;">'; if ($row['online'] == 1) { $output .= '<span data-tooltip="Aktualnie przebywa na serwerze." class="ipsBadge ipsBadge_green">Aktywny</span>'; } else { $output .= '<span class="ipsText_small desc">'.$this->registry->class_localization->getDate( $row['lastvisit'], 'LONG', 1, 1 ).'</span>'; } $output .= '</td> <td style="text-align: center;"><span class="ipsText_small desc">'.$this->registry->class_localization->getDate( $row['premiumtime'], 'LONG', 1, 1 ).'</span></td> </tr>'; } i error 500
  13. Chodzi bardziej o to, że print_r($this->registry->DB('samp_db')->fetch()); daje 1 rekord: Array( [lastvisit] => 1445788842 [name] => Comb [premium] => 2 [premiumtime] => 2147483647 [skin] => 21 [online] => 0 )
×
×
  • Create New...

Important Information

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.