[Release] New Flyff Website

10/22/2015 12:55 julioclitwin#16
@xsrf
It's easy convert web to other games or is too dependent to FlyFF?
10/22/2015 13:19 xsrf#17
Step by Step:

1: Change your authority in your Database -> WebAccount to Z.

2: Logout and login again.

3: Click on the link "Administration Panel".

4. Take the Code for your Authority expamle: Z out of your database -> SecurityKey

5. Type in your key and submit.

6. Reload the site oder just reload the userpanel in the sidebar an click on the link again.


@ julioclitwin

It's quiet diffcult. On the one hand you can take my website as a basic website for new projects. but using this site for other games is not possible.

If you want to create your own website just add me in Skype and may i can help your without any payments, but i can't promise it.

If i can't help you without a payment i'll let know it before i start my work (:
10/22/2015 15:06 joshua.green#18
Right, I followed your steps and it worked. Thanks,

I completely wiped everything and started fresh, and now this is showing up:

[Only registered and activated users can see links. Click Here To Register...]


** FIXED **

Turns out I just clicked the error code showing and it started to work. Thanks for all your help xsrf I do appreciate it!
10/23/2015 14:54 /-/µR€#19
Habe da ein kleines problem:
[Only registered and activated users can see links. Click Here To Register...]

Channel1-1 ist auch eigentlich online, port stimmt auch :o

Edit: irgendwie scheint er hiermit ein problem zu haben
Code:
			return $player['Result'][1]['m_szName'];
10/24/2015 16:48 joshua.green#20
Is there anyway in which you can remove the PaySafeCard payment option and insert a PayPal form instead?

Wanted to know if its possible or not, I should be able to implement it myself but thought I would ask first before trying in case I ruin what I have done so far.

Also how do I go about getting the server 'online/offline' to work correctly? It states its offline all the time yet my server has not been down for over 2 weeks.

cheers

Josh
10/25/2015 18:46 alfredico#21
Quote:
Originally Posted by joshua.green View Post
Is there anyway in which you can remove the PaySafeCard payment option and insert a PayPal form instead?

Wanted to know if its possible or not, I should be able to implement it myself but thought I would ask first before trying in case I ruin what I have done so far.

Also how do I go about getting the server 'online/offline' to work correctly? It states its offline all the time yet my server has not been down for over 2 weeks.

cheers

Josh
Yes, it's possible.
10/28/2015 16:00 joshua.green#22
How do I get the Server 'offline' changed to 'online'. Reason I ask is that in the Ajax code it says its looking at the server IP and then its Port. The IP Address works and the Port is open and viewable. Any ideas on how to make this happen?
- sorry for all the questions. Better to ask and learn.

Thanks


****Edit****

Got it to work, incase anyone else end up having an issue with this here is what I did:

In the file Stats.Controller.php you will see this code:

Code:
	private function PingServerChannel($port, $ip){
		if(@fsockopen($ip, $port, $errno, $errstr, 0.15) >= 0.15) {
			return true;
		} 
		else {
			return false;
		}
	}
I did the following:

Code:
	private function PingServerChannel($ip, $port){
		if(@fsockopen($ip, $port, $errno, $errstr, 0.45) >= 0.45) {
			return true;
		} 
		else {
			return false;
		}
	}
Incase you can't see it, I swithced the $port and the $ip arround, i then changed the 0.15 to 0.45 (personal choice, it won't affect you if you change this or not)
10/31/2015 16:54 xsrf#23
Lordfix:

Stats.Controller.php

PHP Code:
private function CraftPlayerID($playerID){
        
$responseLength 7;
        
$valueLength strlen($playerID);
        
$valueLengthExtension null;
        
        for(
$i 1;$i <= $responseLength-$valueLength;$i++){
            
$valueLengthExtension .= 0;
        };
        
$mPlayerID $valueLengthExtension.$playerID;
        
$player self::Select(array('m_szName'), 'Character''CHARACTER_TBL', array('m_idPlayer' => $mPlayerID), null'TOP 1 ');
        return 
$player;
    }

