= ONLY FOR DEVELOPERS = 

!!! EACH NEW SD RELEASE YOU MUST USE NEW SDK !!!

---- THE PATCH 1.4.21.0 ----
This patch have many changes inside so there are few things that u must know
- due to sync stuff added by beth some while-loops in the plugins must have Wait(0) inside
  otherwise u can get into infinite loop
- if the CMD param in the ExecuteConsoleCommand call has no parent (such as 'set' commands etc) 
  then u MUST set SELECTEDREF param to the 0 (it didn't matter in previous patches but it does now)
----------------------------

I hope u looked into the ReadMe(eng).txt so ...

Okay guys, if u want to write ur own ScriptDragon plugins u need to be good with C++.
Im using MSVC2010, so all example projects are for this version of VS.
DragonScript allows to call skyrim `native` functions (the one which are using in the scripts),
`obscript` functions (from the old oblivion engine, its kinda deprecated so something may not work)
`console` functions (just like you typed the string into the console -- almost the same as obscript)

"pluginsrc\common" is the ScriptDragon sdk itself
enums.h - game id enums, the list is not complete
invoke.h - native and obscript funcs invoke templates
obscript.h - all obscript functions definition
plugin.cpp - plugin initializer, do not change ANYTHING here
plugin.def - exports for the plugin
plugin.h - header with all of the data which shud be shared between the plugin
skyscript.h - all native functions definition
types.h - game types

By default scripts in the skyrim are classes, so each script represents a class with own parent class etc.
ScriptDragon plugins are not classes, so they can't have OnLoad, OnAttack etc callbacks.
Look into the examples and you will understand almost everything. 
For fast creating new project copy all dummy.* files and rename 'em, then
replace all "dummy" strings in the *.vcxproj via notepad to "%your_name%".

Post your questions in the topic of the ScriptDragon.

Btw, if u r using game direct memory addreses in ur plugins please make game version checker to avoid crashes
on other patches
/*			switch ( *(DWORD *)(0x00DDDC00) ) 
			{
				case 0x83EC8B55 : // 1.1.21.0 (signed on 31 Oct 2011)
				{
					break;
				}
				case 0xE04D8BE0 : // 1.1.21.0 rus (signed on 10 Nov 2011) 
				{
					break;
				}
				case 0x8B500C45 : // 1.2.12.0 (signed on 30 Nov 2011) 
				{
					break;
				}
				case 0xF8458900 : // 1.3.7.0 (signed on 06 Dec 2011)  
				{
					break;
				}
				case 0xE04589FF : // 1.3.10.0 (signed on 18 Dec 2011)  
				{
					break;
				}	
				case 0x0275C53B : // 1.4.15.0 (signed on 23 Jan 2012)  
				{
					break;
				}		
				case 0x89078B08 : // 1.4.21.0 (signed on 01 Feb 2012)
				{
					break;
				}			
				case 0xD0FF012A : // 1.4.27.0 (signed on 27 Feb 2012)
				{
					break;
				}
				case 0xCCCCCC00 : // 1.5.24.0, 1.5.26.0 (signed on 20/30 Mar 2012)
				{
					if (*(BYTE *)0x00838A80 == 0xFC)
					{
					
					} else 
					if (*(BYTE *)0x00838A80 == 0x83)
					{

					} else
						Error("Your game version is NOT supported");

					break;
				}
				case 0x18246C89 : // 1.6.89.0 (June 2012)
				{
					break;
				}
				case 0x5FFFF2DD : // 1.8.151.0
				{
						
				}
				case 0x290F5756 : // 1.9.29.0
				{
						
				}				
				default :
				{
					Error("Your game version is NOT supported");
					ExitProcess(0);
				};
*/

Best regards
- Alex