visitek
Poeet p?íspivku : 32 Age : 34 Registration date : 28. 08. 07
| Předmět: Programování od písmen až do hotový mega programů Tue Sep 04, 2007 5:47 pm | |
| Řekněme, že to je taky solidní úchylka, ale asi nebude určena pro všechny, jelikož to není zrvona něčí šálek kávy
Já se momentálně zabývám (když to řeknu velmi obecně) jazykem java a konkrétně tedy kódováním herního serveru pro hru www.lineage2.cz v jazyce java. Starám se o bezproblémový chod a opravuju závady, které nadělali programátoři. Není to nic moc složitého při znalosti toho, jak funguje javascript a potom jine veci, ktere souvisi s funkci serveru (html, mysql databaze a php).
Pokud takový server, už opravený a připravený k provozu chcete zpustit na svém počítačí (budeme brát v úvahu, že nikdo z vás nemá linux, nebo unix, nebo podobně) tak potřebujete mít nainstalovanou podporu MySQL databáze, pokud nechcete používat databázi nějakého webového serveru, poté podporu funkcí javascriptu a doporučuji ještě program, díky kterému se můžete v databázi mysql hrabat a přepisovat některé věci (Navicat). Když tohle všechno máte, tak si musíte nakonfigurovat připojení Login a Gameserveru, aby při připojování hráčů do hry ověřovací server odeslal hráče na tu správnou adresu ke gameserveru.. jeden z takto konfiguračních souboru vypada asi takto:# Bind ip of the gameserver, use 0.0.0.0 to bind on all available IPs GameserverHostname=0.0.0.0 GameserverPort=7777
# This is transmitted to the clients connecting from an external network, so it has to be a public IP or resolvable hostname ExternalHostname=85.132.245.221 # This is transmitted to the client from the same network, so it has to be a local IP or resolvable hostname InternalHostname=192.168.0.103 # Define internal networks (10.0.0.0/8,192.168.0.0/16 is default internal networks) InternalNetworks= # Define optional networks and router IPs # IP (200.100.200.100) or fully qualified domain name # (google.com) that resolves to an IP (use ping to determine if a domain resolves). # Format: ip,net/mask;ip,net/mask,net/mask # (mask 192.168.0.0/16 or 192.168.0.0/255.255.0.0 would be 192.168.*.*) # Note: keep InternalNetworks and OptionalNetworks blank for compatibility with older login server OptionalNetworks=
# Bind ip of the loginserver, use * to bind on all available IPs LoginserverHostname=* LoginserverPort=2106 LoginTryBeforeBan=20
# The Loginserver host and port LoginPort=9014 LoginHost=192.168.0.103
# This is the server id that the gameserver will request (i.e. 1 is Bartz) RequestServerID = 1 # If set to true, the login will give an other id to the server if the requested id is allready reserved AcceptAlternateID = True
# Database info Driver=com.mysql.jdbc.Driver #Driver=org.hsqldb.jdbcDriver #Driver=com.microsoft.sqlserver.jdbc.SQLServerDriver URL=jdbc:mysql://localhost/l2jdb #URL=jdbc:hsqldb:hsql://localhost/l2jd #URL=jdbc:sqlserver://localhost/database=l2jdb/user=sa/password= Login=root Password= MaximumDbConnections=100
# Datapack root directory, defaults to current directory from which the server is started #DatapackRoot=H:/workEclipse/L2J Free/trunk/L2_DataPack_IL
# Define character name template # These ones are regular expressions, visit http://www.regular-expressions.info for details # Note: Checking lengths are done server side, but keep it in pattern for future purposes # Character name ( Default [A-Za-z0-9\-]{3,16} ) CnameTemplate=[A-Za-z0-9\-]{3,16} # Pet name ( Default [A-Za-z0-9\-]{3,16} ) PetNameTemplate=[A-Za-z0-9\-]{3,16} # Clan and ally name ( [A-Za-z0-9 \-]{3,16} ) ClanAllyNameTemplate=[A-Za-z0-9 \-]{3,16} # Title ( [A-Za-z0-9 \-\\[\\]\<\>\(\)\!\|]{3,16} ) TitleTemplate=[A-Za-z0-9 \-\\[\\]\<\>\(\)\!\|]{3,16}Dá se to pochopit, jelikož u toho vývojáři nechávají popisky i sami pro sebe, protože jinak by se v tom sami ztratili, jelikož to není celé, je to jen úryvek. navíc takových konfigurací je tam mnoho. Tohle ovšem není samotné jádro věci, tohle je jen v anglictine napsaná kofigurace, podle které server potom funguje..samotný server je napsaný úplně jinou hatlamatilkou, do které se jen tak ani nedá dostat, jelikož jsou to všechno binární soubory (class). - Něco jako soubor exe, zdrojový kod exe souboru taky nikdy nezjistite. Dají se ale přepisovat jiné funkčnostní věci, do kterých se dostat dá a to jsou ty důležitější, ve kterých bývají chyby.. například to vypadá takhle:@echo off title xXMisterioXx's Login Server Color 18 :start echo Starting L2J Login Server. echo.
SET OLDCLASSPATH=%CLASSPATH% call setenv.bat
java -Dfile.encoding=UTF-8 -Xmx64m net.sf.l2j.loginserver.L2LoginServer
SET CLASSPATH=%OLDCLASSPATH%
if ERRORLEVEL 2 goto restart if ERRORLEVEL 1 goto error goto end :restart echo. echo Admin Restart ... echo. goto start :error echo. echo Server terminated abnormaly echo. :end echo. echo server terminated echo. pauseTohleto začíná načítat údaje z databáze SQL, ke které se to pomocí toho konfigu připojuje. prazný zdrojový kód takové databáze vypada třeba takto:TABLE IF EXISTS `armor`; CREATE TABLE IF NOT EXISTS `armor` ( `item_id` int(11) NOT NULL default '0', `name` varchar(70) default NULL, `bodypart` varchar(15) NOT NULL default '', `crystallizable` varchar(5) NOT NULL default '', `armor_type` varchar(5) NOT NULL default '', `weight` int(5) NOT NULL default '0', `material` varchar(15) NOT NULL default '', `crystal_type` varchar(4) NOT NULL default '', `avoid_modify` int(1) NOT NULL default '0', `duration` int(3) NOT NULL default '0', `p_def` int(3) NOT NULL default '0', `m_def` int(2) NOT NULL default '0', `mp_bonus` int(3) NOT NULL default '0', `price` int(11) NOT NULL default '0', `crystal_count` int(4) default NULL, `sellable` varchar(5) default NULL, `dropable` varchar(5) NOT NULL default 'true', `destroyable` varchar(5) NOT NULL default 'true', `tradeable` varchar(5) NOT NULL default 'true', `item_skill_id` decimal(11,0) NOT NULL default '0', `item_skill_lvl` decimal(11,0) NOT NULL default '0', PRIMARY KEY (`item_id`) ) DEFAULT CHARSET=utf8;
-- -- Dumping data for table `armor`
INSERT INTO `armor` VALUES ('21','Shirt','chest','false','light','4830','cloth','none','0','-1','36','0','0','147','0','true','true','true','true','0','0'), ('22','Leather Shirt','chest','false','light','4830','leather','none','0','-1','43','0','0','2430','0','true','true','true','true','0','0'), ('23','Wooden Breastplate','chest','false','light','4820','wood','none','0','-1','47','0','0','7960','0','true','true','true','true','0','0'), ('24','Bone Breastplate','chest','false','light','4770','bone','none','0','-1','50','0','0','20300','0','true','true','true','true','0','0'),Tím bych to ukončil, jelikož to stejně nikdo nebude číst (:ZDROJOVÝ KOD Z SQL VIDITE PREZ PROGRAM NAVICAT V PODOBE, KDY UZ JE TO JAKO DATABAZE SQL(viz leve okno - hlavne to mensi okno), NE JEN SUCHY TEXT(viz prave okno)
| |
|
Peta Admin
Poeet p?íspivku : 71 Age : 123 Město: : Hranice Registration date : 27. 08. 07
| |
visitek
Poeet p?íspivku : 32 Age : 34 Registration date : 28. 08. 07
| Předmět: Re: Programování od písmen až do hotový mega programů Wed Sep 05, 2007 5:59 pm | |
| a mozna byste se divili, ale server, o ktery se staram sam na sebe vydelava z lidi, kteri na nem hraji a podporuji ho (cca 2500 lidi) rocne cca 250 klacku ten clovek, co to ma spustene se o nejakou praci nemusi starat, ten se stara jen o to, aby mu to bezelo jak ma | |
|