Jump to content

Xgear

Community Contributors
  • Content Count

    249
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Xgear


  1. Could you provide some of the plugins you're using? I just tried with the default sample plugin and it loaded fine, so there could be issues with the specific plugin you're trying to load. 

    If the plugin relies on functions overloading and the functions are core functions that change, the plugin might not work properly. 

    Every plugin coder should keep their plugins up-to-date to avoid them breaking, specially now that the code is still being overwritten to work with the HPM, so development that could cause some conflicts is still pretty big. 

    However, if I remember correctly, if a plugin has some sort of conflict it shouldnt load (Which is the function of the HPM value)


  2. The last entry in the array shouldnt contain a separator.

     

    Samuel, if you don't have GDB try finding a guide to install it in your OS (its most likely either apt-get gdb or yum install gdb)

    Once its installed you can run "gdb map-server" (You said you couldn run "gdb map server", there shouldnt be a space inbetween the name if you're using the default binary names) and get a full backtrace so we can better help you. 


  3. Plugins need to be compiled on their respective enviroment, aka a plugin Compiled on Windows 7 32bits, will not work on any other OS/Architecture. 

    Do you get any errors/warnings when compiling on unix?

    If you navigate to ~/server/plugins/ do you see your plugin.so? (Replace plugin.so with whatever the name of the plugin is, most likely afk.so)

    How did you load your plugin @ conf/plugins.conf?

     

    If the code was broken it'd most likely not compile

    Try running gdb map-server 

    If it crashes, do a bt full and paste the output here. 


  4. Instead of deleting the contents of the index file its best to add the timestamps to make sure you are completely up to date.

    inside sql-files/upgrades each one of the .sql files has something like 

    INSERT INTO `sql_updates` (`timestamp`) VALUES (SOME RANDOM BIG NUMBER);

     

    Make sure you run those inserts -if you're 100% sure you applied the patches-


  5. You can use 1 login table and multiple map/char servers databases, thats easier. You'd only need to add arrays as needed into CharMapServers, one per each server with its corresponding settings. (I added 2 more servers, which I only changed the name to FluxRO2 and FluxRO3

    config/servers.php

        // Example server configuration. You may have more arrays like this one to
    // specify multiple server groups (however they should share the same login
    // server whilst they are allowed to have multiple char/map pairs).

    'CharMapServers' => array(			array(				'ServerName'    => 'FluxRO',				'BaseExpRates'  => 200,				'JobExpRates'   => 200,				'MvpExpRates'   => 200,				'DropRates'     => 25,				'MvpDropRates'  => 25,				'CardDropRates' => 25,				'MaxCharSlots'  => 9,				'DateTimezone'  => null,       // Specifies game server's timezone for this char/map pair. (See: http://php.net/timezones)				//'ResetDenyMaps' => 'sec_pri',  // Defaults to 'sec_pri'. This value can be an array of map names.				//'Database'      => 'ragnarok', // Defaults to DbConfig.Database				'CharServer'    => array(					'Address'   => '127.0.0.1',					'Port'      => 6121				),				'MapServer'     => array(					'Address'   => '127.0.0.1',					'Port'      => 5121				),				// -- WoE days and times --				// First parameter: Starding day 0=Sunday / 1=Monday / 2=Tuesday / 3=Wednesday / 4=Thursday / 5=Friday / 6=Saturday				// Second parameter: Starting hour in 24-hr format.				// Third paramter: Ending day (possible value is same as starting day).				// Fourth (final) parameter: Ending hour in 24-hr format.				// ** (Note, invalid times are ignored silently.)				'WoeDayTimes'   => array(					//array(0, '12:00', 0, '14:00'), // Example: Starts Sunday 12:00 PM and ends Sunday 2:00 PM					//array(3, '14:00', 3, '15:00')  // Example: Starts Wednesday 2:00 PM and ends Wednesday 3:00 PM				),				// Modules and/or actions to disallow access to during WoE.				'WoeDisallow'   => array(					array('module' => 'character', 'action' => 'online'),  // Disallow access to "Who's Online" page during WoE.					array('module' => 'character', 'action' => 'mapstats') // Disallow access to "Map Statistics" page during WoE.				)			)		)

    Change to

    'CharMapServers' => array(			array(				'ServerName'    => 'FluxRO',				'BaseExpRates'  => 200,				'JobExpRates'   => 200,				'MvpExpRates'   => 200,				'DropRates'     => 25,				'MvpDropRates'  => 25,				'CardDropRates' => 25,				'MaxCharSlots'  => 9,				'DateTimezone'  => null,       // Specifies game server's timezone for this char/map pair. (See: http://php.net/timezones)				//'ResetDenyMaps' => 'sec_pri',  // Defaults to 'sec_pri'. This value can be an array of map names.				//'Database'      => 'ragnarok', // Defaults to DbConfig.Database				'CharServer'    => array(					'Address'   => '127.0.0.1',					'Port'      => 6121				),				'MapServer'     => array(					'Address'   => '127.0.0.1',					'Port'      => 5121				),				// -- WoE days and times --				// First parameter: Starding day 0=Sunday / 1=Monday / 2=Tuesday / 3=Wednesday / 4=Thursday / 5=Friday / 6=Saturday				// Second parameter: Starting hour in 24-hr format.				// Third paramter: Ending day (possible value is same as starting day).				// Fourth (final) parameter: Ending hour in 24-hr format.				// ** (Note, invalid times are ignored silently.)				'WoeDayTimes'   => array(					//array(0, '12:00', 0, '14:00'), // Example: Starts Sunday 12:00 PM and ends Sunday 2:00 PM					//array(3, '14:00', 3, '15:00')  // Example: Starts Wednesday 2:00 PM and ends Wednesday 3:00 PM				),				// Modules and/or actions to disallow access to during WoE.				'WoeDisallow'   => array(					array('module' => 'character', 'action' => 'online'),  // Disallow access to "Who's Online" page during WoE.					array('module' => 'character', 'action' => 'mapstats') // Disallow access to "Map Statistics" page during WoE.				)			)			array(				'ServerName'    => 'FluxRO2',				'BaseExpRates'  => 200,				'JobExpRates'   => 200,				'MvpExpRates'   => 200,				'DropRates'     => 25,				'MvpDropRates'  => 25,				'CardDropRates' => 25,				'MaxCharSlots'  => 9,				'DateTimezone'  => null,       // Specifies game server's timezone for this char/map pair. (See: http://php.net/timezones)				//'ResetDenyMaps' => 'sec_pri',  // Defaults to 'sec_pri'. This value can be an array of map names.				//'Database'      => 'ragnarok', // Defaults to DbConfig.Database				'CharServer'    => array(					'Address'   => '127.0.0.1',					'Port'      => 6121				),				'MapServer'     => array(					'Address'   => '127.0.0.1',					'Port'      => 5121				),				// -- WoE days and times --				// First parameter: Starding day 0=Sunday / 1=Monday / 2=Tuesday / 3=Wednesday / 4=Thursday / 5=Friday / 6=Saturday				// Second parameter: Starting hour in 24-hr format.				// Third paramter: Ending day (possible value is same as starting day).				// Fourth (final) parameter: Ending hour in 24-hr format.				// ** (Note, invalid times are ignored silently.)				'WoeDayTimes'   => array(					//array(0, '12:00', 0, '14:00'), // Example: Starts Sunday 12:00 PM and ends Sunday 2:00 PM					//array(3, '14:00', 3, '15:00')  // Example: Starts Wednesday 2:00 PM and ends Wednesday 3:00 PM				),				// Modules and/or actions to disallow access to during WoE.				'WoeDisallow'   => array(					array('module' => 'character', 'action' => 'online'),  // Disallow access to "Who's Online" page during WoE.					array('module' => 'character', 'action' => 'mapstats') // Disallow access to "Map Statistics" page during WoE.				)			)			array(				'ServerName'    => 'FluxRO3',				'BaseExpRates'  => 200,				'JobExpRates'   => 200,				'MvpExpRates'   => 200,				'DropRates'     => 25,				'MvpDropRates'  => 25,				'CardDropRates' => 25,				'MaxCharSlots'  => 9,				'DateTimezone'  => null,       // Specifies game server's timezone for this char/map pair. (See: http://php.net/timezones)				//'ResetDenyMaps' => 'sec_pri',  // Defaults to 'sec_pri'. This value can be an array of map names.				//'Database'      => 'ragnarok', // Defaults to DbConfig.Database				'CharServer'    => array(					'Address'   => '127.0.0.1',					'Port'      => 6121				),				'MapServer'     => array(					'Address'   => '127.0.0.1',					'Port'      => 5121				),				// -- WoE days and times --				// First parameter: Starding day 0=Sunday / 1=Monday / 2=Tuesday / 3=Wednesday / 4=Thursday / 5=Friday / 6=Saturday				// Second parameter: Starting hour in 24-hr format.				// Third paramter: Ending day (possible value is same as starting day).				// Fourth (final) parameter: Ending hour in 24-hr format.				// ** (Note, invalid times are ignored silently.)				'WoeDayTimes'   => array(					//array(0, '12:00', 0, '14:00'), // Example: Starts Sunday 12:00 PM and ends Sunday 2:00 PM					//array(3, '14:00', 3, '15:00')  // Example: Starts Wednesday 2:00 PM and ends Wednesday 3:00 PM				),				// Modules and/or actions to disallow access to during WoE.				'WoeDisallow'   => array(					array('module' => 'character', 'action' => 'online'),  // Disallow access to "Who's Online" page during WoE.					array('module' => 'character', 'action' => 'mapstats') // Disallow access to "Map Statistics" page during WoE.				)			)		)

  6. Intenta habilitando DMZ en lugar de redireccionamiento.

    Los servidores tienen que tener en alguna parte la opcion de configurar su IP o su bind_ip. Configurala a la que corresponda (a la IP que te da el router)

     

    Si no funciona lo de asignar el bind_ip intenta deshabilitar la segunda tarjeta de red para probar, todo con DMZ en el router activado. Así se va descartando de a poco que puede ser. 


  7. I am no wiz at FluxCP, with a quick glance at the code (Not sure if there are plugins/modules that support what you asked for)

    lib/Flux/LoginServer.php

    	public function __construct(Flux_Config $config)	{		parent::__construct($config);		$this->loginDatabase = $config->getDatabase();	}

    Replace with something like 

    	public function __construct(Flux_Config $config)	{		parent::__construct($config);		$this->loginDatabase = $config->getDatabase();		$this->loginDatabase_2 = 'my_ro_db1';		$this->loginDatabase_3 = 'my_ro_db2';	}

    And then

    		$sql = "INSERT INTO {$this->loginDatabase}.login (userid, user_pass, email, sex, level) VALUES (?, ?, ?, ?, ?)";		$sth = $this->connection->getStatement($sql);		$res = $sth->execute(array($username, $password, $email, $gender, (int)$this->config->getLevel()));

    To

    		$sql = "INSERT INTO {$this->loginDatabase_2}.login (userid, user_pass, email, sex, level) VALUES (?, ?, ?, ?, ?)";		$sth = $this->connection->getStatement($sql);		$res = $sth->execute(array($username, $password, $email, $gender, (int)$this->config->getLevel()));		$sql = "INSERT INTO {$this->loginDatabase_1}.login (userid, user_pass, email, sex, level) VALUES (?, ?, ?, ?, ?)";		$sth = $this->connection->getStatement($sql);		$res = $sth->execute(array($username, $password, $email, $gender, (int)$this->config->getLevel()));		$sql = "INSERT INTO {$this->loginDatabase}.login (userid, user_pass, email, sex, level) VALUES (?, ?, ?, ?, ?)";		$sth = $this->connection->getStatement($sql);		$res = $sth->execute(array($username, $password, $email, $gender, (int)$this->config->getLevel()));

    Something like that would work for what you're asking, keep in mind though, each instance of Flux will probabbly work with each server it is configured to work with, so the CP would only retrieve data from $this->loginDatabase and nowhere else.

    If you have no need for players to use the CP on other the other servers. (FluxCP seems to keep its own record for created accounts too, so simply adding the entry to your other server's login table might not fully work either, unless you redo the queries for each server that FluxCP depends on. 

    Also this will not check for already-in-use usernames, you'd have to look at the register function and repeat the function three times.

     

    Another approach could be something like:

    Copy the register function into 3 new functions (register_srv1, register srv_2, register_srv3, load each one of your database into 3 new vars and do the inserts as needed. This again wouldnt work if you already have the login tables populated with information unless you do the proper checks first to see if the data can be inserted. 


  8. @Gepard

    I figured the CPs would be brought into discussion, this might not be a good answer, however I do not believe the emulator should be built around CPs, it should be the other way around. 

    As for not a good reason, a large amount of MySQL words are reserved words in most languages, the suggestion was mainly focused towards MySQL reserved words Found here). As for other programming languages, I'd say its good practice? Not to mention when having more descriptive column names you'd avoid issues with reserved words on its most.

     

    As for logbranch, weird, didn't notice, it still holds on information at all that can be of any use (Looks like a poor implementation of picklog) :P I still think it should probably be either dropped or heavily improved, so it can serve a purpose.

     

    @Ind, Wouldn't it be better to simply add another column, like target/destination? Log branches could target the mob that was spawned, loot/steal could be the mobid, Trades provide the receipt and so on. Only one I see being different would be NPC's since afaik there is no ID on them or easy way to identify them constantly (Guess IDs would change as they are loaded/reloaded). However, knowing from which NPC an item came/went to could be pretty useful at times. 

    Something like that could have some consistency/rganization issues if thrown into a single table though, which could be its major drawback I guess. 


  9. Not sure I understood your question, however when moving over to Hercules you'll have to update most of your existing modifications to work with Hercules (It isnt all that hard if you do know a bit about source editing)

    The NPC might need some small tweaking depending on what you modified, shouldnt be anything major really though. 

    The database will have the modifications on its structure required by Hercules up to the current revision. (I never used 3ceam so I can't tell how different they are)


  10. jaBote, eso es en todos los lenguajes de programación o de scripting, ya que, como comente en el post anterior, lo que hacen las librerias es marcar el primero v/s el primero, como el segundo /* esta dentro de un comentario ya iniciaco, no se evalua, descartandose automaticamente.

     

    Kuroko, no estabas dejandolo peor, es que el compilador se detiene en cada archivo en el primer error que encuentra, por lo que no estaba ompilando el resto del codigo y mostrando los errores que habian más adelante :P

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.