home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 April / Gamestar_83_2006-04_dvd.iso / Dema / demowot_english.exe / Script / Source / entities.inc < prev    next >
Text File  |  2005-03-11  |  9KB  |  258 lines

  1. /* Entity functions
  2.  * Interface between the Small script system and 
  3.  * Digital reality GameEngine.
  4.  *
  5.  * (c) Copyright 2002-2003, Digital Reality Kft.
  6.  * This file is provided as is (no warranties).
  7.  */
  8.  
  9. #if defined _entity_included
  10.   #endinput
  11. #endif
  12. #define _entity_included
  13.  
  14. enum vec2
  15. {
  16. x,y
  17. }
  18.  
  19. enum vec3
  20. {
  21. x,y,z
  22. }
  23.  
  24. enum quat
  25. {
  26. x,y,z,w
  27. }
  28.  
  29. enum rgba
  30. {
  31. r,g,b,a
  32. }
  33.  
  34. enum ModifierType
  35. {
  36. MULTIPLY,
  37. ADD,
  38. SET,
  39. MAXVALUE
  40. }
  41.  
  42. /* Egy olyan vΘletlenszßmot generßl amelyet lehet hasznßlni multiplayer 
  43.  * jßtΘkban is, mert az engine szinkronizßlja. EgΘsz szßmokkal m√k÷dik.
  44.  */
  45. native Rnd( MinValue, MaxValue );
  46.  
  47. /* A megadott stringID-j√ entitßs id-jΘt adja vissza, vagy 0-ßt 
  48.  * Ezt az ID-t nem szabad egy funkci≤hφvßson kφvⁿl eltßrolni. Ugyanis 
  49.  * egy save-load megvßltoztatja!!!
  50.  * Spec ID-k: 
  51.  * "world" a World pointerΘt adja visza
  52.  * "self" annak az objektumnak a pointerΘt adja vissza ahol a script fut
  53.  */
  54. native DrID:GetEntity(stringid[]);
  55.  
  56. /* A megadott entitßsbase-t adja vissza
  57.  * Ezt az ID-t nem szabad egy funkci≤hφvßson kφvⁿl eltßrolni. Ugyanis 
  58.  * egy save-load megvßltoztatja!!!
  59.  */
  60. native DrID:GetEntityBase(stringid[]);
  61.  
  62. /* A megadott entitßs base-jat adja vissza
  63.  * Ezt az ID-t nem szabad egy funkci≤hφvßson kφvⁿl eltßrolni. Ugyanis 
  64.  * egy save-load megvßltoztatja!!!
  65.  */
  66. native DrID:GetBaseEntity( DrID:entity );
  67.  
  68. /* A megadott nevu component id-jΘt adja vissza, vagy 0-ßt 
  69.  * Ezt az ID-t nem szabad egy funkci≤hφvßson kφvⁿl eltßrolni. Ugyanis 
  70.  * egy save-load megvßltoztatja!!!
  71.  */
  72.  
  73. native DrID:GetComponent( DrID:entity, componentname[], SubID=-1);
  74.  
  75. /* A megadott nevu Modifier id-jΘt adja vissza, vagy 0-ßt 
  76.  * Ezt az ID-t nem szabad egy funkci≤hφvßson kφvⁿl eltßrolni. Ugyanis 
  77.  * egy save-load megvßltoztatja!!!
  78.  */
  79. native DrID:GetModifier( ModifierName[] )
  80. native AddModifier( ModifierName[], ClassName[], PropertyName[], Priority, ModifierType:Type, IsSingleObject, ScopeID[], IsActive, Float:Value4Easy, Float:Value4Normal, Float:Value4Hard  )
  81.  
  82. /* Visszaadja egy cObject class azonositojat
  83. */
  84. native DrID:GetClassID( Classname[] );
  85.  
  86. /* Visszaadja, hogy egy cObject ilyen tipusu-e
  87. */
  88. native bool:IsInstanceOf( DrID:Object, DrID:ClassId) = Instanceof;
  89.  
  90. native DrID:GetComponentBase( DrID:component);
  91.  
  92. /* A megadott selector listßban iterßl vΘgig. 
  93.  * Minden egyes elemnΘl felhφvja a megadott public fⁿggvΘnyt
  94.  * az entitßs id-jΘvel Θs egy szßmlßl≤val paramΘterkΘnt.
  95.  * public callbackfuggveny( DrID:ID, count )
  96.  * Ennek a fⁿggvΘnynek true-t kell visszaadnia, ha tovabb kell iteralni, false-t, ha allj.
  97.  * Lass·, ha lehet ne hasznßld.
  98.  */
  99. native IterateEntities(functionname[], const selectorid[]="", const className[]="" ); 
  100.  
  101. /* Property kezel⌡ fⁿggvΘnyek
  102.  * Az ID a GetEntity-vel vagy GetComponent-tel lekΘrdezett ID.
  103.  */
  104. native GetPropertyInt( const DrID:ID, const PropertyName[] )
  105. native SetPropertyInt( const DrID:ID, const PropertyName[], const Value )
  106.  
  107. native DrID:GetPropertyObject( const DrID:ID, const PropertyName[] )
  108. native SetPropertyObject( const DrID:ID, const PropertyName[], const DrID:Value )
  109.  
  110. native Float:GetPropertyFloat( const DrID:ID, const PropertyName[] )
  111. native SetPropertyFloat( const DrID:ID, const PropertyName[], const Float:Value )
  112.  
  113. native bool:GetPropertyBool( const DrID:ID, const PropertyName[] )
  114. native SetPropertyBool( const DrID:ID, const PropertyName[], const Value )
  115.  
  116. // the 3. param is the return value
  117. native GetPropertyVec2( const DrID:ID, const PropertyName[], Float:Value[vec2] )
  118. native SetPropertyVec2( const DrID:ID, const PropertyName[], const Float:Value[vec2] )
  119.  
  120. // the 3. param is the return value
  121. native GetPropertyVec3( const DrID:ID, const PropertyName[], Float:Value[vec3] )
  122. native SetPropertyVec3( const DrID:ID, const PropertyName[], const Float:Value[vec3] )
  123.  
  124. // the 3. param is the return value
  125. native GetPropertyQuat( const DrID:ID, const PropertyName[], Float:Value[quat] )
  126. native SetPropertyQuat( const DrID:ID, const PropertyName[], const Float:Value[quat] )
  127.  
  128. // the 3. param is the return value
  129. native GetPropertyRGBA( const DrID:ID, const PropertyName[], Float:Value[rgba] )
  130. native SetPropertyRGBA( const DrID:ID, const PropertyName[], const Float:Value[rgba] )
  131.  
  132. // the 3. param is the return value
  133. native GetPropertyString( const DrID:ID, const PropertyName[], const MaxLength, Value[] )
  134. native SetPropertyString( const DrID:ID, const PropertyName[], const Value[] )
  135.  
  136.  
  137. native DrID:GetArrayElement( const DrID:ID, const PropertyName[], Index )
  138. native GetPropArrayLength( const DrID:ID, const PropertyName[] )
  139.  
  140.  
  141.  
  142. // Event Handling
  143. // If, the TargetObject == 0, then the Function called by all entities
  144. // If, the Classname == "cScript" then MessageID is UserEvent!!!!!!
  145. // Az UserEvent esetΘben a Sender a kⁿld⌡ script "self" objectje, azaz a scripthez rendelt
  146. // Entitas (Pl. Enterprise) lesz! Ezzel lehet Sz√rΘseket is vΘgezni
  147. native AddEntityEvent( FunctionName[], DrID:TargetObject, ClassName[], MessageID, Float:Delay = 0.0 )
  148.  
  149. native AddSelectorEvent( FunctionName[], Selector[], ClassName[], MessageID, Float:Delay = 0.0 )
  150.  
  151. // A megadott id⌡ m·lva elindφtja a Funkci≤t. 
  152. // Az id⌡ mßsodpercben Θrtend⌡. TermΘszetesen lehet t÷rtszßm is, pl. 0.5 !
  153. native AddTimerEvent( FunctionName[], Float:Timing, const TimeManager[] = "GameLogic", bool:CorrectTime=false)
  154.  
  155. native AddUserEvent( FunctionName[], MessageID, Float:Delay = 0.0 )
  156.  
  157. // Az UserEvent esetΘben a Sender a kⁿld⌡ script "self" objectje, azaz a scripthez rendelt
  158. // Entitas (Pl. Enterprise) lesz! Ezzel lehet Sz√rΘseket is vΘgezni
  159. native CallUserEvent( MessageID, Param=0 )
  160. native CallUserEventEntity( MessageID, DrID:Param=DrID:0 ) = CallUserEvent
  161. native CallUserEventFloat( MessageID, Float:Param=0.0 )
  162.  
  163. native RemoveEvent( FunctionName[] )
  164. native RemoveEntityEvent( FunctionName[], DrID:Entity)
  165.  
  166. // A Megadott funkci≤ az alßbbi szintaxus· legyen:
  167. // ParamΘterkΘnt megkapja a kⁿld⌡ entitßs ID-jΘt (pointerΘt) valamint
  168. // Ha az Event-nek volt parametere, akkor azt is
  169. // public EventCallback( DrID:Sender, Parameter=-1 )
  170.  
  171.  
  172. // KΘp pont tßvolsßgßt adja vissza Float-kΘnt!!!
  173. native Float:Distance( Float:Pos1[vec3], Float:Pos2[vec3] )
  174.  
  175. // A jßtΘk nehΘzsΘgi szint beßllφtßsßt adja vissza
  176. // 0 - k÷nny√
  177. // 1 - normal
  178. // 2 - nehez
  179. native GetDifficult();
  180.  
  181. // Az aktiv Event MessageParameteret adja vissza, mint DrID
  182. // Ezt a funkci≤ MINDEN olyan funkci≤ ELOTT kell hasznßlni, amely 
  183. // esemΘnyt vßlthat ki. 
  184. native DrID:GetMsgParamObject();
  185. native GetMsgParamInt();
  186. native Float:GetMsgParamFloat();
  187. native GetMsgParamString( OutputStr[], MaxLength=10 );
  188.  
  189. // Az InputStrben megadott szoveget fogja Integerre alakitani
  190. // Ha az InputStr nem jo akkor 0-t ad vissza.
  191. native Str2Int(InputStr[]);
  192.  
  193. // A Value-ban megadott szßmot az OutPutStr-ben megadott string-t÷mbbe t÷lti be
  194. // A FormatumStr adja meg a szßm formßtumßt. 
  195. // "%hosszi"
  196. // % - kell
  197. // hossz - a szam karakteres max hossza
  198. //
  199. // PΘlda: %10i = 10 hosszu (nagatφvnal 9) el⌡jeles szam
  200. // Viszont ezt lehet mßsra is hasznßlni!!
  201. // A formßtumsting:
  202. // %10x - 10 hosszu Hexa szam
  203. // %10u - 10 hosszu elojel nΘlkⁿli szam (Nem aboszut ertek!!)
  204. // 
  205. // Ez a normal c formatum
  206. //
  207. // A visszadott szßm a string hossza. Ha valami gubanc tortΘnt
  208. // Akkor ez 0.
  209. native Int2Str( Value, OutPutStr[], MaxLength=10, const FormatumStr[]="" );
  210.  
  211. // A Value-ban megadott szßmot az OutPutStr-ben megadott string-t÷mbbe t÷lti be
  212. // A FormatumStr adja meg a szßm formßtumßt. 
  213. // "%hossz.tizedesekf"
  214. // % - kell
  215. // hossz - a szam karakteres max hossza
  216. // . - tizedes jel, kell, beleszßmφt a max hosszba.
  217. // tizedesek - a tizedesjegyek szßma. 
  218. //
  219. // PΘlda: %10.3f = 6 egΘsz Θs 3 tizedes lesz a formßtum. 
  220. // ha a szam negatφv, akkor 5 egesz Θs 3 tizedes lesz!!!
  221. //
  222. // Ez a normal c formatum
  223. //
  224. // A visszadott szßm a string hossza. Ha valami gubanc tortΘnt
  225. // Akkor ez 0.
  226. native Float2Str( Float:Value, OutPutStr[], MaxLength=10, const FormatumStr[]="" );
  227.  
  228. // ╓sszefⁿz 2 stringet
  229. // Biztosφtani kell az eredmΘny tßrolßsßhoz egy puffert!!!
  230. native ConcatString( OutPutStr[], MaxLength=10, const InputStr1[]="", const InputStr2[]="" );
  231.  
  232. // Compare String return value: 0 - equal, <0 - InputStr1 < InputStr2, >0 - InputStr1 > InputStr2
  233. native CompareString( InputStr1[], InputStr2[]);
  234.  
  235. native StrFind(Str[], SubStr[]);            //    returns the position index of the first character of SubStr in Str, or -1, if it can't be found
  236. native StrReplace(Str[], Old[], New[]);        //    returns the number of replacements made
  237. native StrMid(Result[], Str[], Start, Length);
  238.  
  239. native ActivateEntity(DrID:Entity);
  240. native DeActivateEntity(DrID:Entity);
  241. native bool:IsEntityActive(DrID:Entity)=IsEntityActivate;
  242. native Float:GetNumberSetting(Path[], ID[]);
  243.  
  244. // Az alabbi ID-k elromlanak save-load utan, ezert nem szabad elmenteni. (Gyakorlatilag
  245. // a kovetkezo code eventig marad meg az erteke.)
  246. native DrID:GetListID( Name[]);
  247. native GetListName( DrID:ID, OutputStr[], MaxLength=25 );
  248. native GetListLen( ListName[] );
  249.  
  250. native AddToSelector(SelectorName[], DrID:ID);
  251. native RemoveFromSelector(SelectorName[], DrID:ID);
  252.  
  253. native StartProfiler();
  254. native EndProfiler();
  255. native GetEntityID( DrID:ID );
  256. native DrID:GetEntityByID( EntityID );
  257.  
  258.