private function 
GetServerLord(){
        
$lord self::Select(array('idElection''idLord'), 'Character''tblLord'null' ORDER BY [idElection] DESC''TOP 1');
        if(
$lord['Rows'] > 0){
            
$lord $lord['Result'][1]['idLord'];
            
$player self::CraftPlayerID($lord);
            
$player['Rows'] != null $player $player['Result'][1]['m_szName'] : $player null;
            return 
$player;
        }else {
            return 
'None';
        }
    } 
Vote:

- Add lastvote (int) in WebAccount Table in your website database.

- Write an ajax request (look at other files and call the vote function

Add this to Donate.Controller.php:

PHP Code:
public function SetVoteCoins()
    {
        global 
$cfg;
        
$vote self::Select(array('vcoins''lastvote'), 'Website''WebAccount', array('username' => $_SESSION['user']));
        
$last $vote['Result'][1]['lastvote'];
        
$coins = (int)$vote['Result'][1]['vcoins'];
        if(
$last == NULL || $last <= time()){
            
$nextvote time()+1*(int)$cfg['set_vote_pause']*60*60;
            
$newcoins $coins + (int)$cfg['set_vote_coins'];
            
self::Update(array('vcoins' => $newcoins), array('username' => $_SESSION['user']), 'Website''WebAccount');
            
self::Update(array('lastvote' => $nextvote), array('username' => $_SESSION['user']), 'Website''WebAccount');
            return array(
'success''Vote success. Please refresh your panel to see your vote coins.');
        }else {
            return array(
'danger''Can not vote now. New vote at: ' date('d.m.Y h:i:s a'));
        }
    } 
10/31/2015 17:50 joshua.green#24
Xsrf, how did you get the 'players online' stat working? Mine says 0 players all the time.
11/01/2015 19:00 Sakurax3#25
Erstmal echt tolle Seite und prima Release :)

@xsrf
Wie kann ich das denn beheben, dass alle Spieler als Arcanist angezeigt werden als Job?
11/01/2015 19:38 xsrf#26
[Only registered and activated users can see links. Click Here To Register...]

My Ranking Controller:


PHP Code:
<?php 

class Ranking extends Database {
    
/* Player Ranking Functions */
    
public static function GetClassIcon($classID) {
        
$class Flyff::GetClassName($classID);
        if(!
$class[1]){
            
$class $class[0];
        }else {
            
$class $class[0] . ' ' $class[1];;
        }
        return 
$class;
    }
    
    public static function 
GetClassName($classID) {
        
$class Flyff::GetClassName($classID);
        
$class $class[0];
        return 
$class;
    }
    
    public function 
GetPlayerList($limit) {
        
$get self::Select(array('m_szName''m_nJob''m_nLevel''TotalPlayTime'), 'Character''CHARACTER_TBL', array('m_chAuthority' => 'F''isblock' => 'F'), ' ORDER BY [m_nLevel] DESC, [m_nJob] DESC, [TotalPlayTime] DESC''TOP '.$limit.' ', array('=''='));
        if(
$get['Rows'] > 0){
            
$get['bool'] = true;
            return 
$get;
        }else {
            
$get['bool'] = false;
            return array(
'danger''There are no ranked players yet.');
        }
    }
    
    public function 
SelectGuildIDByPlayer($player){
        
$guildID self::Select(array('m_idGuild'), 'Character''GUILD_MEMBER_TBL', array('m_idPlayer' => $player), null);
        if(
$guildID['Rows'] > 0){
            
$guildID $guildID['Result'][1]['m_idGuild'];
        }else {
            
$guildID 'Guildless';
        }
        return 
$guildID;
    }
    
    private function 
SelectGuildNameByGuildID($guildID){
        
$guildName $guildID;
        if(
$guildName !== 'Guildless'){
            
$guildName self::Select(array('m_szGuild'), 'Character''GUILD_TBL', array('m_idGuild' => $guildID), null);
            
$guildName $guildName['Result'][1]['m_szGuild'];
        }
        return 
$guildName;
    }
    
    private function 
SetMultiserverView($multiserver){
        if(
$multiserver === '1'){
            return 
'Online';
        }else {
            return 
'Offline';
        }
    }
    
