Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Heroes of Thessalonica Full Source and compiling

Joined
Feb 2, 2011
Messages
437
Reaction score
451
adastmin - Heroes of Thessalonica Full Source and compiling - RaGEZONE Forums





5yUedlf - Heroes of Thessalonica Full Source and compiling - RaGEZONE Forums

2YtJoex - Heroes of Thessalonica Full Source and compiling - RaGEZONE Forums

nCGUXzE - Heroes of Thessalonica Full Source and compiling - RaGEZONE Forums











PASSWORD:
Code:
2012中秋节,祝大家-中秋节快乐!!
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Sep 23, 2009
Messages
38
Reaction score
9
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

Thanks for the release! a server installation guide tho may be useful.
 
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

[strike]Same files as were posted in past threads but it does not have the client.
I wish I still had the "correct" client to share, but its been so long and that account that it was stored on was banned. :-/
[/strike]
Stand corrected. Thanks hellrazor for having that re-upload available.
 
Last edited:
Newbie Spellweaver
Joined
Apr 14, 2005
Messages
86
Reaction score
15
  • Like
Reactions: DNC
Experienced Elementalist
Joined
Sep 4, 2013
Messages
259
Reaction score
34
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

So wait, these compile? Aren't they the same files as DNC? or it is a coincidence that its using the same file splitting method?
 
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

Same original files, but they are not modified as of yet.
I'm in the process of downloading and see if I cannot jog my memory as to what I had and hadn't done on this game to make that release hellrazor re-uploaded.
 
Newbie Spellweaver
Joined
Jun 30, 2014
Messages
64
Reaction score
2
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

WoW really amazing stuff :) thanks uploader
 
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

Since this was asked in the much older thread referenced by hellrazor in this thread.
I'm going to post the same information I posted in that thread, since I have no idea who will / wont read both threads.
And I really don't want to be asked about this again, so here is my "pre-answer"



DNC said:
If you entered the login / password into the MSSQL I don't recall, but I'm fairly positive the password needed to be MD5
<--- use to take plain text password and encrypt into MD5 which goes in DB if memory serves properly.

After you create a new account, you must restart the AccountServer.
You'll need to restart a "single service" after every new account creation.

Follow below for the restarter script that rogan12 posted.

http://forum.ragezone.com/f111/heroes-thessalonica-files-client-english-796852/index9.html#post7127917
That's why you start kill.bat....

Look inside it :

kill.bat
Code:
@ECHO off
Title AccountServer Restarter
:top 
echo "Killing Server"
TASKKILL /T /IM newaccount_server.exe 
echo "Killed"
echo "Sleeping for 300 seconds"
choice /T 300 /C X /D X /N > NUL
goto :top


Got it ?

regards
rogan12

It has been a long time since I touched this and memory isn't serving me after finishing 2 other projects this week.
Brain dead is an understatement. In the above Quote, I don't recall if you need to encrypt the password to MD5 or not... again my brain is saying F**k off to me right now.


PS
Please don't PM me about this game, just post a reply in the thread so everyone can read it / reply to your post.
I have enough PM's to keep me occupied.
Thank you :0)
 
Last edited:
CATMAGEDDON
Loyal Member
Joined
Aug 17, 2014
Messages
1,661
Reaction score
292
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

newaccount_server.exe:
a center server disconnected,name is:cehua
connect account succeed!


and repeats

control_server.exe
as game server connect is close,try connect again!
connect game server succeed!


cant connect after creating character
 
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

You did extract the files using System Locale as Chinese (Simplified PRC) and leave it that way while the server is running.
Correct?


Confirm that your application_manager.config is set to this :

Code:
<?xml version="1.0" encoding="UTF-8"?>

<!--
Name : 显示的名字
Path : 应用程序所在路径
DetectInterval : 检测程序间隔时间
IsOutputLog : 是否输出log给application_mannager
-->

<Project Name="HOT" Version="1.0.0.1">
<ApplicationList>
<Applicaton Name="05:Lgin Server" Path="login_server\newlogin_server.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="03:Data Server" Path="db_server\newdbserver.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="01:Acc Server" Path="account_server\newaccount_server.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="02:Calc Manage" Path="calculate_manager\calculate_manage.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="04:Log Server" Path="log_server\log_server.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="06:shop Server" Path="shop_center\shop_center.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="07:GM server" Path="gm_server\gm_center_server.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="08:Area GM Server" Path="area_gm\area_gm_server.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="11:Gate Server" Path="gate_server0\gate_server.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="09:Control Center" Path="control_center\Control_Center.exe" DetectInterval="10000" IsOutputLog="0"/>
<Applicaton Name="10:Game Server" Path="game_server0\game_server.exe" DetectInterval="10000" IsOutputLog="0"/>
</ApplicationList>
</Project>
 
CATMAGEDDON
Loyal Member
Joined
Aug 17, 2014
Messages
1,661
Reaction score
292
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

DNC i always keept my pc as chinese,for all those games i get
ll check config and post later,but i dont think thats the problem
 
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

DNC i always keept my pc as chinese,for all those games i get
ll check config and post later,but i dont think thats the problem

If you are using the files from the other thread, they'll work out of the box.
These files need to be compiled and yes, you could copy/paste the compiled server exe's over the top of the other threads server archive folders.
You can Not use the other client with these files, if you compile your own server And / Or client files.
That client was specifically tailored for what I had edited and wont work with any other software.
Just a heads up, in case you are mixing files.
Specifically made sure no other servers would work with that client and I no longer have the source code I used previously, that account was banned.






You can review this post quote, which still shows information from my deleted posts after the files were no longer available:
(I recommend at least reading it for some information about the starting of the servers, editng slk files, blah blah)
http://forum.ragezone.com/f857/hot-online-source-code-882248-post7533298/#post7533298

In the above mentioned post quote (follow that link)...
If you scroll down below the 2 removed videos you'll find one typo on that first sentence, should say other clients / servers (not just other clients):
This wont work properly with other clients, so unfortunately for both you and me, I've got to upload it and you've got to download it.

There are still starter items not correct for a few classes (Within a few minutes of starting you'll have heal pots if you want to play a character that does not have starting gear. This is only for the initial 5 minutes or so of game play, so no biggie.), some quest rewards are obviously incorrect (mostly on the rogue, but others have a couple), the very first few quests are in Chinese still (I'm sure you can ignore that or fix it yourself), I've not put the cash shop together yet either.

