Jump to content

Hyvraine

Members
  • Posts

    133
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Hyvraine

  1. I think we have the same problem too: UseMD5 is set to false. When you register, after you click the submit button it goes to error page but the account details gets inserted to the SQL. And when logging in: Unexpected error occurred, please try again or report to the admin. I'm using the default theme in case anyone's wondering.
  2. PORT FORWARDING NG IPPPEHHH -nuffsaid-
  3. pretty sure it's supposed to be like this: haven't tried it tho
  4. more like <img src="<?php echo $this->emblem($i) ?>" /> since the code was basically for foreach --
  5. <img src="<?php echo $this->emblem($guild->guild_id) ?> $guild->guild_id would be obviously the ID of the guild you want to show
  6. yeahhh.. i'm assuming you put the files in the themes folder? or am I just misinterpreting it? and ur using feety's?
  7. did i just credit the flux i'm using to a wrong person? LOL if you really want this guy's v4p, and if it's alright with you we can TeamView @jimmy7777 192.168.1.1 > enter that in your browser o.o then type the account details
  8. I don't think it's supposed to do that... Why don't you try JayPee's V4P instead? And make sure you're using Xantara's FluxCP because as far as I know it's properly working.
  9. Well this is funny, it doesn't work on both FluxCP versions.. Missing View on eA version. Page Not Found on rA version. I forgot to rename the theme lol (default > whatever name your theme is) Those appear in both rA(Xantara) and eA(Byteflux) version of FluxCP.
  10. Katazui, check your themes folder and see if there's a folder called voteforpoints, if you find one delete it and check the modules folder too and do the same it's an addon so the whole folder must only go inside the addon folder the structure goes like this fluxroot > addons > voteforpoints it should solve the problem correct me if i'm wrong
  11. LOL Am I the only person who's thinking of the other pot? LOL I thought this was a spam )
  12. can you give me a link to your site? If you have a full flux cp then you should've just uploaded the whole folder then, then edit the files and you should be fine have you even tried uploading a simple text file to test if it's just your flux cp and not the host? - what kind of support is that
  13. You should really post your original application.php and the application.php of the integ Without the confidential details of course.
  14. if ($session->isLoggedIn()): //do something here endif;
  15. Hyvraine

    Font Size

    Same here, I don't know if it's possible. I'm also not sure whether changing angles would affect the size of the text; anyways here's a GIF to compare the images:
  16. Uhm.. why was this reported as broken yesterday? O_o
  17. Hyvraine

    VOTE NPC

    Lol form Vote NPC to Card Removal NPC?
  18. rAthena or eAthena? Flux 1.00 = eAthena Flux 2.xx (I think Xantara's is 2.xx) = rAthena
  19. Gusto kitang tulungan, pero honestly wala akong maintindihan sa pinagsasasabi mo LOL
  20. My god! Thank you for this! Well, I was just trying out if I could make my own charsim, it's just in the... garbage state lol. Thank you very much!! again! How can I repay you ))
  21. OMG! It's finally working! Thank you so much! Just one more question: where did you study this stuff? how did you know that they'll be available in: extract( unpack("lnumExtraInfo", fread($this->act,0x04) ) ); ?? I just want to learn more 8D
  22. Yeah I have read your note and tried to extract it, it still didn't work (now it doesn't read all of them): Sorry if I'm wasting your time >_> This is now the code with your fix: public function readAct($act,$save,$output,$code) { // Open the act file. $this->act = fopen($act, "rb"); // Just like on the sprites we read some infos: ident=ACT, version, number of frames $this->aHeader = unpack('H4ident/Sversion/SnumFrames', fread($this->act, 0x06)); // Get the filesize (used this for sql database etc.) $this->aSize = filesize($act); // The total amount of animations used $this->aAnimations = $this->aHeader['numFrames']; // The number of actions is the num of animations divided by 8. // So what are the "actions"? I just named them like this. They're basicly the directions you can look at. Just like in actOR. // \ | / } // -- o -- }-> 8 in total // / | \ } $this->aActions = ($this->aAnimations / 8); // The version $this->aVersion = dechex($this->aHeader['version']); // Format the version nicely $this->aVersion = (double)preg_replace('{([0-9])(.*?)([0-9])}', '$1.$2', $this->aVersion); // Skip some useless data on one needs fseek($this->act, 0xA, SEEK_CUR); // We're currently at action 0 $currentAction = 0; // Our index for the while loop $anim = 0; // Arrays we save our informations in $pointerMemoryANIM = array(); $pointerMemoryNF = array(); $pointerMemoryPAT = array(); // Lets go through the animations, shall we? while($anim < $this->aAnimations) { // First how many Frames does the action have? // On a normal headgear this would be 3. Because when you are sitting downwards you can look down with your head, left and right. So 3 in total. // Ff you have an animated sprite its more obviously $this->aAnimData[$anim] = unpack('lnumFrames', fread($this->act, 0x04)); // So lets loop through those Frames, cuz they all got individual informations for us for($nf = 0; $nf < $this->aAnimData[$anim]['numFrames']; $nf++) { // Skip useless data fseek($this->act, 0x20, SEEK_CUR); // And now we check how many subFrames this frame got. Or better said Patterns (like in actOR) // For example, if you have a monster sprite and some special effects as seperates sprite frames in the .spr file. // You'll have to paste them onto the stage right? Thats where the patters are being created. Like layers in photoshop. $this->aAnimData[$anim][$nf] = unpack('lnumSubFrames', fread($this->act, 0x04)); // Loop through the patterns or layers for more info about them for($patNo = 0; $patNo < $this->aAnimData[$anim][$nf]['numSubFrames']; $patNo++) { $this->aAnimData[$anim][$nf][$patNo] = unpack('lxOffset/lyOffset/lsprNo/lmirrored/Cred/Cgreen/Cblue/Calpha', fread($this->act, 0x14)); if($this->aVersion < 2.0 ); else if($this->aVersion < 2.4 ) $this->aAnimData[$anim][$nf][$patNo] += unpack('fxyScale/lrotation/lsprType', fread($this->act, 12)); else if($this->aVersion == 2.4 ) $this->aAnimData[$anim][$nf][$patNo] += unpack('fxScale/fyScale/lrotation/lspr_type', fread($this->act, 16)); else $this->aAnimData[$anim][$nf][$patNo] += unpack('fxScale/fyScale/lrotation/lsprType/lsprWidth/lsprHeight', fread($this->act, 24)); } // The end of the Patterns/Layers on the Frame. // So lets see if it has some kind of sound attached to it? (To the frame) fseek( $this->act, 4, SEEK_CUR ); // sound id, store it in a variable if you want extract( unpack("lnumExtraInfo", fread($this->fp,0x04) ) ); $extraInfos = array(); for ( $i=0; $i<$numExtraInfo; ++$i ) { $extraInfos[$i] = unpack( "x4/VExtXOffsetX/VExtXOffsetY/x4", fread($this->act,16) ); } } // Increase our Action and loop through the next frames and patterns^^ $anim++; } // After reading all infos we are at the end of the act file where the sound informations are stored. $this->aSoundData = unpack('lnumSounds', fread($this->act, 0x04)); // It has some sounds? if($this->aSoundData['numSounds'] > 0) { // We loop through number of sounds to grab it. for($nSnd = 0; $nSnd < $this->aSoundData['numSounds']; $nSnd++) { // Now because the sound file is a string (directs to some .wav file in the grf), saved in hex and for our advantage always exactly 40 bytes long // we read the string as hex values and save it like that $this->aSoundData[$nSnd] = unpack('H80file', fread($this->act, 0x28)); } } // Oh we also got the interval a frame is played at? That info is ours! > for($intv = 0; $intv < $this->aAnimations; $intv++) { $this->aAnimData[$intv] += unpack('fanimSpeed', fread($this->act, 0x04)); } // Lets format our earlier saved hex string to a actual string with letters and not just numbers ^^ // Some note: If there are sounds in the act (mostly monsters) there always appears to be a sound called "atk", just like that. // It doesnt exist in the grf and I have no idea how it is being handled. Maybe some description of the sounds? foreach($this->aSoundData as $id=>$string) { if((string)$id != 'numSounds') $this->aSoundData[$id] = str_replace(pack('H2','00'),"",(pack('H*', $string['file']))); } // Lets display our results of the act file. $act = '$jact'; if (strpos($output, "head")) { $act = '$hact'; } if ($save==1) { file_put_contents($output."$code.php", "<?php $act = ".var_export($this->aAnimData,true).";?>"); } else { echo '<pre>'; echo print_r($this->aAnimData, true); echo print_r($this->aSoundData, true); echo '</pre>'; } // Close the file, its no longer needed. =( fclose($this->act); }
  23. Hey ;o It still doesn't work However this is the code with the comments and I added my edit to view the external offsets: again it doesn't work with Kagerou and F_Lord Knight public function readAct($act,$save,$output,$code) { // Open the act file. $this->act = fopen($act, "rb"); // Just like on the sprites we read some infos: ident=ACT, version, number of frames $this->aHeader = unpack('H4ident/Sversion/SnumFrames', fread($this->act, 0x06)); // Get the filesize (used this for sql database etc.) $this->aSize = filesize($act); // The total amount of animations used $this->aAnimations = $this->aHeader['numFrames']; // The number of actions is the num of animations divided by 8. // So what are the "actions"? I just named them like this. They're basicly the directions you can look at. Just like in actOR. // \ | / } // -- o -- }-> 8 in total // / | \ } $this->aActions = ($this->aAnimations / 8); // The version $this->aVersion = dechex($this->aHeader['version']); // Format the version nicely $this->aVersion = (double)preg_replace('{([0-9])(.*?)([0-9])}', '$1.$2', $this->aVersion); // Skip some useless data on one needs fseek($this->act, 0xA, SEEK_CUR); // We're currently at action 0 $currentAction = 0; // Our index for the while loop $anim = 0; // Arrays we save our informations in $pointerMemoryANIM = array(); $pointerMemoryNF = array(); $pointerMemoryPAT = array(); // Lets go through the animations, shall we? while($anim < $this->aAnimations) { // First how many Frames does the action have? // On a normal headgear this would be 3. Because when you are sitting downwards you can look down with your head, left and right. So 3 in total. // Ff you have an animated sprite its more obviously $this->aAnimData[$anim] = unpack('lnumFrames', fread($this->act, 0x04)); // So lets loop through those Frames, cuz they all got individual informations for us for($nf = 0; $nf < $this->aAnimData[$anim]['numFrames']; $nf++) { // Skip useless data fseek($this->act, 0x20, SEEK_CUR); // And now we check how many subFrames this frame got. Or better said Patterns (like in actOR) // For example, if you have a monster sprite and some special effects as seperates sprite frames in the .spr file. // You'll have to paste them onto the stage right? Thats where the patters are being created. Like layers in photoshop. $this->aAnimData[$anim][$nf] = unpack('lnumSubFrames', fread($this->act, 0x04)); // Loop through the patterns or layers for more info about them for($patNo = 0; $patNo < $this->aAnimData[$anim][$nf]['numSubFrames']; $patNo++) { // Grab OffsetX, OffsetY (I didnt go to the point where i would need to figure out the (0,0) coordinates to which this relates to) // Spr number (the sprite frame from the .spr file) // mirrored? red,green,blue,alpha $this->aAnimData[$anim][$nf][$patNo] = unpack('lxOffset/lyOffset/lsprNo/lmirrored/Cred/Cgreen/Cblue/Calpha', fread($this->act, 0x14)); // Now there are different informations stored depending on the act version. // from 2.0 till 2.3 we grab XYScale if($this->aVersion >= 2.0 && $this->aVersion <= 2.3) $this->aAnimData[$anim][$nf][$patNo] += unpack('fxyScale', fread($this->act, 0x04)); // If its 2.4 or higher we get XScale and YScale if($this->aVersion >= 2.4) $this->aAnimData[$anim][$nf][$patNo] += unpack('fxScale/fyScale', fread($this->act, 0x08)); // Now the rotation and the sprType (32 bit or not) $this->aAnimData[$anim][$nf][$patNo] += unpack('lrotation/lsprType', fread($this->act, 0x08)); // If its 2.5 or higher we also got the sprites Width and Height (we should have this info from the sprite itself already though, dont ask me why they put this there) if($this->aVersion >= 2.5) $this->aAnimData[$anim][$nf][$patNo] += unpack('lsprWidth/lsprHeight', fread($this->act, 0x08)); } // The end of the Patterns/Layers on the Frame. // So lets see if it has some kind of sound attached to it? (To the frame) $this->aAnimData[$anim][$nf] += unpack('lsoundNo/fExtXOffset/lExtXOffset/lExtXOffset/sExtYOffset', fread($this->act, 0x14)); // See if there are some extra info, if yes: Skip it, we dont need that crap $extrainfo = unpack('lbool', fread($this->act, 0x04)); if($extrainfo['bool'] == 1) fseek($this->act, 0x10, SEEK_CUR); } // Increase our Action and loop through the next frames and patterns^^ $anim++; } // After reading all infos we are at the end of the act file where the sound informations are stored. $this->aSoundData = unpack('lnumSounds', fread($this->act, 0x04)); // It has some sounds? if($this->aSoundData['numSounds'] > 0) { // We loop through number of sounds to grab it. for($nSnd = 0; $nSnd < $this->aSoundData['numSounds']; $nSnd++) { // Now because the sound file is a string (directs to some .wav file in the grf), saved in hex and for our advantage always exactly 40 bytes long // we read the string as hex values and save it like that $this->aSoundData[$nSnd] = unpack('H80file', fread($this->act, 0x28)); } } // Oh we also got the interval a frame is played at? That info is ours! > for($intv = 0; $intv < $this->aAnimations; $intv++) { $this->aAnimData[$intv] += unpack('fanimSpeed', fread($this->act, 0x04)); } // Lets format our earlier saved hex string to a actual string with letters and not just numbers ^^ // Some note: If there are sounds in the act (mostly monsters) there always appears to be a sound called "atk", just like that. // It doesnt exist in the grf and I have no idea how it is being handled. Maybe some description of the sounds? foreach($this->aSoundData as $id=>$string) { if((string)$id != 'numSounds') $this->aSoundData[$id] = str_replace(pack('H2','00'),"",(pack('H*', $string['file']))); } // Lets display our results of the act file. $act = '$jact'; if (strpos($output, "head")) { $act = '$hact'; } if ($save==1) { file_put_contents($output."$code.php", "<?php $act = ".var_export($this->aAnimData,true).";?>"); } else { echo '<pre>'; echo print_r($this->aAnimData, true); echo print_r($this->aSoundData, true); echo '</pre>'; } // Close the file, its no longer needed. =( fclose($this->act); }
  24. You just need to put enough length for the unpack().Example: unpack('fxScale/fyScale/lrotation/lsprType/lsprWidth/lsprHeight', fread($this->act, 24));For each name in the unpack(), take the first letter:f = float = 4 bytes l = long = 4 bytes 4 (xScale) + 4 (yScale) + 4 (rotation) + 4 (sprType) + 4 (sprWidth) + 4 (sprHeight) = 24. Can you upload a act you have problem with ? And why isn't that in the PHP Manual.. or maybe I just missed it: Here are the files: 4008_4211.rar Edit: Why does this work tho: $this->aAnimData[$anim][$nf] += unpack('lExtYOffset/lExtYOffset/lExtXOffset/lExtYOffset/lExtXOffset', fread($this->act, 0x14)); except f_4008 and 4211 of course
×
×
  • Create New...