    public function 
GetPlayerRanking($limit){
        if(
gettype($limit) === 'integer'){
            
$player self::Select(array('m_idPlayer''m_szName''m_nJob''m_nLevel''TotalPlayTime''Multiserver'), 'Character''CHARACTER_TBL', array('m_chAuthority' => 'F''isblock' => 'F'), ' ORDER BY [m_nLevel] DESC, [m_nJob] DESC, [TotalPlayTime] DESC''TOP '.$limit.' '0, array('=''='));
            
$rows $player['Rows'];
            if(
$rows 0){
                
$player $player['Result'];
                for(
$i 1;$i <= $rows;$i++){
                    
$player[$i]['m_szGuild'] = self::SelectGuildNameByGuildID(self::SelectGuildIDByPlayer($player[$i]['m_idPlayer']));
                    
$player[$i]['Multiserver'] = self::SetMultiserverView($player[$i]['Multiserver'] );
                }
                
$player['bool'] = true;
                return 
$player;
            }else {
                return array(
'danger''Actually we have no registered players.''bool' => false, );
            }
        }else {
            return array(
'danger''Please stop forging the values.''bool' => false, );
        }
    }
    
    
/* Guild Ranking Functions */
    
    
private function CheckGuildMemberAuthority($guildID){
        
$response 1;
        
$playerID self::Select(array('m_idPlayer'), 'Character''GUILD_MEMBER_TBL', array('m_idGuild' => $guildID));
        
$authority = array();
        for(
$i 1;$i <= $playerID['Rows'];$i++){
            
$authority[$i] = self::Select(array('m_chAuthority'), 'Character''CHARACTER_TBL', array('m_idPlayer' => $playerID['Result'][$i]['m_idPlayer']));
            if(
$authority[$i]['Result'][1]['m_chAuthority'] !== 'F'){
                
$response 0;
            }
        }
        return 
$response;
    }
    
    private function 
SelectLeaderNameByGuildID($leaderID){
        
$leaderName self::Select(array('m_szName'), 'Character''CHARACTER_TBL', array('m_idPlayer' => $leaderID), null'TOP 1 ');
        return 
$leaderName['Result'][1]['m_szName'];
    }
    
    private function 
BetterGuildCreateFormat($creationDate$monthList){
        
$creationDate substr($creationDate0strlen($creationDate)-12);
        
$creationDate explode('-'$creationDate);
        
$creationDate[1] = $monthList[$creationDate[1]-1];
        
$creationDate $creationDate[1] . ', ' $creationDate[0];
        return 
$creationDate;
    }
    private function 
GetGuildMemberAmount($guildID){
        
$amount self::Select(array('m_idPlayer'), 'Character''GUILD_MEMBER_TBL', array('m_idGuild' => $guildID));
        return 
$amount['Rows'];
    }
    
    private function 
GetGuildLeader($guildID){
        
$leader self::Select(array('m_idPlayer''m_nMemberLv'), 'Character''GUILD_MEMBER_TBL', array('m_idGuild' => $guildID), ' ORDER by [m_nMemberLv]''TOP 1 ');
        
$leader self::SelectLeaderNameByGuildID($leader['Result'][1]['m_idPlayer']);
        return 
$leader;
    }
    
//in relation to slot amount + farbcodes
    
private function SplitSlotValues($slots$amount){
        
$unit $slots 4;
        
        if(
$amount <= $unit){
            return 
'50d3a9';
        }
        elseif(
$amount <= ($unit 2)){
            return 
'7bd350';
        }
        elseif(
$amount <= ($unit 3)){
            return 
'd3b050';
        }
        elseif(
$amount <= ($unit 4)){
            return 
'd35050';
        }
        
    }
    