I'm sure there are other things but they are all minor scripting or .slk file modifications (which you can open in excel spreadsheet, just saying).



EDIT:

Restored only a "few" posts in the thread http://forum.ragezone.com/f857/hot-online-source-code-882248
Some of the information may be helpful. Other pieces were not important, as such, left removed.
 
Last edited:
CATMAGEDDON
Loyal Member
Joined
Aug 17, 2014
Messages
1,661
Reaction score
292
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

compiled this exes and pasted over the other source
cant complete tutorial,the mobs that its supossed to me attack arent spawning

edit :
newaccount_server.exe keeps saying it disconnects
REMOVED
 
Last edited:
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

compiled this exes and pasted over the other source
cant complete tutorial,the mobs that its supossed to me attack arent spawning

edit :
newaccount_server.exe keeps saying it disconnects
REMOVED

Ok, i found out how to Teleport directly out of Tutorial-Quest ;)


I hope this will help ;)

Problem is, link is broken, but you now know that there is a way to teleport directly out of the tutorial.
When I had tested it. I had it working and the mobs spawned.
Cant remember if it was just certain character class that had issue or not of no mobs.
Been a while ya know. (2 years or slightly more)



but the end of that web link is the quest ID
quest3130.s (found in Server.zip archive from other thread in the folder Server\game_server\Script\quest\ scroll down to find it)

Code:
proc_start 0
proc_end



proc_start 1
NpcPlayAnim talk 1 idle -1
var $quest3130
	$quest3130 = get_quest_state 3130
	if $quest3130 == 0
		dlg 0 GetString((77609))
		dlg 0 GetString((77610))
		dlg 0 GetString((77611))
		dlg 0 GetString((77612))
		dlg 1 GetString((77613))
		GetString((77614))
		GetString((77160))
		if Profession == 0
			addskill 1184
			SetHotkey 16 904
			SetHotkey 17 1184
			equipall 24399 24400 24401 24402 24403 24404 24405 8048
		else
		endif

		GetString((77161))	
		if Profession == 5
			addskill 1181
			SetHotkey 16 904
			SetHotkey 17 1181
			equipall 22200 22201 22202 22203 22204 22205 22206 8648
		else
		endif

		GetString((77162))	
		if Profession == 3
			addskill 1182
			SetHotkey 16 904
			SetHotkey 17 1182
			equipall 26280 26281 26282 26283 26284 26285 26286 8848
		else
		endif
		GetString((77163))	
		if Profession == 2
			addskill 1185
			SetHotkey 16 904
			SetHotkey 17 1185
			equipall 25399 25400 25401 25402 25403 25404 25405 8248
		else
		endif
		GetString((77164))
		if Profession == 1
			addskill 1180
			SetHotkey 16 904
			SetHotkey 17 1180
			equipall 23290 23291 23292 23293 23294 23295 23296 8448
		else
		endif
		GetString((77165))
		if Profession == 4
			addskill 1183
			SetHotkey 16 904
			SetHotkey 17 1183
			equipall 27290 27291 27292 27293 27294 27295 27296 9048
		else
		endif
		set_quest_state 3130 1
		useskill 2334 1
		talk 3000 ffff7f00 GetString((77615))
			return
	else
	endif

proc_end



proc_start 2
NpcPlayAnim talk 1 idle -1
var $quest3130
	$quest3130 = get_quest_state 3130
	if $quest3130 == 1

		dlg 0 GetString((77616))
		dlg 0 GetString((77617))
		dlg 0 GetString((77618))
		dlg 1 GetString((77619))
			set_quest_state 3130 2
			talk 3000 ffff7f00 GetString((77620))
				return
	else
	endif

proc_end

GetString((77621))
proc_start 3
NpcPlayAnim talk 1 idle -1
var $quest3130
	$quest3130 = get_quest_state 3130
if $quest3130 == 2
	if 646 > 0
		dlg 0 GetString((77622))
		dlg 1 GetString((77623)) name
		RemoveAllEquip
		Done_quest 3130
		set_quest_state 3132 1
		300 = 100
		GetString((77160))	
		if Profession == 0
			delskill 1184
		set_quest_state 3118 1
		addskill 1120
		addskill 1121
		addskill 1186
		SetHotkey 16 904
		SetHotkey 17 1120
		SetHotkey 18 1121
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 230 189
		else
		endif

		GetString((77161))	
		if Profession == 5
			delskill 1181
		set_quest_state 3117 1
		addskill 1151
		addskill 1150
		SetHotkey 16 904
		SetHotkey 17 1150
		SetHotkey 18 1151
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 217 325
		else
		endif

		GetString((77162))	
		if Profession == 3
			delskill 1182
		set_quest_state 3100 1
		addskill 1061
		addskill 1060
		SetHotkey 16 904
		SetHotkey 17 1060
		SetHotkey 18 1061
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 179 186
		else
		endif
		GetString((77163))	
		if Profession == 2
			delskill 1185
		set_quest_state 3100 1
		addskill 1091
		addskill 1090
		SetHotkey 16 904
		SetHotkey 17 1090
		SetHotkey 18 1091
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 179 186
		else
		endif
		GetString((77164))
		if Profession == 1
			delskill 1180
		set_quest_state 3116 1
		addskill 1001
		addskill 1000
		SetHotkey 16 904
		SetHotkey 17 1000
		SetHotkey 18 1001
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 167 326
		else
		endif
		GetString((77165))
		if Profession == 4
			delskill 1183
		set_quest_state 3116 1
		addskill 1031
		addskill 1030
		SetHotkey 16 904
		SetHotkey 17 1030
		SetHotkey 18 1031
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 167 326
		else
		endif
				return
	else
		dlg 1 GetString((77624))
			return
	endif
else
endif

proc_end


The following file is the counterpart to the script.
Folder: Server\game_server\slk\QUEST
File: quest3130.quest

