mirror of
https://github.com/SoDOff-Project/sodoff.git
synced 2025-10-12 00:38:48 -07:00
update README, add sample files for localhosting
This commit is contained in:
parent
b7720af330
commit
e3d18df86e
68
README.md
68
README.md
@ -1,33 +1,69 @@
|
|||||||
# SoD-Off - School of Dragons, Offline
|
# SoD-Off - School of Dragons, Offline
|
||||||
|
|
||||||
On 7th June, 2023, School of Dragons announced they were "sunsetting" the game, and turning the servers off on the 30th of June.
|
On 7th June, 2023, School of Dragons announced they were "sunsetting" the game, and turning the servers off on the 30th of June.
|
||||||
|
At that time, SoD-Off was born. Currently, it is an (almost) complete implementation of the API server for SoD (and some other JS games).
|
||||||
|
It allows you to run SoD offline as well as host private online servers.
|
||||||
|
|
||||||
|
We provide also MMO server implementation for SoD (https://github.com/SoDOff-Project/sodoff-mmo).
|
||||||
|
We recommend using it even in offline mode, as some aspects of the single-player game depend on the MMO connection.
|
||||||
|
|
||||||
## Discord
|
## Discord
|
||||||
[](https://discord.gg/bqHtMRbhM3)
|
[](https://discord.gg/bqHtMRbhM3)
|
||||||
|
|
||||||
|
## Licence
|
||||||
|
|
||||||
|
SoD-Off is open source, distributed under [AGPL](LICENSE) license.
|
||||||
|
This license does not cover resources obtained from the game or from responses of original api distributed with the API server, especially:
|
||||||
|
`missions.xml`, `items.xml`, `allranks.xml` and `store.xml` files from `src/Resources` directory and files inside `src/assets` directory.
|
||||||
|
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
For the first time setup, run the following command:
|
You need dotnet 6.0 SDK to build api server from sources. To do this (and start server) just run:
|
||||||
|
|
||||||
```
|
```
|
||||||
dotnet restore
|
|
||||||
```
|
|
||||||
|
|
||||||
Then run the server as follows:
|
|
||||||
|
|
||||||
```
|
|
||||||
# run mitmproxy to redirect requests to the app
|
|
||||||
mitmproxy -s mitm-redirect.py
|
|
||||||
|
|
||||||
# run the server
|
|
||||||
dotnet run --project src/sodoff.csproj
|
dotnet run --project src/sodoff.csproj
|
||||||
```
|
```
|
||||||
|
|
||||||
Then run School of Dragons.
|
### Modify client
|
||||||
|
|
||||||
|
To play game you need to modify game client to use `http://localhost:5001/.com/DWADragonsUnity/` instead `http://media.jumpstart.com/DWADragonsUnity/` for getting main XML config file (`DWADragonsMain.xml`).
|
||||||
|
You can do this editing `DOMain_Data/resources.assets` in hex-editor and replace those URLs.
|
||||||
|
|
||||||
|
### Server configuration
|
||||||
|
|
||||||
|
Most configuration of server is set in `appsettings.json`. See `"// ..."` keys in this file for options description.
|
||||||
|
|
||||||
|
#### supported clients
|
||||||
|
|
||||||
|
Each version of supported client need own file `assets/DWADragonsUnity/{PLATFORM}/{VERSION}/DWADragonsMain.xml`.
|
||||||
|
By default (can be changed in `appsettings.json`) files for version 2.5.0 and newer will be automatically encrypted (in accordance with the client's expectations).
|
||||||
|
|
||||||
|
Sample file for `{PLATFORM} = WIN`, `{VERSION} = 3.31.0` is provided.
|
||||||
|
It assumes that the server address is `localhost:5000` (for api) and `localhost:5000` (for assets). When running a public server, the addresses must be adjusted.
|
||||||
|
|
||||||
|
#### asset server
|
||||||
|
|
||||||
|
Multiple options of asset server can be customized. Most important of them is `ProviderURL` indicating the source of assets downloading in `partial` mode.
|
||||||
|
By default it's set to archive.org. Please do not abuse this server (especially do not disable `UseCache` option and do not get rid of `asset-cache` dir content).
|
||||||
|
|
||||||
|
#### listening address/port
|
||||||
|
|
||||||
|
By default server listening on all IPv4 and IPv6 addresses on ports 5000 (api) and 5001 (assets).
|
||||||
|
This can be changed in `appsettings.json`, but it can also requires changes in `DWADragonsMain.xml` and in clients (on change assets server address)
|
||||||
|
|
||||||
|
### Server side modding
|
||||||
|
|
||||||
|
Server support server side modding like adding new items, adding them to store without modification server source.
|
||||||
|
For details see [src/mods/README-MODDING.md](src/mods/README-MODDING.md).
|
||||||
|
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
### What works
|
### What works
|
||||||
|
|
||||||
|
Almost everything:
|
||||||
|
|
||||||
- register/login
|
- register/login
|
||||||
- create profile
|
- create profile
|
||||||
- list profiles
|
- list profiles
|
||||||
@ -41,6 +77,14 @@ Then run School of Dragons.
|
|||||||
- minigames
|
- minigames
|
||||||
- MMO (using sodoff-mmo)
|
- MMO (using sodoff-mmo)
|
||||||
|
|
||||||
|
### What doesn't work
|
||||||
|
|
||||||
|
- play as Guest
|
||||||
|
- friends
|
||||||
|
- clans
|
||||||
|
- in-game messaging system (Terrible Mail)
|
||||||
|
|
||||||
|
|
||||||
### Methods
|
### Methods
|
||||||
|
|
||||||
#### Fully implemented
|
#### Fully implemented
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"Kestrel": {
|
|
||||||
"EndPoints": {
|
|
||||||
"Http": {
|
|
||||||
"Url": "http://localhost:5000"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft.AspNetCore": "Warning"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
37
src/appsettings.README.json
Normal file
37
src/appsettings.README.json
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"Kestrel": {
|
||||||
|
"EndPoints": {
|
||||||
|
"Http": {
|
||||||
|
"Url": "listening url for api server - allow set listening ip address and port number -> http://ip.ip.ip.ip:port/ or http://[ip::ip]:port/"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AssetServer": {
|
||||||
|
"Enabled": true,
|
||||||
|
"ListenIP": ,
|
||||||
|
"Port": ",
|
||||||
|
"URLPrefix": "",
|
||||||
|
"Mode":
|
||||||
|
"ProviderURL":
|
||||||
|
"AutoEncryptRegexp":
|
||||||
|
"AutoEncryptKey": ,
|
||||||
|
"SubstituteMissingLocalAssets": ,
|
||||||
|
"UseCache":
|
||||||
|
},
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
|
|
||||||
|
"AssetServer": {
|
||||||
|
"Enabled": true,
|
||||||
|
"Port": 881, //Only for the asset server
|
||||||
|
"URLPrefix": "a.com", //
|
||||||
|
"Mode": "partial", //
|
||||||
|
"ProviderURL": "https://media.sodoff.spirtix.com/", //
|
||||||
|
"SubstituteMissingLocalAssets": true //
|
||||||
|
}
|
@ -2,10 +2,43 @@
|
|||||||
"Kestrel": {
|
"Kestrel": {
|
||||||
"EndPoints": {
|
"EndPoints": {
|
||||||
"Http": {
|
"Http": {
|
||||||
"Url": "http://localhost:5000"
|
"// Url": "listening url for api server - allow set listening ip address and port number -> http://ip.ip.ip.ip:port/ or http://[ip::ip]:port/",
|
||||||
|
"Url": "http://*:5000"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"AssetServer": {
|
||||||
|
"// Enabled": "set to false to disable builtin asset server",
|
||||||
|
"Enabled": true,
|
||||||
|
|
||||||
|
"// ListenIP": "listening ip address for asset server, default * -> all IPv4 and IPv6 addresses",
|
||||||
|
"ListenIP": "*",
|
||||||
|
|
||||||
|
"// Port": "listening port number for asset server (should be different than for serer api)",
|
||||||
|
"Port": 5001,
|
||||||
|
|
||||||
|
"// URLPrefix": "extra prefix in url, is omitted while getting path from requested URL ... if set to .com then request to http://localhost/.com/abc will return assets/abc file",
|
||||||
|
"URLPrefix": ".com",
|
||||||
|
|
||||||
|
"// Mode": "two modes: full - everything is local, partial - downloads assets from ProviderURL if not found locally",
|
||||||
|
"Mode": "partial",
|
||||||
|
|
||||||
|
"// ProviderURL": "proxy URL used in partial mode",
|
||||||
|
"ProviderURL": "https://web.archive.org/web/20230713000000id_/https://media.jumpstart.com/",
|
||||||
|
|
||||||
|
"// AutoEncryptRegexp": "regexp matched against URL local part -> if match returned file will be encrypted on fly using 3DES with AutoEncryptKey as key",
|
||||||
|
"AutoEncryptRegexp": "/(2\\.[5-9]|2\\.[1-9][0-9]|3\\.[0-9]+)\\.[0-9]/DWADragonsMain.xml$",
|
||||||
|
|
||||||
|
"// AutoEncryptKey": "3DES key for encrypted files",
|
||||||
|
"AutoEncryptKey": "C92EC1AA-54CD-4D0C-A8D5-403FCCF1C0BD",
|
||||||
|
|
||||||
|
"// SubstituteMissingLocalAssets": "when true if the game requests a High asset and you only have Low, it will return Low instead of downloading (partial mode) or error 404 (full mode)",
|
||||||
|
"SubstituteMissingLocalAssets": true,
|
||||||
|
|
||||||
|
"// UseCache": "when true store downloading in partial mode assets in assets-cache for use on next requests" ,
|
||||||
|
"UseCache": true
|
||||||
|
},
|
||||||
|
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Information",
|
"Default": "Information",
|
||||||
|
222
src/assets/DWADragonsUnity/WIN/3.31.0/DWADragonsMain.xml
Normal file
222
src/assets/DWADragonsUnity/WIN/3.31.0/DWADragonsMain.xml
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ProductConfig>
|
||||||
|
<!-- API SERVER CONFIG -->
|
||||||
|
|
||||||
|
<ContentServerURL>http://localhost:5000/ContentWebService.asmx/</ContentServerURL>
|
||||||
|
<ContentServerV2URL>http://localhost:5000/V2/ContentWebService.asmx/</ContentServerV2URL>
|
||||||
|
<ContentServerV3URL>http://localhost:5000/v3/ContentWebService.asmx/</ContentServerV3URL>
|
||||||
|
<ContentServerV4URL>http://localhost:5000/V4/ContentWebService.asmx/</ContentServerV4URL>
|
||||||
|
<TrackServerURL>http://localhost:5000/ContentWebService.asmx/</TrackServerURL>
|
||||||
|
|
||||||
|
<ItemStoreServerURL>http://localhost:5000/ItemStoreWebService.asmx/</ItemStoreServerURL>
|
||||||
|
<AchievementServerURL>http://localhost:5000/AchievementWebService.asmx/</AchievementServerURL>
|
||||||
|
<AchievementServerV2URL>http://localhost:5000/V2/AchievementWebService.asmx/</AchievementServerV2URL>
|
||||||
|
|
||||||
|
<MembershipServerURL>http://localhost:5000/MembershipWebService.asmx/</MembershipServerURL>
|
||||||
|
<AuthenticationServerURL>http://localhost:5000/AuthenticationWebService.asmx/</AuthenticationServerURL>
|
||||||
|
<AuthenticationServerV3URL>http://localhost:5000/v3/AuthenticationWebService.asmx/</AuthenticationServerV3URL>
|
||||||
|
<RegistrationServerV3URL>http://localhost:5000/v3/RegistrationWebService.asmx/</RegistrationServerV3URL>
|
||||||
|
<RegistrationServerV4URL>http://localhost:5000/V4/RegistrationWebService.asmx/</RegistrationServerV4URL>
|
||||||
|
<UserServerURL>http://localhost:5000/ProfileWebService.asmx/</UserServerURL>
|
||||||
|
|
||||||
|
<ConfigurationServerURL>http://localhost:5000/ConfigurationWebService.asmx/</ConfigurationServerURL>
|
||||||
|
<RatingServerV2URL>http://localhost:5000/V2/Ratingwebservice.asmx/</RatingServerV2URL>
|
||||||
|
<ChallengeServerURL>http://localhost:5000/ChallengeWebService.asmx/</ChallengeServerURL>
|
||||||
|
<MessagingServerURL>http://localhost:5000/MessagingWebService.asmx/</MessagingServerURL>
|
||||||
|
|
||||||
|
<!-- not implemented - social system -->
|
||||||
|
<GroupServerURL>http://localhost:5000/GroupWebService.asmx/</GroupServerURL>
|
||||||
|
<GroupServerV2URL>http://localhost:5000/V2/GroupWebService.asmx/</GroupServerV2URL>
|
||||||
|
<MessageServerURL>http://localhost:5000/MessageWebService.asmx/</MessageServerURL>
|
||||||
|
<MessageServerV2URL>http://localhost:5000/v2/MessageWebService.asmx/</MessageServerV2URL>
|
||||||
|
<MessageServerV3URL>http://localhost:5000/v3/MessageWebService.asmx/</MessageServerV3URL>
|
||||||
|
<InviteServerV2URL>http://localhost:5000/v2/InviteFriendWebService.asmx/</InviteServerV2URL>
|
||||||
|
<ChatServerURL>http://localhost:5000/ChatWebService.asmx/</ChatServerURL>
|
||||||
|
|
||||||
|
<!-- unused -->
|
||||||
|
<AnalyticsServerURL>http://localhost/AnalyticsWebService.asmx/</AnalyticsServerURL>
|
||||||
|
<MissionServerURL>http://localhost/MissionWebService.asmx/</MissionServerURL>
|
||||||
|
<AvatarWebServiceURL>http://localhost/AvatarWebService.asmx/</AvatarWebServiceURL>
|
||||||
|
<RatingServerURL>http://localhost/RatingWebService.asmx/</RatingServerURL>
|
||||||
|
<ScoreServerURL>http://localhost/ScoreWebService.asmx/</ScoreServerURL>
|
||||||
|
<MobileStoreURL>http://localhost/MobileStoreWebService.asmx/</MobileStoreURL>
|
||||||
|
<SubscriptionServerURL>http://localhost/SubscriptionWebService.asmx/</SubscriptionServerURL>
|
||||||
|
<PaymentServerURL>http://localhost/PaymentWebService.asmx/</PaymentServerURL>
|
||||||
|
<PaymentServerV2URL>http://localhost/V2/PaymentWebService.asmx/</PaymentServerV2URL>
|
||||||
|
<PrizeCodeServerURL>http://localhost/PrizeCodeWebService.asmx/</PrizeCodeServerURL>
|
||||||
|
<PrizeCodeServerV2URL>http://localhost/Common/V2/PrizeCodeWebService.asmx/</PrizeCodeServerV2URL>
|
||||||
|
<CalendarServerURL>http://localhost/ContentServer/CalendarWebService.asmx/</CalendarServerURL>
|
||||||
|
<PushNotificationURL>http://localhost/RegistrationWebService.asmx/</PushNotificationURL>
|
||||||
|
<LocaleServerURL>http://localhost/LocaleService.asmx/</LocaleServerURL>
|
||||||
|
<LocaleServerV2URL>http://localhost/V2/LocaleWebService.asmx/</LocaleServerV2URL>
|
||||||
|
<TokenExpiredURL>http://localhost/launch.aspx</TokenExpiredURL>
|
||||||
|
|
||||||
|
<!-- SMARTFOX SERVER CONFIG -->
|
||||||
|
|
||||||
|
<MMOServer>localhost</MMOServer>
|
||||||
|
<MMOServerPort>9933</MMOServerPort>
|
||||||
|
|
||||||
|
<MMOServerVersion>S2X</MMOServerVersion>
|
||||||
|
<MMOIdleTimeout>240</MMOIdleTimeout>
|
||||||
|
<MMODebug>false</MMODebug>
|
||||||
|
<MMOHttpPort>8080</MMOHttpPort>
|
||||||
|
<MMOUseBlueBox>false</MMOUseBlueBox>
|
||||||
|
<MMOBlueBoxPollingRate>500</MMOBlueBoxPollingRate>
|
||||||
|
<MMOUDPPollingRate>500</MMOUDPPollingRate>
|
||||||
|
<ZoneInfoUpdateInterval>300000</ZoneInfoUpdateInterval>
|
||||||
|
|
||||||
|
<!-- ASSET SERVER CONFIGURATION -->
|
||||||
|
|
||||||
|
<RootURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/</RootURL>
|
||||||
|
<ContentDataURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/contentdata</ContentDataURL>
|
||||||
|
<DataURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/data</DataURL>
|
||||||
|
<SceneURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/scene</SceneURL>
|
||||||
|
<SharedDataURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/shareddata</SharedDataURL>
|
||||||
|
<SoundURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/sound</SoundURL>
|
||||||
|
<MoviesURL>http://localhost:5003/.com/DWADragonsUnity/WIN/{Version}/Mid/movies</MoviesURL>
|
||||||
|
|
||||||
|
<LocalRootURL>.</LocalRootURL>
|
||||||
|
<LocalContentDataURL>./contentdata</LocalContentDataURL>
|
||||||
|
<LocalDataURL>./data</LocalDataURL>
|
||||||
|
<LocalSceneURL>./scene</LocalSceneURL>
|
||||||
|
<LocalSharedDataURL>./shareddata</LocalSharedDataURL>
|
||||||
|
<LocalSoundURL>./sound</LocalSoundURL>
|
||||||
|
<LocalMoviesURL>./movies</LocalMoviesURL>
|
||||||
|
|
||||||
|
<AppURL>.</AppURL>
|
||||||
|
<Token></Token>
|
||||||
|
|
||||||
|
<LogEventServer>127.0.0.1</LogEventServer>
|
||||||
|
|
||||||
|
<ConsolePassword>6c955c0b5efd67396e950f56542e86b6</ConsolePassword>
|
||||||
|
<UnityCacheSize>2000000000</UnityCacheSize>
|
||||||
|
<Manifests>dwavatar</Manifests>
|
||||||
|
<EnablePlayfab>false</EnablePlayfab>
|
||||||
|
|
||||||
|
<TokenExpiredText>
|
||||||
|
<Text>Your Viking is now idle. Click on the OK button to reconnect.</Text>
|
||||||
|
<ID>42286</ID>
|
||||||
|
</TokenExpiredText>
|
||||||
|
<LoginFromOtherLocationText>
|
||||||
|
<Text>You have been logged out because you have signed in from another computer or device.</Text>
|
||||||
|
<ID>9000</ID>
|
||||||
|
</LoginFromOtherLocationText>
|
||||||
|
<DisconnectText>
|
||||||
|
<Text>Your Viking is now idle. Click on the OK button to reconnect.</Text>
|
||||||
|
<ID>9001</ID>
|
||||||
|
</DisconnectText>
|
||||||
|
<DisconnectTitleText>
|
||||||
|
<Text>Notification</Text>
|
||||||
|
<ID>10674</ID>
|
||||||
|
</DisconnectTitleText>
|
||||||
|
<ProductRuleFailedText>
|
||||||
|
<Text>Download failed, please retry! Possible invalid DES secret in client!</Text>
|
||||||
|
<ID>42287</ID>
|
||||||
|
</ProductRuleFailedText>
|
||||||
|
|
||||||
|
<PlatformSettings Name="default">
|
||||||
|
<MaxMMOData DefaultMaxMMO="50" DefaultMaxFullMMO="50" />
|
||||||
|
<GraphicsSettings>
|
||||||
|
<Texture>
|
||||||
|
<Default>Mid</Default>
|
||||||
|
<Available>Low,Mid,High</Available>
|
||||||
|
</Texture>
|
||||||
|
<Shadow>
|
||||||
|
<Default>High</Default>
|
||||||
|
<Available>Off,Low,Mid,High</Available>
|
||||||
|
</Shadow>
|
||||||
|
<Effects>
|
||||||
|
<Default>Low</Default>
|
||||||
|
<Available>Off,Low,Mid,High</Available>
|
||||||
|
</Effects>
|
||||||
|
</GraphicsSettings>
|
||||||
|
<DownloadTextureSize>128</DownloadTextureSize>
|
||||||
|
</PlatformSettings>
|
||||||
|
|
||||||
|
<Locale>
|
||||||
|
<ID>en-US</ID>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>es-MX</ID>
|
||||||
|
<Variant>es</Variant>
|
||||||
|
<Variant>es-ES</Variant>
|
||||||
|
<Variant>es-LA</Variant>
|
||||||
|
<Variant>es-US</Variant>
|
||||||
|
<Variant>es_ES</Variant>
|
||||||
|
<Variant>es_LA</Variant>
|
||||||
|
<Variant>es_MX</Variant>
|
||||||
|
<Variant>es_US</Variant>
|
||||||
|
<Variant>spanish</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>pt-BR</ID>
|
||||||
|
<Variant>pt</Variant>
|
||||||
|
<Variant>pt-PT</Variant>
|
||||||
|
<Variant>pt_BR</Variant>
|
||||||
|
<Variant>pt_PT</Variant>
|
||||||
|
<Variant>brazilian</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>zh-CN</ID>
|
||||||
|
<Variant>zh</Variant>
|
||||||
|
<Variant>zh-Hans</Variant>
|
||||||
|
<Variant>zh_CN</Variant>
|
||||||
|
<Variant>zh_Hans</Variant>
|
||||||
|
<Variant>schinese</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>de-DE</ID>
|
||||||
|
<Variant>de</Variant>
|
||||||
|
<Variant>de-CH</Variant>
|
||||||
|
<Variant>de_DE</Variant>
|
||||||
|
<Variant>de_CH</Variant>
|
||||||
|
<Variant>german</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>fr-CA</ID>
|
||||||
|
<Variant>fr</Variant>
|
||||||
|
<Variant>fr-FR</Variant>
|
||||||
|
<Variant>fr-CH</Variant>
|
||||||
|
<Variant>fr_CA</Variant>
|
||||||
|
<Variant>fr_FR</Variant>
|
||||||
|
<Variant>fr_CH</Variant>
|
||||||
|
<Variant>french</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>ko-KR</ID>
|
||||||
|
<Variant>ko</Variant>
|
||||||
|
<Variant>ko_KR</Variant>
|
||||||
|
<Variant>koreana</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>ru-RU</ID>
|
||||||
|
<Variant>ru</Variant>
|
||||||
|
<Variant>ru_RU</Variant>
|
||||||
|
<Variant>russian</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>th-TH</ID>
|
||||||
|
<Variant>th</Variant>
|
||||||
|
<Variant>th-TH</Variant>
|
||||||
|
<Variant>th_TH</Variant>
|
||||||
|
</Locale>
|
||||||
|
<Locale>
|
||||||
|
<ID>ar-EG</ID>
|
||||||
|
<Variant>ar</Variant>
|
||||||
|
<Variant>ar-DZ</Variant>
|
||||||
|
<Variant>ar-BH</Variant>
|
||||||
|
<Variant>ar-IQ</Variant>
|
||||||
|
<Variant>ar-JO</Variant>
|
||||||
|
<Variant>ar-KW</Variant>
|
||||||
|
<Variant>ar-LB</Variant>
|
||||||
|
<Variant>ar-LY</Variant>
|
||||||
|
<Variant>ar-MA</Variant>
|
||||||
|
<Variant>ar-OM</Variant>
|
||||||
|
<Variant>ar-QA</Variant>
|
||||||
|
<Variant>ar-SA</Variant>
|
||||||
|
<Variant>ar-SY</Variant>
|
||||||
|
<Variant>ar-TN</Variant>
|
||||||
|
<Variant>ar-AE</Variant>
|
||||||
|
<Variant>ar-YE</Variant>
|
||||||
|
</Locale>
|
||||||
|
</ProductConfig>
|
408
src/assets/ServerDown.xml
Normal file
408
src/assets/ServerDown.xml
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ServerDown>
|
||||||
|
<Down>false</Down>
|
||||||
|
<CudosDown>true</CudosDown>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>11</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Alert! We’ve encountered an unexpected weather delay! Our servers have been covered to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text> -->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Oh no, looks like the Terrible Terrors are at it again! We hid our servers to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text> -->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>1</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Alert! We’ve encountered an unexpected weather delay! Our servers have been covered to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>17</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Alert! We’ve encountered an unexpected weather delay! Our servers have been covered to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>15</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Message from Aurrick: I broke the servers but don't worry. I'm stealing new ones. Back soon!
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>14</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Oh no, looks like the Shadow Punks have attacked the server! We hid our servers to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>12</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Oh no! It looks like Dave is at it again with his Medusa Serum! We hid our servers to protect them. Check back soon!
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>es-MX</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
¡Oh no, parece que el Terrible Terror está haciendo desastres otra vez! Escondimos nuestros servidores para protegerlos.¡Regresa pronto!
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>pt-BR</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Essa não! Pelo jeito, os Terrible Terrors estão aprontando novamente! Escondemos nossos servidores para protegê-los. Volte em breve!
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>zh-CN</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
恐怖龙又搞事啦!我们把服务器都藏起来,进行保护。回见喽!
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>fr-CA</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Oh no, looks like the Terrible Terrors are at it again! We hid our servers to protect them. Check back soon!
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>de-DE</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Oh no, looks like the Terrible Terrors are at it again! We hid our servers to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>ko-KR</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Oh no, looks like the Terrible Terrors are at it again! We hid our servers to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>ru-RU</Locale>
|
||||||
|
<Title>Update</Title>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text><![CDATA[
|
||||||
|
Oh no, looks like the Terrible Terrors are at it again! We hid our servers to protect them. Check back soon.
|
||||||
|
]]>
|
||||||
|
</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Text><![CDATA[
|
||||||
|
The SoDOff server is down because the emulator is being updated. Check back in a few minutes.
|
||||||
|
]]>
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>10</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<!-->For Unplanned Maintenance <-->
|
||||||
|
<!--><Text>Alert! We’ve encountered an unexpected weather delay! Our servers have been covered to protect them. Check back soon.</Text><-->
|
||||||
|
<!-->For Planned Maintenance <-->
|
||||||
|
<Title>Update</Title>
|
||||||
|
<Text>The SoDOff server is down because the emulator is being updated. Check back in a few minutes.</Text>
|
||||||
|
</Message>
|
||||||
|
<Scheduled>
|
||||||
|
<!-- Date format needs to be MM/dd/yyyy hh:mm AM/PM PST TimeZone-->
|
||||||
|
<StartTime>07/30/2023 11:59 PM</StartTime>
|
||||||
|
<EndTime>12/31/2035 12:00 AM</EndTime>
|
||||||
|
<ModifiedTime>05/30/2023 10:48 AM</ModifiedTime>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>12</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>NOTICE</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>en-US</Locale>
|
||||||
|
<Title>NOTICE</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>de-DE</Locale>
|
||||||
|
<Title>NOTIZ</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>es-MX</Locale>
|
||||||
|
<Title>Apagado de Servidores</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>fr-CA</Locale>
|
||||||
|
<Title>Arrêt des serveurs</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>ko-KR</Locale>
|
||||||
|
<Title>서버 셧다운</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team
|
||||||
|
</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>pt-BR</Locale>
|
||||||
|
<Title>Desligamento dos servidores</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>ru-RU</Locale>
|
||||||
|
<Title>Выключение серверов</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>th-TH</Locale>
|
||||||
|
<Title>การปิดเซิร์ฟเวอร์</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team</Text>
|
||||||
|
</Message>
|
||||||
|
<Message>
|
||||||
|
<ProductGroupID>9</ProductGroupID>
|
||||||
|
<Locale>zh-CN</Locale>
|
||||||
|
<Title>服务器关闭</Title>
|
||||||
|
<Text>Welcome back dragon rider!
|
||||||
|
|
||||||
|
Welcome to SoDOff Experimental Server!
|
||||||
|
SoDOff is a School of Dragons server emulator. The emulator is in very early stages of development, many features are currently missing. Things can and WILL break!
|
||||||
|
|
||||||
|
Please note that we are not associated with JumpStart or DreamWorks.
|
||||||
|
|
||||||
|
- The SoDOff Team</Text>
|
||||||
|
</Message>
|
||||||
|
<NoticeBeforeInDays>300</NoticeBeforeInDays>
|
||||||
|
<DisplayCount>-1</DisplayCount>
|
||||||
|
</Scheduled>
|
||||||
|
</ServerDown>
|
92
src/mods/README-MODDING.md
Normal file
92
src/mods/README-MODDING.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# Server side modding
|
||||||
|
|
||||||
|
## Mod installations
|
||||||
|
|
||||||
|
Place mods as directory inside `src/mods`.
|
||||||
|
The mod directory must contain `manifest.xml` file in the first directory tree level.
|
||||||
|
For example: `src/mods/MyFirstMod/manifest.xml`
|
||||||
|
|
||||||
|
## `manifest.xml` syntax
|
||||||
|
|
||||||
|
Root node for `manifest.xml` is `<sodoffmod>`. It can contain child nodes:
|
||||||
|
|
||||||
|
* `<items>` - item database manipulation
|
||||||
|
* `<store>` - store database manipulation (not implemented yet)
|
||||||
|
* ...
|
||||||
|
|
||||||
|
### item database manipulation
|
||||||
|
|
||||||
|
`<items>` may contain may `<item>` child nodes. Each of them define one item modification. Modification type can be specified by `action` attribute, supported values:
|
||||||
|
|
||||||
|
* `add` - add new item
|
||||||
|
* default when no `action` attribute
|
||||||
|
* `remove` - remove item
|
||||||
|
* `replace` - replace item definition for existed item id
|
||||||
|
|
||||||
|
`<item>` node may contains subnodes:
|
||||||
|
|
||||||
|
* `<id>` - specify item id
|
||||||
|
* if not used item id will be read from item definition in `<data>`
|
||||||
|
* `<storeID>` - specify store id to add item to them
|
||||||
|
* can occur multiple times
|
||||||
|
* if not used item will be not added to any store
|
||||||
|
* `<data>` - item definition (syntax like `<I>` node in [src/Resources/items.xml](../Resources/items.xml))
|
||||||
|
* can be committed in `remove` action`
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
* remove Toothless ticket item (item id `8034`)
|
||||||
|
* add Night Furry Egg item (item id `29999`) and add it to store (store id `92`, for store description see comment in [src/Resources/store.xml](../Resources/store.xml).
|
||||||
|
* item id (for new items) should be unique to avoid mod collision, recommended format to use: `prefix * 10000 + private_id`, where:
|
||||||
|
* `prefix` must be grater than 2 to avoid collision with original game and official SoDOff items
|
||||||
|
* `prefix` is unique mod author prefix (see SoDOff discord for details)
|
||||||
|
* `private_id` is for digit number (0-9999) to free use by the this author
|
||||||
|
* for example for `prefix = 789` and `private_id = 13` item id will be `7890013`
|
||||||
|
|
||||||
|
```
|
||||||
|
<sodoffmod>
|
||||||
|
<items>
|
||||||
|
<item action="remove">
|
||||||
|
<id>8034</id>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<storeID>92</storeID>
|
||||||
|
<data>
|
||||||
|
<an>RS_DATA/DragonEgg.unity3d/PfEggDevilishDervish</an>
|
||||||
|
<at>
|
||||||
|
<k>PetTypeID</k>
|
||||||
|
<v>17</v>
|
||||||
|
<id>29999</id>
|
||||||
|
</at>
|
||||||
|
<c>
|
||||||
|
<cid>456</cid>
|
||||||
|
<cn>Dragons Dragon Egg</cn>
|
||||||
|
<i xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
|
||||||
|
<id>29999</id>
|
||||||
|
</c>
|
||||||
|
<c>
|
||||||
|
<cid>550</cid>
|
||||||
|
<cn>Strike Class Eggs</cn>
|
||||||
|
<i xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
|
||||||
|
<id>29999</id>
|
||||||
|
</c>
|
||||||
|
<ct>0</ct>
|
||||||
|
<ct2>250</ct2>
|
||||||
|
<cp>0</cp>
|
||||||
|
<d>Tame the cunning and mischievous Night Furry in your stables</d>
|
||||||
|
<icn>RS_DATA/DragonEgg.unity3d/IcoEggDevilishDervish</icn>
|
||||||
|
<im>-1</im>
|
||||||
|
<id>29999</id>
|
||||||
|
<itn>Night Furry Egg</itn>
|
||||||
|
<l>false</l>
|
||||||
|
<s>false</s>
|
||||||
|
<as>false</as>
|
||||||
|
<sf>10</sf>
|
||||||
|
<u>-1</u>
|
||||||
|
<rf>0</rf>
|
||||||
|
<rtid>0</rtid>
|
||||||
|
</data>
|
||||||
|
</item>
|
||||||
|
</items>
|
||||||
|
</sodoffmod>
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user