    public function 
GetGuildRanking($limit$monthList$slots){
        if(
gettype($limit) === 'integer'){
            
$guild self::Select(array('m_idGuild''m_szGuild''m_nLevel''CreateTime'), 'Character''GUILD_TBL'null' ORDER BY [m_nLevel] DESC, [CreateTime] DESC''TOP '.$limit' ');
            
$rows $guild['Rows'];
            if(
$rows 0){
                
$guild $guild['Result'];
                
$a 0;
                for(
$i 1;$i <= $rows;$i++){
                    
$guild[$i]['Authority'] = self::CheckGuildMemberAuthority($guild[$i]['m_idGuild']);
                    if(
$guild[$i]['Authority'] === 1){
                        
$guild[$i]['MemberAmount'] = self::GetGuildMemberAmount($guild[$i]['m_idGuild']);
                        
$guild[$i]['CreateTime'] = self::BetterGuildCreateFormat($guild[$i]['CreateTime'],$monthList);
                        
$guild[$i]['GuildLeader'] = self::GetGuildLeader($guild[$i]['m_idGuild']);
                        
$guild[$i]['SlotSplitter'] = self::SplitSlotValues($slots$guild[$i]['MemberAmount']);
                        
$a++;
                    }else {
                        unset(
$guild[$i]);
                    }
                }
                
$mirror = array();
                foreach(
$guild as $key => $value){
                    
$mirror[] = $guild[$key];
                }
                
$mirror['bool'] = true;
                
$mirror['hide'] = $a;
                return 
$mirror;
            }else {
                return array(
'bool' => false'danger''There are actually none registered guilds.');
            }
        }
    }
    
}
11/01/2015 20:25 Sakurax3#27
Ok danke ^-^ funktioniert.
11/02/2015 11:29 xsrf#28
Entschuldige, hier ist der wirkliche fix:

PHP Code:
<?php 

class Ranking extends Database {
    
/* Player Ranking Functions */
    
public static function GetClassIcon($classID) {
        
$class Flyff::GetClassName($classID);
        if(!
$class[1]){
            
$class $class[0];
        }else {
            
$class $class[0] . ' ' $class[1];;
        }
        return 
$class;
    }
    
    public static function 
GetClassName($classID) {
        
$class Flyff::GetClassName($classID);
        
$class $class[0];
        return 
$class;
    }
    
    public function 
GetPlayerList($limit) {
        
$get self::Select(array('m_szName''m_nJob''m_nLevel''TotalPlayTime'), 'Character''CHARACTER_TBL', array('m_chAuthority' => 'F''isblock' => 'F'), ' ORDER BY [m_nLevel] DESC, [TotalPlayTime] DESC''TOP '.$limit.' ', array('=''='));
        if(
$get['Rows'] > 0){
            
$get['bool'] = true;
            return 
$get;
        }else {
            
$get['bool'] = false;
            return array(
'danger''There are no ranked players yet.');
        }
    }
    
    public function 
SelectGuildIDByPlayer($player){
        
$guildID self::Select(array('m_idGuild'), 'Character''GUILD_MEMBER_TBL', array('m_idPlayer' => $player), null);
        if(
$guildID['Rows'] > 0){
            
$guildID $guildID['Result'][1]['m_idGuild'];
        }else {
            
$guildID 'Guildless';
        }
        return 
$guildID;
    }
    
    private function 
SelectGuildNameByGuildID($guildID){
        
$guildName $guildID;
        if(
$guildName !== 'Guildless'){
            
$guildName self::Select(array('m_szGuild'), 'Character''GUILD_TBL', array('m_idGuild' => $guildID), null);
            
$guildName $guildName['Result'][1]['m_szGuild'];
        }
        return 
$guildName;
    }
    
    private function 
SetMultiserverView($multiserver){
        if(
$multiserver === '1'){
            return 
'Online';
        }else {
            return 
'Offline';
        }
    }
    
    public function 
GetPlayerRanking($limit){
        if(
gettype($limit) === 'integer'){
            
$player self::Select(array('m_idPlayer''m_szName''m_nJob''m_nLevel''TotalPlayTime''Multiserver'), 'Character''CHARACTER_TBL', array('m_chAuthority' => 'F''isblock' => 'F'), ' ORDER BY [m_nLevel] DESC, [TotalPlayTime] DESC''TOP '.$limit.' '0, array('=''='));
            
$rows $player['Rows'];
            if(
$rows 0){
                
$player $player['Result'];
                for(
$i 1;$i <= $rows;$i++){
                    
$player[$i]['m_szGuild'] = self::SelectGuildNameByGuildID(self::SelectGuildIDByPlayer($player[$i]['m_idPlayer']));
                    
$player[$i]['Multiserver'] = self::SetMultiserverView($player[$i]['Multiserver'] );
                }
                
$player['bool'] = true;
                return 
$player;
            }else {
                return array(
'danger''Actually we have no registered players.''bool' => false, );
            }
        }else {
            return array(
'danger''Please stop forging the values.''bool' => false, );
        }
    }
    
    
/* Guild Ranking Functions */
    
    
private function CheckGuildMemberAuthority($guildID){
        
$response 1;
        
$playerID self::Select(array('m_idPlayer'), 'Character''GUILD_MEMBER_TBL', array('m_idGuild' => $guildID));
        
$authority = array();
        for(
$i 1;$i <= $playerID['Rows'];$i++){
            
$authority[$i] = self::Select(array('m_chAuthority'), 'Character''CHARACTER_TBL', array('m_idPlayer' => $playerID['Result'][$i]['m_idPlayer']));
            if(
$authority[$i]['Result'][1]['m_chAuthority'] !== 'F'){
                
$response 0;
            }
        }
        return 
$response;
    }
    