Code:
[Name] Mission^of^God^Chosen
[Intro] ^^^^Be^the^God^Chosen^summoned^to^the^Forbidden,^you^will^be^given^the^future^abilities^and^God's^glory^to^help^Heroes^out^of^troubles,^reverse^the^wheel^of^history.^Join^the^combat^with^Heroes^to^defeat^the^attack^of^the^Draconians.^The^future^change^or^not,base^on^your^destiny!
------------------
[PlayerLevelMin]	1
[PlayerLevel]		1
[PlayerLevelMax]        100
//[Reputation]	0
[Quest] -1
------------------
[Level]			1
[task_type]	1
[can_del]	0
------------------
[Reward] 	Money	20
------------------
[show]	Money	20
------------------
//[Punish]	Money
//[Punish]	Exp	
//[Punish]	Item
------------------
[State] 0 Quest^starts
------------------
[State] 1 Assist^Palace^Officer^who's^at^war
------------------
[State] 2 Draconian^soldiers^and^report^to^Alliya
------------------
[NextStateNeed]  646 Draconia^soldier 3
------------------
[State] 3 Quest^Completed




Busy or I'd dig though it. Spoiler has the quest itself.
You need to decipher the quest order.
You are looking for a way to jump past to the end where you are teleported out.
But you need to modify the quest line itself.

***EDITED***
For rewording purposes, seeing as what I wrote isn't being interpreted properly.

You'll note that as that quest progresses:
Part of step 1 adds a temporary (powerful skill - which gets removed in Step 3 and replaced) and adds the Starting Gear per proper Class type
Part of step 3 removes a current skill from players (used on initial map only) and assigns appropriate Skills per proper Class type.

So you see, it isn't just tweak and go.
Which is why I said... you WILL need to play with it.



There are certain portions of the Quest Phase (inside a step) that you can bypass or comment out (such as having to kill the Mobs), but you can't skip the entire Phase itself.
Perhaps I didn't word this well previously, so I'll restate it worded different here.
 
Last edited:
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

Much Much more to this folks....
The following is just a small tidbit.


Yes, you can modify the *.quest files to change the dialogue of the NPC's.
You will have to be careful because there are 2 *.s (script) files and 2 *.quest (quest) files for every file name.
If you edit one you better edit the other.


*.s (script file) can be found in 2 folder locations.
Server\game_server\language\Script\quest
Server\game_server\Script\quest

*.quest (quest file) can be found in 2 folder locations.
Server\game_server\language\Script\quest
Server\game_server\Script\quest



This is the scripting tutorial document from Secret OL (translated from Chinese), but basically the "same information".
Code:
Scripting examples
First, write a script file extension * .s, can be written using UE, TXT, Notepad text processing software, when completed, will be the extension to .s

See specific script command: secret script command description .doc

Following is a brief scripted an NPC in the game time, the case is not specifically NPC function, only a reference to the script, there are many more specific powerful features, will not be discussed here!
And scripts can be triggered in a variety of state, such as: monster death, PLAYER enters an area, PLAYER death, PLAYER into the game, the new role, use items and so on!

SAMPLE:
// This is a task NPC script
proc_start 0
relate_quest 3239 0 1 // relate_quest 3239, said the task related to the task, said task state variable 0, 1 script entry
relate_quest 3239 1 2
proc_end
// If it is a task NPC, be sure to associate itself the task of variable initialization
proc_start 1
var $ n // define a temporary variable called n
$ n = ShowQuestDlg I saw! I saw it! That is our village into a living hell Shirakawa ridiculous!
      // ShowQuestDlg a task dialog is displayed
      // n value of -1: not available task 0: the user does not select the task you can also choose other: the task ID number
if $ n == -1
dlg 1 Ray tribe who for their own interests, Shirakawa village on us to do such a wicked thing, really too hard!
return
else
endif
if $ n == 0
     dlg 1 did not take any task
     return
else
endif

if $ n == 3239
      dlg 1 you choose the 3239 mission
proc_end

This completes the task of writing a simple script NPC, the following need to show him in the game, so as to find his trigger this script:
In the server directory has slk \ SCRIPT directory has a file called Npc.slk, this form each state determines the NPC, the use of the model is displayed, or displayed in the coordinates, NPC trigger the script, as well as whether the steering, NPC type, and so on.

This is the script command document from Secret OL (translated from Chinese), but basically the "same information".

Code:
Secret script commands Description
proc_start, proc_end

proc_start n:
Script starts, n script numbered from 0 to 15
0: The current script is initialized
1: is the entrance of the script.
2 to 15: other process script
proc_end
End script
proc_start and proc_end these two must be paired.
Examples:
proc_start 0
// Initialization script
proc_end

proc_start 1
// Start running script entry
// Do something
jump 2
proc_end

proc_start 2
// Do something
proc_end

  =, + =, - =, * =, / =
Setting Variables
x = n
When x is a number
0-5999: Custom Variables (3000 to 5999: Task variables)
n is the value
Note: Players variable range of 0 to 5999 are as follows: -127 ~ + 127
   Global variables and temporary variables in the range: - 2147483647 + 2147483647
3000 3000 = 0 // set variable to 0
2000 + 2000 = 3 // variable with the number 3
1000-- = 11 // The variable minus 11, 1000
100 * = 2 // to the 10th variable multiplied by 2
1000 / = 10 // variables except for the 1000 No. 10

When x is a string
Set the current trigger script player's attributes
name = name
Name = Nobunaga
Name can not be more than 15 or 30 alphanumeric characters

HeaderName = captain name
Dlg 0 Your captain is:% s HeaderName

DstPlayerName = target player name
Dlg 0 target player yes yes:% s DstPlayerName


Pos = x coordinate of the y-direction
Pos = 59 128 6
x and y coordinates of the current map coordinates
Direction from 0 to 7 (right, upper right, upper, left, left, left, down, right)

map = map number
Map = 2

model = model number
Model = 5017

Level = Level
Level = 20

Profession = occupation numbers
Profession = 1 (occupation number View <Table 1>)

Sex = gender Number
Sex = 0 (sex # for <Table 1>)

CityMaster = Liang city occupied guild name
BC beam current city occupiers is% s CityMaster

GuildName = Association name
BC you now belong to% s Association GuildName

[key] number of operations
[key] as follows:
money: Money
exp: Experience
skillexp: Skills Experience
con: physique
str: strength
dex: Agility
int: Intelligence
mgc: Magic
lky: Luck
hp: Life quantity
mp: Magic amount
integral: Integral
silver: silver (= invalid, only + = or - =).
Operations are:
+ =: Canada
- =: Less
=: Same
Such as:
money + = 100
hp - = 20
mp + = 10

if, else, endif
if: conditional, which appeared three directives must match
else: turning
endif: end judgment.

If [key] value logical operators
[key]
1) When the [key] is a digital time
For players who variables (0 to 4095)
2) When the [key] is a string
Properties for players (with Set [key] of [key])
Logical Operators
>: Greater than
> =: Greater than or equal
<: Less than
<=: Less than or equal
==: Equal
! =: Not equal

