Jump to content

Nightw0lf

Legendary Member
  • Posts

    3,029
  • Joined

  • Last visited

  • Days Won

    86
  • Feedback

    0%

Everything posted by Nightw0lf

  1. change this player.addAdena("Sell", totalPrice, merchant, false); to player.addAdena("Sell", 1, merchant, false); the best solution is to write for all items sold that cost is 1 adena in the window so you wont confuze players
  2. I know imagick and unpack in fact I did a search before I start the code but I decided the old way to give a more detailed example of how it could be done. I also saw that imagick was not by default enabled in PHP I wanted an out of box solution as possible and here it is. PS: also is a start if anybody wants can mess with imagick and re-share :) a shorter solution, the solution is the same.
  3. <?php // // Crest read from database by nightwolf // // Description // Usage 1: show a crest stored in database by using a clan id (form or var) // Usage 2: save a crest in a file "crests/[clanid].png" (where [clanid] is the clan id in database) // // Notes // 1: Cannot be SQL injected, this system uses prepared statements and PDO driver. // 2: Checks only for integer values if not then nothing happens // 3: Make sure you have in same level of this file a folder named "crests" with write permissions // Database values $ip = ""; $dbname = ""; $user = ""; $pass = ""; // show directly image on browser or save to /crests/[clanid].png $showImage = false; // expected request from a post form (remove if you want to set a var or make this part of another class) if ($showImage == false && (isset($_POST['ClanId']) && ! is_numeric($_POST['ClanId']))) return; // not an integer // POST by form (remove if you want to set $ClanId with a var of another class) $ClanId = $_POST['ClanId'] ?? 269884921; // set your var with ClanId this is an example // call the class Crest and inject the variables $crest = new Crest($ip, $dbname, $user, $pass); $crest = $crest->getCrest($ClanId); /** * * @author Nightwolf */ class Crest { /** * * @var Crest $connection */ private $connection; /** * * @var Crest $DatabaseIP */ private $DatabaseIP; /** * * @var Crest $DatabaseName */ private $DatabaseName; /** * * @var Crest $DatabaseUser */ private $DatabaseUser; /** * * @var Crest $DatabasePass */ private $DatabasePass; /** * * @var Crest $ClanId */ private $ClanId; /** * change this according to your database if needed * * @var Crest $SQL_CREST */ private $SQL_CREST = "SELECT clan_data.`crest` FROM `clan_data` WHERE clan_data.`clan_id` = :ClanId;"; /** * Constructor of the class Crest * * @param string $ip * @param string $dbname * @param string $user * @param string $pass */ public function __construct($ip, $dbname, $user, $pass) { $this->DatabaseIP = $ip; $this->DatabaseName = $dbname; $this->DatabaseUser = $user; $this->DatabasePass = $pass; // Create new Database connection (you can inject yours in constructor) try { $this->connection = new PDO('mysql:host=' . $this->DatabaseIP . ';dbname=' . $this->DatabaseName, $this->DatabaseUser, $this->DatabasePass); } catch (PDOException $e) { die($e->getMessage()); } } /** * Check in database for the clan ID * * @param integer $ClanId * @param boolean $showImage */ public function getCrest($ClanId, $showImage) { try { $stmt = $this->connection->prepare($this->SQL_CREST); $stmt->bindParam(':ClanId', $ClanId, PDO::PARAM_INT); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); if (isset($result['crest'])) $this->MakeImage($result['crest'], $ClanId, $showImage); } catch (Exception $e) { die($e->getMessage()); } } /** * Make a file of the crest image * * @param string $image * @param integer $ClanId * @param boolean $showImage */ private function MakeImage($image, $ClanId, $showImage) { // save path $save = "crests/" . $ClanId . ".png"; $rnd_file = tmpfile(); fwrite($rnd_file, $image); fseek($rnd_file, 0); $file = &$rnd_file; $dds = fread($file, 4); // Do not continue if the file is not a DDS image if ($dds !== 'DDS ') die("Error: is not an DDS image"); // unused size flags pitch (depends on usage i dont need them) $hdrSize = $this->readInt($file); $hdrFlags = $this->readInt($file); $imgHeight = $this->readInt($file) - 4; $imgWidth = $this->readInt($file); $imgPitch = $this->readShort($file); fseek($file, 84); $dxt1 = fread($file, 4); // do not conintue in case of a non DX1 format if ($dxt1 !== 'DXT1') die("Error: format is not DX1"); fseek($file, 128); if ($showImage == true) header("Content-type: image/png"); $img = imagecreatetruecolor($imgWidth, $imgHeight); for ($y = - 1; $y < $imgHeight / 4; $y ++) { for ($x = 0; $x < $imgWidth / 4; $x ++) { $color0_16 = $this->readShort($file); $color1_16 = $this->readShort($file); $r0 = ($color0_16 >> 11) << 3; $g0 = (($color0_16 >> 5) & 63) << 2; $b0 = ($color0_16 & 31) << 3; $r1 = ($color1_16 >> 11) << 3; $g1 = (($color1_16 >> 5) & 63) << 2; $b1 = ($color1_16 & 31) << 3; $color0_32 = imagecolorallocate($img, $r0, $g0, $b0); $color1_32 = imagecolorallocate($img, $r1, $g1, $b1); $color01_32 = imagecolorallocate($img, $r0 / 2 + $r1 / 2, $g0 / 2 + $g1 / 2, $b0 / 2 + $b1 / 2); $black = imagecolorallocate($img, 0, 0, 0); $data = $this->readInt($file); for ($yy = 0; $yy < 4; $yy ++) { for ($xx = 0; $xx < 4; $xx ++) { $bb = $data & 3; $data = $data >> 2; switch ($bb) { case 0: $c = $color0_32; break; case 1: $c = $color1_32; break; case 2: $c = $color01_32; break; default: $c = $black; break; } imagesetpixel($img, $x * 4 + $xx, $y * 4 + $yy, $c); } } } } imagepng($img, $showImage == true ? null : $save); } /** * Read Integer Values * * @param string $file * @return boolean */ private function readInt($file) { $b4 = ord(fgetc($file)); $b3 = ord(fgetc($file)); $b2 = ord(fgetc($file)); $b1 = ord(fgetc($file)); return ($b1 << 24) | ($b2 << 16) | ($b3 << 8) | $b4; } /** * Read Short values * * @param string $file * @return boolean */ private function readShort($file) { $b2 = ord(fgetc($file)); $b1 = ord(fgetc($file)); return ($b1 << 8) | $b2; } } ?>
  4. και τι θες να μας πείς ρε Γιώργο οτι δεν κατάλαβες τι λέει το ερρορ; κοιτα μάλλων λύπει κάποιο αρχείο θα χρειαστεί να πείς κιάλλα πράγματα για το σέρβερ για να βρείς λύση
  5. What is wrong with you and your language people show some respect on the forum, you talk like this on your parents? you are disgusting how you talk like this to a new member in maxcheaters?
  6. in this topic http://prntscr.com/prf7b8 Here is a photo of achylek in l2archage he is big fan obviously. http://prntscr.com/prfoa8 now here is the timeline of l2archage. https://l2archage.com/forum/changelog/ This is the changelog. @AchYlek where is your proofs for telling all this about me with bad attitude? What trash files I sold and how you know this where is your proofs? Just because I am paid to post some things in a forum does not mean you can go around and talk about me like that, maybe you should be banned for spreading false information without proofs, any member of archage team can confirm my place in the project.
  7. even advext is cheaper and has updates and fixes what is your support on the trash that already failed?
  8. translation i failed with my bullshit and now i am selling my bullshit created by me: i edited some text files changed some configs on vanganth shared sources (or worse the old cracked version) now i want a newby to buy my failure so i can go to vacation hoping i will find some noob that he wont report me
  9. your ddos is application related? licence not license for app/source c++ /php explain how you ddos protect the PHP and C++ i am all ears! dude if you keep like that i will report you for scamming stop your bullshit specially when you dont care to explain what you sell and when you dont know what you sell or how it works
  10. l2thegame? oh wait its skylord lets pretend we didnt see that coming
  11. https://captiongenerator.com/1556932/o-Kara-kai-to-Datapack
  12. you can add skill on porting the players to arena and then remove when the code port them to town or you can add skill on olympiad zone so when they enter they get this skill depends on their class or you can write a tone of useless code like balancer in formula
  13. I just saw via teamviewer kara's code and i have some comments a) The core is looking similar to rizels (we talk about 1 class here) b) The xml also looks similar c) The rest of the code is years ahead and not even close to rizels code and its more than 20 classes
  14. he just stole kara's code (check spam section)
  15. of topic on spam section, are you on drugs?
  16. @Maxtor did you just unban a guy who stole 400 euros in total?
  17. magic answer
  18. @Celestine @BruT scammed people and is somehow expired (unbanned )
  19. so you did not scam anybody and you think you can be treated as normal user? did you or did not scam people? answer that
  20. conclusion 1) kara has a customer 2) customer gives access to brut 3) brut steals kara code 4) kara blocks customer i think brut should be banned (dont know why he is not after the 200 euro scam) customer of kara should be also named as not trusted person pardon me i didnt read everything just 2-3 sentences as always.
  21. i've used so far server 2008 2012 and 2016 for windows 7 and 10 also run smooth no issues but didnt test for long time since i only installed it to make some php applications about sql server as people say 2008 is the best from my experience
  22. wow! thank you for sharing and keep up! amazing work!
  23. whats your issue send me a message to discuss or here
  24. Best sanitize of the year award goes to you.
×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..