    private function 
SelectLeaderNameByGuildID($leaderID){
        
$leaderName self::Select(array('m_szName'), 'Character''CHARACTER_TBL', array('m_idPlayer' => $leaderID), null'TOP 1 ');
        return 
$leaderName['Result'][1]['m_szName'];
    }
    
    private function 
BetterGuildCreateFormat($creationDate$monthList){
        
$creationDate substr($creationDate0strlen($creationDate)-12);
        
$creationDate explode('-'$creationDate);
        
$creationDate[1] = $monthList[$creationDate[1]-1];
        
$creationDate $creationDate[1] . ', ' $creationDate[0];
        return 
$creationDate;
    }
    private function 
GetGuildMemberAmount($guildID){
        
$amount self::Select(array('m_idPlayer'), 'Character''GUILD_MEMBER_TBL', array('m_idGuild' => $guildID));
        return 
$amount['Rows'];
    }
    
    private function 
GetGuildLeader($guildID){
        
$leader self::Select(array('m_idPlayer''m_nMemberLv'), 'Character''GUILD_MEMBER_TBL', array('m_idGuild' => $guildID), ' ORDER by [m_nMemberLv]''TOP 1 ');
        
$leader self::SelectLeaderNameByGuildID($leader['Result'][1]['m_idPlayer']);
        return 
$leader;
    }
    
//in relation to slot amount + farbcodes
    
private function SplitSlotValues($slots$amount){
        
$unit $slots 4;
        
        if(
$amount <= $unit){
            return 
'50d3a9';
        }
        elseif(
$amount <= ($unit 2)){
            return 
'7bd350';
        }
        elseif(
$amount <= ($unit 3)){
            return 
'd3b050';
        }
        elseif(
$amount <= ($unit 4)){
            return 
'd35050';
        }
        
    }
    
    public function 
GetGuildRanking($limit$monthList$slots){
        if(
gettype($limit) === 'integer'){
            
$guild self::Select(array('m_idGuild''m_szGuild''m_nLevel''CreateTime'), 'Character''GUILD_TBL'null' ORDER BY [m_nLevel] DESC, [CreateTime] DESC''TOP '.$limit' ');
            
$rows $guild['Rows'];
            if(
$rows 0){
                
$guild $guild['Result'];
                
$a 0;
                for(
$i 1;$i <= $rows;$i++){
                    
$guild[$i]['Authority'] = self::CheckGuildMemberAuthority($guild[$i]['m_idGuild']);
                    if(
$guild[$i]['Authority'] === 1){
                        
$guild[$i]['MemberAmount'] = self::GetGuildMemberAmount($guild[$i]['m_idGuild']);
                        
$guild[$i]['CreateTime'] = self::BetterGuildCreateFormat($guild[$i]['CreateTime'],$monthList);
                        
$guild[$i]['GuildLeader'] = self::GetGuildLeader($guild[$i]['m_idGuild']);
                        
$guild[$i]['SlotSplitter'] = self::SplitSlotValues($slots$guild[$i]['MemberAmount']);
                        
$a++;
                    }else {
                        unset(
$guild[$i]);
                    }
                }
                
$mirror = array();
                foreach(
$guild as $key => $value){
                    
$mirror[] = $guild[$key];
                }
                
$mirror['bool'] = true;
                
$mirror['hide'] = $a;
                return 
$mirror;
            }else {
                return array(
'bool' => false'danger''There are actually none registered guilds.');
            }
        }
    }
    
}
11/02/2015 20:34 devilingflyff02#29
can you please upload a db for mssql 2008?
11/02/2015 20:40 xsrf#30
No sorry, just look at my database and create it in 2008. It's not so hard.