if money> 1000
// Set up the conditions to do
Else
// Condition is not satisfied to do something
endif

call n
Call a number of scripts, when the script is finished, return to local calls, and then continue down
n: number Scripts
call 3
3 Call finished script returns

jump n
Jump to a number of script, the script is finished when the place, do not return calls. (Note the difference and call in)
n: number Scripts
jump 3
3 Call finished script does not return

return
Returns the current script

dlg 0 text $ m
Dialog box is displayed.
Parameters:
The first parameter of 0 indicates there is under sentence of 1 indicates that the last one
The second parameter is the conversation
The third parameter is the variable to N
dlg 0 show "Next" button
dlg 1 shows "close button"

var $ x
$ x = 10
dlg 1 to% s of bread, my name is% s $ x name
NOTE: The next variable will be displayed instead of% s, the results for "bread is 10, my name is WitSun"

Talk time color text
In Active Scripting player screen displays information
time: time display (in milliseconds, 1000 milliseconds = 1 second)
color: the color of the word
text: Information Content
Talk 10000 0xffff0000 you okay :)

TalkAll time color text% s $ n
Displays information on the screen of all players
The meaning of the parameters with "Talk" command
TalkAll 10000 0xffff0000 you have an item $ n% s

TalkTeam time color text% s $ n
In the current ranks of the screen displays information for all players (not just your own team display)
The meaning of the parameters with "Talk" command
TalkTeam 10000 0xffff0000 you have an item $ n% s

TalkArea mapid x y time color text% s $ n
Players of the screen displays information in the designated area
Mapid: Map ID
x, y: coordinates of the region
The meaning of the parameters with "TalkAll" command
TalkArea 0 3 4 10000 0xffff0000 you have an item $ n% s


Tell text
text: Information Content
Players chat box to display information
Tell you okay :)

flytomap id x y
Immediately fly to the designated place,
Id: map number (-1 indicates that the current location map)
x, y: coordinates of the map
Flytomap 1 45 47
1: Map ID
45: x coordinate of the map
47: y coordinates for the map

ask
Arranging a plurality of selection items
[var] = ask the prompts Option 0 Option 1 Option 3 Option n
[var]: for system variables
Var _n
_n = Ask the option to test Shanghai Beijing Shenzhen
if _n == 0
dlg you choose Shanghai
else
endif
if _n == 1
dlg you choose Beijing
else
endif
if _n == 2
dlg you choose Shenzhen
else
endif

RemoveAllEquip
Remove all equipment

RemoveAllItem
Remove all the props


Shop_Item id price mincount maxcount percount x
Set up shop selling goods (used in conjunction with the Shop instructions)
id: Item ID
price: The price of their goods (-1 read from the table into the SLK)
mincount: minimum number of items (inventory)
maxcount: The maximum number of items (inventory)
percount: The number of items sold
X: Items activity (55 to 100)
Shop_Item 5700 10 60 5 80
Said:
5700: Item ID
10: The basic price
60: The maximum number of stock
5: The number of each lot sold
80: 80% activity

Shop id rate type
Trading Directive (Directive conjunction with Shop_Item)
id: store ID, each store has its own unique ID, ranging from planning regulations (ID can not be repeated)
rate: Items refresh period (minutes)
type: NPC recovery type of item (see <Table 1> represents any items to -1)
Shop_Item 5700 10 60 5 80
Shop_Item 7715 100 60 5 80
Shop 1 30 -1
Said: ID5700 shops selling items, and items ID7715
1: Shop unique ID
30: refreshes every 30 minutes store items, if the current is less than 30% of the merchandise, they make up the number, or do not make up
-1: Indicates store any type of recycling materials

HaveThisItem
Determine whether the props
Var _n
_n = HaveThisItem knife
_n: variable, returns the number of

RemoveThisItem
Props removed from the parcel
RemoveThisItem armor 3
3: Remove all the props number
-1 To remove all the props

IsThisItemEquipped
Determine whether the props are equipped
Var _n
_n = IsThisItemEquipped armor
_n: variable, returns the result (return 0 for no, 1 is returned)

IsThisSkillActived
Determine whether the player has the skills
Var _n
_n = IsThisSkillActived 1090 1
1090: Skills ID
1: skill level
_n: variable, returns the result (return 0 for no, 1 is returned)

BC apple number% s $ n
Broadcast content to all players
BC everyone okay

SetBornPoint
Set point of birth
SetBornPoint 1 30 40
1: Map ID
30,40: map coordinates

TeachSkill
Learning Skills
TeachSkill 1000 1001 1001
1000,1001,1002: For skill ID
Up to 64

Add_Item
Players get a certain kind of props
Add_Item sword 1
Broadsword: Props name
1: The number of

Can_get_new_quest
Can I take a new task
Var _n
_n = Can_get_new_quest
_n: variable, return values, one for Yes, 0 for No

Cancel_quest
Cancel mission
Cancel_quest 3000
3000: for task variables

Done_quest
To complete the task
Done_quest 3000
3000: for task variables

Set_quest_state
Set the task status
Set_quest_state 3000 1
3000: for task variables
1: task status, as a system variable, the return value
0: Not to take over the task
-1: Completed tasks
1 to 254: Task process

Get_quest_state
Made the task status
Var _n
_n = Get_quest_state 3000
3000: for task variables
_n: task status

Relate_quest id state enter
Related tasks
id: Task ID
state: task status
enter: script entry
Relate_quest 3000 1 2
3000: for task variables
1: Task Status
2: feet into the entrance
Note:
NPC script task initialization want to "own task state interest" in connection
Such as:
proc_start 0
relate_quest 3000 0
relate_quest 3000 3
proc_end

Var $
Variable declaration
Var $ n
Var $ g_n
$ n: for temporary variables
$ g_n: for system variables
Preceded by a temporary variable identifier '$'
System variables '$ g_' beginning

Such as:
Var $ m
$ m = 100
if $ m == 100
else
endif

RefreshMonster
Brush strange
RefreshMonster n x y m
n: Map ID (when n is -1, said the refresh trigger scripts player or monster strange location map)
x, y: small map number
m: Block ID
Such as:
RefreshMonster 0 3 4 3
No. 0 Map 3,4 numbered blocks 3 brush strange
(To be edited in MonsterConfig.exe in advance)

PlayMusic
Play music
PlayMusic n filename
n:
0: Play time
1: Repeat
-1: Stop playing
filename: Music filenames
Such as:
PlayMusic data / music / 1.mp3

{# FFFF0000 = text #}
    The basic format using the "{}" braces
    "#" Character represents the hexadecimal
In the "#" followed by eight hexadecimal notation (hexadecimal --0 ~~ F), every 2 represents a color
"00" stands for all through
"FF" on behalf of the real impervious
According to an arbitrary value between "00 ~ FF"
Specify:
2 2 2 2
↓ ↓ ↓ ↓
Transparent channel RGB

Examples: {# FFFF0000 = text #}
  The effect is the formation of the "text"
Location: Place Name {# FFFF0000 = text #}
Names: character name {# FFFFFF00 = text #}
Props: Props name {# FF00FF00 = text #}
Event: Event Name {# FFFF9900 = text #}
// Hyperlink
Text h} {h
Examples: {h mayor h}
Forming effect: mayor

MakeItem
Synthesis / refining / strengthening
MakeItem NeworOld rate count id1 id2 ...
NeworOld: 1 is a new synthetic 0 is old (temporarily all to 0. That is all old synthetic!)
rate: NPC additional synthetic odds
count: There are a few behind ID
id1 id2 ...: Each recipe ID

(Up to 32 groups)

Rand
Random value extraction
Rand X X is a variable value (1 to 32767)
Assuming ranging rand 10 (0-9)
Var $ n
$ n = rand 2
if $ n == 0
else
endif

GetCharCount x
Get a quantity x number of players and NPC's map
GetCharCount n
n: Map ID
Var $ n
$ n = GetCharCount 3
// Get the number of players on the 3rd map
if $ n == 0
else
endif
Note: It is (player + NPC) Number

ShowQuestDlg
Task dialog box is displayed
$ n = ShowQuestDlg Do you have anything else?
$ n: the return value
-1: Not available tasks
0: The user does not select a task
Other: The task ID number
proc_start 0
relate_quest 3000 0 1
relate_quest 3000 1 2
relate_quest 3001 1 1
proc_end

proc_start 1
var $ n
$ n = ShowQuestDlg Do you have anything else?
If $ n == -1
No task Dlg 1
Else
Endif
If $ n == 0
Dlg 1 you did not select a task
Else
Endif
If $ n == 3000
Dlg 1 task you choose No. 3000
Else
Endif


proc_end

UseSkill id level
Use skills
Id: Skill ID
Level: Skill level
UseSkill 1024 1

PopNpcList
Displays the current map NPC list
PopNpcList

AddSkill
Adding skills
AddSkill 1000
1000: For skill ID

GetWorldTime time type
Obtaining secret time or real time
time for: Year: Year (2006->?)
Month: month (1 to 12)
Week: Week (0-6)
Day: Day (1 to 31)
Hour: When (0 to 23)
Minute: engraved (0 to 59)
type is: 0: secret time
1: Real Time
Note: For weeks, 0 for Sunday, and the real time is valid only for a week, the secret No week.
var $ n
$ n = GetWorldTime Day 0

GetBirthday type
Players get birthday (secret time)
type is: Year: Year
Month: May
Day: Day
var $ n
$ n = GetBirthday Day


NpcMoveNext
Let NPC to move to the next point
NpcMoveNext

NpcStopMove
Let NPC stop moving
NpcStopMove

NpcStartMove
Let NPC continues to move
NpcStartMove

NpcPlayAnim name count end npcid
Let NPC to do an action (the firing angle of the player's only visible)
Name: Name of the action
Count: The number of times to do this action
End: End action name
npcId: NPC's ID (-1 indicates the current NPC)
NpcPlayAnim sayhello 4 idle -1

NpcPlayAnimForAll name count end npcid
Let NPC to do an action (see all visible players)
Name: Name of the action
Count: The number of times to do this action
End: End action name
npcId: NPC's ID (-1 indicates the current NPC)
NpcPlayAnimForAll sayhello 4 idle -1


CanLearnSkill id level
Determine whether learning a skill
id: Skill ID
level: skill level (from a start!)
Var $ n
$ n = CanLearnSkill 1000 1

ShowBank
Players banks obtain information.
ShowBank

DoRide id
Ride ride
id: horse ID
DoRide 1000

GetRideId
Get mounts ID
-1 Means no mounts
Var $ id
$ id = GetRideId

SetDialogName name
Display name of the dialog box
name: name
SetDialogName bible

SetHotkey index id
Set hotkey
Index: The index to be placed hotkey
Id: Hotkey ID
SetHotkey 0 1000

SetStorage
Players access goods to the warehouse, NPC's name, please fill in the name of the local city to mark the city
SetStorage

LogInfoToDB info
The information stored in the database
Returns: 0 fails, a success
Var $ return
$ return = LogInfoToDB play Po activity (% s-% s-% s-% s) $ a $ b $ c $ d

GetTeamPlayerCount
The number of players to get the team
The return value is at least one person, that is, their own
Var $ count
$ count = GetTeamPlayerCount

GetTeamID
Get the team ID
-1 Is not contingent
Var $ id
$ id = GetTeamID

GetTeamPlayerLevel x
Get the team players level
x: 0: lowest rating
1: The highest level of
Var $ level
$ level = GetTeamPlayerLevel 0

SetTeamVar key var
Setting team variables
Key: variable name
Var: Value
SetTeamVar 500 1

GetTeamPlayerID index
ID to obtain a member of the team
Index: Index members
Note: If this team has three individuals, that index is 0,1,2
And the captain of the index number 0
Var $ count
$ count = GetTeamPlayerCount
If $ count == 2
    Var $ id
    $ id = GetTeamPlayerID 1
Else
endif

GetCurPlayerID
Get the current script player ID
Var $ id
$ id = GetCurPlayerID

GetPlayerVar id key
Players get variables
Id: Player ID (-1 said he)
Key: Variable
Var $ id
$ id = GetTeamPlayerID 1
Var $ hp
$ hp = GetPlayerVar $ id hp

SetDstPlayer id
Setting the target audience (for display DstPlayerName)
Id: Player ID
Var $ id
$ id = GetTeamPlayerID 1
SetDstPlayer $ id

CreateMonster mapid xyr bodysize index num
Create a monster
Mapid: Map ID (-1 indicates that the current map)
x, y: map coordinates (MapId, X, Y are the coordinates of -1 indicates that the current player)
r: Radius
bodysize: body size
index: Monster Index
num: number of monsters
CreateMonster 0 100 100 20 1 100 2

CreateSpecialMonster mapid xyr bodysize index num
Players create exclusive monster
Mapid: Map ID (-1 indicates that the current map)
x, y: map coordinates (MapId, X, Y are the coordinates of -1 indicates that the current player)
r: Radius
bodysize: body size
index: Monster Index
num: number of monsters
CreateSpecialMonster 0 100 100 20 1 100 2


GetNullItemCount
The number of spaces to get the backpack
Var $ n
$ n = GetNullItemCount

ReleaseMap second
Release copy of the map
Second: start after a few seconds release (0 means no release)
ReleaseMap 60

Sleep time
Late run the following script
time: delay time, in milliseconds
Sleep 5000

GetGuildId
Get guild ID
$ id = GetGuildId

CallScript file scriptid playerid
Call the specified script
file: script file name
scriptid: script entry ID
playerid: Player ID (-1 said he)
CallScript Script \ abc.s 2

CloseDlg
Close the current NPC dialog
CloseDlg

GetMapId
Players get current map ID
Var $ id
$ id = GetMapId

IsInZone name
Determine whether the player within a block area
Name: Block Name
Returns: 1 yes, 0 no
Var $ b
$ b = IsInZone name1
If $ b == 1
Elseif
endif

PlayEffect name
Play effects
Name: effect file
PlayEffect Common / LevelUp.ini

ShowIntonateBar time
Article singing show
time: time (ms)
Dlg 0 111
ShowIntonateBar 3000
Dlg 0 222

GetGuildInfluenceID
Get guild camp ID
-1 Means no camp (eg no guild)
Now the two camps, with a 0
0 Mohist one will be any
Var $ id
$ id = GetGuildInfluenceID
AddPkValue
Increase the value of justice
AddPkValue 10
DecPkValue
Reduce the value of justice
DecPkValue 10
SetPkValue
Set the value of justice
SetPkValue 10
GetPkValue
Get the current value of justice
Var $ value
$ value = GetPkValue
GetPkState
Gets the role of the current status of PK
0 Blue name
An ordinary
2 gray name
3 red name
Var $ value
$ value = GetPkState

OPenClientUI
Open Client section
OPenClientUI value
0 // do not open any UI
// Open a storybook
2 // Open Society icon
3 // Open brothers
4 // open the full-service announcement interface / bc
5 // Open propaganda regional servers squared / h
6 // Open shouting area with full service / sh
7 // Open strengthen interface
8 // Open unbind interface
9 // Open decomposition interface
10 // Open a grapevine interface
11 // Open grapevine interface 2
12 // Open grapevine Interface 3
13 // Open grapevine interface 4
14 // Open grapevine interface 5
15 // Open grapevine interface 6
16 // Open grapevine interface 7
17 // Open grapevine interface 8
18 // Open grapevine interface 9
10 19 // Open grapevine interface
20 // Open strengthen lock screen
21 // Open beasts mountain reward interface


OPenClientUI 0/2 ......

GetPlayerSociety iplayerId nValue
Get and the player who has the appropriate number of relationships
Number of players iplayerId
nValue 0 Friends
A husband and wife
2 brothers
3 master
4 apprentice
Counts = GetPlayerSociety p1_ID 1
Counts of the number of couples, in order to determine whether the player p1_ID this marriage


NotarizationSuccess player1ID player2Id nValue
Player1 player2 as the relationship
nValue 0 Friends
A husband and wife
2 brothers
3 master
4 apprentice

Note unilaterally, if it is necessary to write twice married
 NotarizationSuccess p1_ID p2_ID 1
NotarizationSuccess p2_ID p1_ID 1
p1_ID and p2_ID married

GetBagSize
The number of cells obtained backpack
Var $ n
$ n = GetBagSize

AddBagSize n
Adding plaid backpack
n: number of
AddBagSize 1

GetGuildCredit
Honor Society where value
Var $ n
$ n = GetGuildCredit

GetMyGuildOffer
Get your own contribution to the value in the Association of
Var $ n
$ n = GetMyGuildOffer

GetGuildLevel
Get guild rank
Var $ n
$ n = GetGuildLevel

AddGuildCredit n
Increase the guild honor
AddGuildCredit 100

DecGuildCredit n
Reduce guild honor
DecGuildCredit 100

AddMyGuildOffer n
To increase their contribution to the value in the Association of
AddMyGuildOffer 100

DecMyGuildOffer n
Reduce their own contribution to the value in the Association of
DecMyGuildOffer 100

IsGuildMaster
Judge he is not guild
Var $ n
$ n = IsGuildMaster
1: is
0: No

IsNpcPlayAnim npcid name
NPC determine whether it is an action
npcId: NPC's ID (-1 indicates the current NPC)
name: the name of the action (end action with NpcPlayAnim command name)
In return values: 0 is not; 1 is
Var $ n
$ n = IsNpcPlayAnim -1 sayhello


NoticeNotarizationResult iPlayer1 pszAnd iPlayer2 pszText nMapId nX nY time color
Notice player1 and player2 reached what relationship
iPlayer1: 1 Number of players
pszAnd: conjunctions, for example: "and", "and", "right"
iplayer2: 2 Number of players
pszText: Event statement

TalkToAear function reference
nMapId:
nX:
nY:
time:
color


IsEverybodyAllReady iplayId ivalue
Determine whether the captain brought the team standard
iplayId: Captain id
nValue 0 Friends
A husband and wife
2 brothers
3 master
4 apprentice

In return values: 0 is not; 1 is
Var $ b = IsEverybodyAllReady id 5


IsEverybodyAllHere
Determine whether the captain of the team brought in a range of distance 10

In return values: 0 is not; 1 is
Var $ here
$ here = IsEverybodyAllHere

IsMapActive mapid
Determine whether the copy of the map are the players already exist
Mapid: Map ID
Returns: 0 does not exist, an existence
Var $ n
$ n = IsMapActive 9


GetMapCount mapid
Get the current map (a copy of) the number of
Mapid: Map ID
Returns: the number of
Var $ n
$ n = GetMapCount 9




Startloggingmovepath start recording path

stoploggingmovepath end recording path

Video, the two instructions in the game input, with GM directive, the head and tail to be recorded

DoHitch X X1
Video launched, files are automatically saved under the CLIENT, uploaded to the SERVER \ Data \ TrafficRoutePath directory path filled to SERVER \ slk \ traffic.slk in
X: horse ID
X1: 0 starting point; an end


OpenReputeFlag index
Open a player's name, the title of the first three is enabled by default couples, brothers, mentoring, so index must be greater than 3, the specific name in the query reputelist.slk Note: Currently supports up to 27 titles

OpenReputeFlag 5

CreateProtect id
Creating escort blame
Id: Monster index ID
CreateProtect 1000

LostProtect
Lost escort blame
LostProtect

GetProtect
Get escort strange ID,
The return value is -1 indicates no
$ id = GetProtect



SetRankFlag (index, value)
Set a player's title, the specific name in the query ranklist.slk

SetRankFlag 5 8


GetRankLevel (index)
Get a title of a player's current level, the specific name in the query ranklist.slk

$ level = GetRankLevel (3)

RequestGuard [temporary use]
City defenders apply Liang Fang

RequestGuard

RequestAttack [temporary use]
Liang Fang apply to become a city siege

RequestAttack


IsCityMaster
Determine whether the player is not a part of the beam City occupiers

$ ismaster = IsCityMaster


IsGuardGuild
Determine whether the player is not a part of the city defenders Liang Fang

$ isguard = IsGuardGuild

IsAttackGuild
Determine whether the player is not a part of the city siege Liang Fang

$ isattack = IsAttackGuild

RequestGuardFlag
City defenders before war began opening party logo

RequestGuardFlag

RequestAttackFlag
City siege warfare began to open before the party logo

RequestAttackFlag

GetBattleScore
Society has made urban warfare they belong integral currently available

Var $ n
$ n = GetBattleScore

GetAttackGuildNum
At present, the Association has made a successful attack on the registration number of the beam City

BC

GetAttackGuildName
City battle to succeed guild name registration

Name1 = GetAttackGuildName 0
Name2 = GetAttackGuildName 1
BC attack the city's participation in the beam of the Society have% s% s Name1 Name2

BattleStart
City war began

BattleStart

BattleEnd (int Fail)
End urban warfare

BattleEnd 1 city end of the war, the city was broken beams
BattleEnd 0 city war ended, the city has not been broken beams


IsHaveStatus
Determine whether the player has a certain state

Example: the players who determine whether the state preserved egg porridge, preserved egg porridge for state ID 2914
$ status = IsHaveStatus 2914



Note 1: View script variables in the game way in the chat box, enter "/ var variable name."
Such as:
/ var 1000
/ var $ n

Note 2: The range of variables
Role variables (task status and count variable): -127 ~ +127
Temporary variables: -2147483647 ~ +2147483647
System variables: -2147483647 ~ +2147483647


Table 1:
Item type number
0: Recovery Drug
1: Weapon
2: Armor
8: Reel
9: Material
10: Medal
12: Tools
13: Gem

Occupation Number
0: Assassin
1: Warrior
2: Hunter
3: The Alchemist
4: Priest

Sex Number
0: Male
1: Female
Number of weapons
0: fist, the equivalent of unarmed
1: Swords
2: Two-Handed Swords
3: Longbow
4: Guns, Crossbows
5: sticks
6: Dagger
7: Shield
8: Gloves
9: One-Handed Axes
10: Two-Handed Axes

Armor Number
0: Hair
1: Helmet
2: Face
3: Armor
4: Gloves
5: Shoes
6: The left hand goods
7: right items
8: Headwear
9: Shield
10: Shoulders
11: Leggings
12: Ring
13: bracelet
14: Necklace
15: Belt
 
Last edited:
CATMAGEDDON
Loyal Member
Joined
Aug 17, 2014
Messages
1,661
Reaction score
292
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

DNC thanks,i ll try to set quest state from 1 (started) to 3 (completed) and hope it works
nor evangelist nor dwarf spawned the monsters so idk if its class based or maybe server files messed up
im really tired and sleepy i didnt sleept for download and make this work,anxiety would kill me everytime i download a release its same, so i ll test later
 
Joined
Oct 28, 2011
Messages
2,465
Reaction score
1,258
Tested and Solved exiting tutorial without killing Draconians. Read Carefully

DNC nor evangelist nor dwarf spawned the monsters so idk if its class based or maybe server files messed up

Regarding evangelist and dwarf not spawning mobs. Yep, I was sure there were a few issues with something along these lines as mentioned in a previous post.
Also one of the classes has an issue:
There are still starter items not correct for a few classes (Within a few minutes of starting you'll have heal pots if you want to play a character that does not have starting gear. This is only for the initial 5 minutes or so of game play, so no biggie.), some quest rewards are obviously incorrect (mostly on the rogue, but others have a couple), the very first few quests are in Chinese still (I'm sure you can ignore that or fix it yourself), I've not put the cash shop together yet either.



xlw00tlx and #Everyone


Pay attention to that quest script.

And what you wrote, isn't what I said.

You'll note that as that quest progresses:
Part of step 1 adds a temporary (powerful skill - which gets removed in Step 3 and replaced) and adds the Starting Gear per proper Class type
Part of step 3 removes a current skill from players (used on initial map only) and assigns appropriate Skills per proper Class type.

So you see, it isn't just tweak and go.
Which is why I said... you WILL need to play with it.



There are certain portions of the Quest Phase (inside a step) that you can bypass or comment out (such as having to kill the Mobs), but you can't skip the entire Phase itself.
Perhaps I didn't word this well previously, so I'll restate it worded different here.





- - - Updated Pay Close Attention - - -


If you look in the file:
Server\control_center\string.language

This will be a "mostly" translated to English version of the strings file.
You will find the different GetString output that will be displayed in the client.

IMORTANT NOTE: (While editing any of these files)
DO NOT change line numbers in any quest script or quest file.
If you remove a line you leave the line empty (IE DO NOT delete the empty line).
The string.language files depend on EXACT LINE NUMBERS.

This is why I posted a code block for you to replace verbatim in your quest file. So that line numbers are Not changed.



An Example for GetString((77621)):
(This is the kill 3 Draconian quest START)
Code:
        <String Id="77621" Value="//Judge^whether^to^kill^the^Dragon^or^not">
            <Position File="./Script/quest/quest3130.s" [COLOR="#FF0000"]Line="96"[/COLOR] Column="1" />
        </String>

An Example for GetString((77622)):
(This is the kill 3 Draconian quest COMPLETION noted by a value checked (will get to that shortly))
Code:
        <String Id="77622" Value="^^^^You^have^defeated^the^Draconian,^that’s^unbelievable!\n^^^^Wait^I^sense^a^trace^of^Dragon^energy^from^you,^and^it^doesn't^seems^to^be^from^the^Dragon's^blood.\n^^^^Ah,^what^is^this,^I^have^never^seen^such^a^mysterious^Crystal,^but^i^can^sense^it^will^">
            <Position File="./Script/quest/quest3130.s" [COLOR="#FF0000"]Line="103"[/COLOR] Column="9" />
        </String>






SOLID SOLUTION TO BYPASS TUTORIAL WITHOUT KILLING Draconians.


Flag get's checked whether we've killed the mobs or not.
if 646 > 0



Modified quest3130.s (edit and replace the ENTIRE QUEST CONTENT with the following)
BOTH quest3130.s file which are located in the folders:
Server\game_server\language\Script\quest
and
Server\game_server\Script\quest


Code:
proc_start 0
proc_end



proc_start 1
NpcPlayAnim talk 1 idle -1
var $quest3130
	$quest3130 = get_quest_state 3130
	if $quest3130 == 0
		dlg 0 GetString((77609))
		dlg 0 GetString((77610))
		dlg 0 GetString((77611))
		dlg 0 GetString((77612))
		dlg 1 GetString((77613))
		GetString((77614))
		GetString((77160))
		if Profession == 0
			addskill 1184
			SetHotkey 16 904
			SetHotkey 17 1184
			equipall 24399 24400 24401 24402 24403 24404 24405 8048
		else
		endif

		GetString((77161))	
		if Profession == 5
			addskill 1181
			SetHotkey 16 904
			SetHotkey 17 1181
			equipall 22200 22201 22202 22203 22204 22205 22206 8648
		else
		endif

		GetString((77162))	
		if Profession == 3
			addskill 1182
			SetHotkey 16 904
			SetHotkey 17 1182
			equipall 26280 26281 26282 26283 26284 26285 26286 8848
		else
		endif
		GetString((77163))	
		if Profession == 2
			addskill 1185
			SetHotkey 16 904
			SetHotkey 17 1185
			equipall 25399 25400 25401 25402 25403 25404 25405 8248
		else
		endif
		GetString((77164))
		if Profession == 1
			addskill 1180
			SetHotkey 16 904
			SetHotkey 17 1180
			equipall 23290 23291 23292 23293 23294 23295 23296 8448
		else
		endif
		GetString((77165))
		if Profession == 4
			addskill 1183
			SetHotkey 16 904
			SetHotkey 17 1183
			equipall 27290 27291 27292 27293 27294 27295 27296 9048
		else
		endif
		set_quest_state 3130 1
		useskill 2334 1
		talk 3000 ffff7f00 GetString((77615))
			return
	else
	endif

proc_end



proc_start 2
NpcPlayAnim talk 1 idle -1
var $quest3130
	$quest3130 = get_quest_state 3130
	if $quest3130 == 1

		dlg 0 GetString((77616))
		dlg 0 GetString((77617))
		dlg 0 GetString((77618))
		dlg 1 GetString((77619))
			set_quest_state 3130 2
			talk 3000 ffff7f00 GetString((77620))
				return
	else
	endif

proc_end

GetString((77621))
proc_start 3
NpcPlayAnim talk 1 idle -1
var $quest3130
	$quest3130 = get_quest_state 3130
if $quest3130 == 2

		dlg 0 GetString((77622))
		dlg 1 GetString((77623)) name
		RemoveAllEquip
		Done_quest 3130
		set_quest_state 3132 1
		300 = 100
		GetString((77160))	
		if Profession == 0
			delskill 1184
		set_quest_state 3118 1
		addskill 1120
		addskill 1121
		addskill 1186
		SetHotkey 16 904
		SetHotkey 17 1120
		SetHotkey 18 1121
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 230 189
		else
		endif

		GetString((77161))	
		if Profession == 5
			delskill 1181
		set_quest_state 3117 1
		addskill 1151
		addskill 1150
		SetHotkey 16 904
		SetHotkey 17 1150
		SetHotkey 18 1151
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 217 325
		else
		endif

		GetString((77162))	
		if Profession == 3
			delskill 1182
		set_quest_state 3100 1
		addskill 1061
		addskill 1060
		SetHotkey 16 904
		SetHotkey 17 1060
		SetHotkey 18 1061
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 179 186
		else
		endif
		GetString((77163))	
		if Profession == 2
			delskill 1185
		set_quest_state 3100 1
		addskill 1091
		addskill 1090
		SetHotkey 16 904
		SetHotkey 17 1090
		SetHotkey 18 1091
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 179 186
		else
		endif
		GetString((77164))
		if Profession == 1
			delskill 1180
		set_quest_state 3116 1
		addskill 1001
		addskill 1000
		SetHotkey 16 904
		SetHotkey 17 1000
		SetHotkey 18 1001
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 167 326
		else
		endif
		GetString((77165))
		if Profession == 4
			delskill 1183
		set_quest_state 3116 1
		addskill 1031
		addskill 1030
		SetHotkey 16 904
		SetHotkey 17 1030
		SetHotkey 18 1031
		SetHotkey 26 907
		SetHotkey 27 910
		flytomap 0 167 326
		else
		endif
				return
else
endif

proc_end



I removed the if / else block and removed the (if 646 > 0) check to see if the 3 Draconians were killed.




NOTE: This means you get the quest to Kill the Draconians and then just go back and continue the quest as if you already killed them.
During the final conversation it removes all your starter crap and sets you up with proper skills, as well as, teleports you to your appropriate starting map.
Once on the appropriate starting map, you will go get your initial Class quest to get new equipment and additional skills.

Cheers



ATTACHED zip file contains quest3130.s
You can either copy/paste the code block or replace both quest3130.s scripts (where told to above) with the contents of this zip file.
Just extract it somewhere and replace them both.
Guarantees the file isn't incorrectly modified, by using this attachment.
 
Last edited:
Junior Spellweaver
Joined
Nov 1, 2008
Messages
151
Reaction score
27
Re: [RELEASE] Heroes of Thessalonica Full Source and compiling

Someone would have done the server on virtual machine ??

Thank you in advance:rolleyes:
 
Back
Top