Script Error in 'pkg/mobiles/newCharacter/oncreate.ecl' PC=280:
Call to function GetConfigStringArray:
Parameter 0: Expected datatype ApplicObj, got datatype Error
Script Error in 'pkg/mobiles/newCharacter/oncreate.ecl' PC=289:
Call to function GetConfigStringArray:
Parameter 0: Expected datatype ApplicObj, got datatype Error
Script Error in 'pkg/mobiles/newCharacter/oncreate.ecl' PC=136:
Call to function GetConfigStringArray:
Parameter 0: Expected datatype ApplicObj, got datatype Error
Script Error in 'pkg/mobiles/newCharacter/oncreate.ecl' PC=172:
Call to function GetConfigStringArray:
Parameter 0: Expected datatype ApplicObj, got datatype Error
_______________________________________________________________________________
why the error occurred, what's wrong?
Code: Select all
d:/distro/pkg/utils/datafile/include/datafile.inc, Line 36
var DF_DEBUG_MODE := 0;
0: decl global #0
1: 0L
2: :=
3: #
d:\distro\pkg\mobiles\newcharacter\oncreate.src, Line 15
program OnCreate(params)
include ":datafile:datafile";
4: get arg 'params'
var who := params[1];
5: decl local #1
6: local #0
7: 1L
8: [] 1
9: :=
10: #
var selected_skills := params[2];
11: decl local #2
12: local #0
13: 2L
14: [] 1
15: :=
16: #
params := 0; // No longer needed.
17: 0L
18: local0 :=
foreach skill in ( selected_skills )
19: local #2
20: initforeach @28
skill := AP_SkillIdToAttributeName(skill);
21: local #3
22: makelocal
23: jmp userfunc @75
24: local3 :=
SleepMS(2);
25: 2L
26: Func(3,1): Sleepms
27: #
28: stepforeach @21
29: leave block(3)
NC_SetStartupSkills(who, selected_skills);
30: local #1
31: local #2
32: makelocal
33: jmp userfunc @207
34: #
var uniques := array{};
35: decl local #3
36: array
37: :=
38: #
GenerateItemsForSkill(who, "All", uniques);
39: local #1
40: "All"
41: local #3
42: makelocal
43: jmp userfunc @112
44: #
foreach skill in ( selected_skills )
45: local #2
46: initforeach @56
GenerateItemsForSkill(who, skill, uniques);
47: local #1
48: local #4
49: local #3
50: makelocal
51: jmp userfunc @112
52: #
SleepMS(2);
53: 2L
54: Func(3,1): Sleepms
55: #
56: stepforeach @47
57: leave block(3)
SysLog("Account ("+who.acctname+") creating character ("+who.name+")");
58: "Account ("
59: local #1
60: get member id 'acctname' (44)
61: +
62: ") creating character ("
63: +
64: local #1
65: get member id 'name' (3)
66: +
67: ")"
68: +
69: Func(3,0): SysLog
70: #
return 1;
71: 1L
72: progend
73: leave block(4)
74: progend
d:/distro/pkg/systems/attributes/include/attributes_ex.inc, Line 12
function AP_SkillIdToAttributeName( skill_number )
75: pop param 'skill_number'
var skills_cfg := ReadConfigFile( ":attributes:uoskills" );
76: decl local #1
77: ":attributes:uoskills"
78: Func(5,0): ReadConfigFile
79: :=
80: #
if( skills_cfg.errortext )
81: local #1
82: get member 'errortext'
83: if false goto 90
SysLog( "Error::AP_IDToAttributeName() - Unable to open :attributes:uoskills.cf
84: "Error::AP_IDToAttributeName() - Unable to open :attributes:uoskills.cfg ->"
85: local #1
86: get member 'errortext'
87: +
88: Func(3,0): SysLog
89: #
var cfg_elem := skills_cfg[skill_number];
90: decl local #2
91: local #1
92: local #0
93: [] 1
94: :=
95: #
if( cfg_elem.errortext )
96: local #2
97: get member 'errortext'
98: if false goto 109
SysLog( "Error::AP_IDToAttributeName() - unable to find cfg elem ["+skill_numbe
99: "Error::AP_IDToAttributeName() - unable to find cfg elem ["
100: local #0
101: +
102: "] ->"
103: +
104: local #2
105: get member 'errortext'
106: +
107: Func(3,0): SysLog
108: #
return cfg_elem.Attribute;
109: local #2
110: get member id 'attribute' (92)
111: return
d:\distro\pkg\mobiles\newcharacter\oncreate.src, Line 42
function GenerateItemsForSkill(who, attribute, byref uniques)
112: pop param byref 'uniques'
113: pop param 'attribute'
114: pop param 'who'
var cfg_file := ReadConfigFile(":newcharacter:startEquip");
115: decl local #3
116: ":newcharacter:startEquip"
117: Func(5,0): ReadConfigFile
118: :=
119: #
var cfg_elem := cfg_file[attribute];
120: decl local #4
121: local #3
122: local #1
123: [] 1
124: :=
125: #
CreateItemsInElem(cfg_elem, who.backpack, "All");
126: local #4
127: local #2
128: get member id 'backpack' (41)
129: "All"
130: makelocal
131: jmp userfunc @273
132: #
foreach entry in ( GetConfigStringArray(cfg_elem, "Unique") )
133: local #4
134: "Unique"
135: Func(5,4): GetConfigStringArray
136: initforeach @167
entry := ParseItemString(entry);
137: local #5
138: makelocal
139: jmp userfunc @236
140: local5 :=
var objtype := GetObjTypeByName(entry.name);
141: decl local #0
142: local #5
143: get member id 'name' (3)
144: Func(2,5): GetObjtypeByName
145: :=
146: #
if ( !(objtype in uniques) )
147: local #8
148: local #0
149: in
150: if true goto 163
uniques.Append(objtype);
151: local #0
152: local #8
153: Call Method id append (#52, 1 params)
154: #
CreateItemInContainer(who.backpack, entry.name, entry.amount);
155: local #2
156: get member id 'backpack' (41)
157: local #5
158: get member id 'name' (3)
159: local #5
160: get member id 'amount' (13)
161: Func(2,6): CreateItemInContainer
162: #
SleepMS(2);
163: 2L
164: Func(3,1): Sleepms
165: #
166: leave block(1)
167: stepforeach @137
168: leave block(3)
foreach entry in ( GetConfigStringArray(cfg_elem, "Random") )
169: local #4
170: "Random"
171: Func(5,4): GetConfigStringArray
172: initforeach @203
entry := SplitWords(entry);
173: local #5
174: " "
175: Func(0,4): SplitWords
176: local5 :=
var tmp_elem := cfg_file[entry[1]];
177: decl local #0
178: local #3
179: local #5
180: 1L
181: [] 1
182: [] 1
183: :=
184: #
var amount := CInt(entry[2]);
185: decl local #1
186: local #5
187: 2L
188: [] 1
189: Func(0,1): CInt
190: :=
191: #
CreateItemsInElem(tmp_elem, who.backpack, amount);
192: local #8
193: local #2
194: get member id 'backpack' (41)
195: local #9
196: makelocal
197: jmp userfunc @273
198: #
SleepMS(2);
199: 2L
200: Func(3,1): Sleepms
201: #
202: leave block(2)
203: stepforeach @173
204: leave block(3)
return 1;
205: 1L
206: return
d:/distro/pkg/mobiles/newCharacter/include/newCharacter.inc, Line 65
function NC_SetStartupSkills(mobile, skill_names)
207: pop param 'skill_names'
208: pop param 'mobile'
if ( !mobile.acctname )
209: local #1
210: get member id 'acctname' (44)
211: if true goto 216
return error{"errortext":="Object passed was not a player-character"};
212: error
213: "Object passed was not a player-character"
214: addmember-assign(errortext)
215: return
var data_file := NC_GetDataFile();
216: decl local #2
217: makelocal
218: jmp userfunc @407
219: :=
220: #
var data_elem := DFFindElement(data_file, Hex(mobile.serial), DF_CREATE);
221: decl local #3
222: local #2
223: local #1
224: get member id 'serial' (6)
225: Func(0,7): Hex
226: 1L
227: makelocal
228: jmp userfunc @345
229: :=
230: #
return data_elem.SetProp("StartSkills", skill_names);
231: local #3
232: "StartSkills"
233: local #0
234: Call Method id setprop (#36, 2 params)
235: return
d:\distro\pkg\mobiles\newcharacter\oncreate.src, Line 103
function ParseItemString(line)
236: pop param 'line'
line := SplitWords(line);
237: local #0
238: " "
239: Func(0,4): SplitWords
240: local0 :=
var name := CStr(line[1]);
241: decl local #1
242: local #0
243: 1L
244: [] 1
245: Func(0,6): CStr
246: :=
247: #
var amount := RandomDiceRoll(CStr(line[2]));
248: decl local #2
249: local #0
250: 2L
251: [] 1
252: Func(0,6): CStr
253: Func(8,1): RandomDiceRoll
254: :=
255: #
var result := struct;
256: decl local #3
257: struct
258: :=
259: #
result.+name := name;
260: local #3
261: "name"
262: .+
263: local #1
264: := #
result.+amount := CInt(amount);
265: local #3
266: "amount"
267: .+
268: local #2
269: Func(0,1): CInt
270: := #
return result;
271: local #3
272: return
d:\distro\pkg\mobiles\newcharacter\oncreate.src, Line 70
function CreateItemsInElem(cfg_elem, container, amount)
273: pop param 'amount'
274: pop param 'container'
275: pop param 'cfg_elem'
var items := GetConfigStringArray(cfg_elem, "Item");
276: decl local #3
277: local #2
278: "Item"
279: Func(5,4): GetConfigStringArray
280: :=
281: #
if ( amount == "All" )
282: local #0
283: "All"
284: ==
285: if false goto 307
foreach entry in ( GetConfigStringArray(cfg_elem, "Item") )
286: local #2
287: "Item"
288: Func(5,4): GetConfigStringArray
289: initforeach @304
entry := ParseItemString(entry);
290: local #4
291: makelocal
292: jmp userfunc @236
293: local4 :=
CreateItemInContainer(container, entry.name, entry.amount);
294: local #1
295: local #4
296: get member id 'name' (3)
297: local #4
298: get member id 'amount' (13)
299: Func(2,6): CreateItemInContainer
300: #
SleepMS(2);
301: 2L
302: Func(3,1): Sleepms
303: #
304: stepforeach @290
305: leave block(3)
306: goto343
for ( amount; amount>0; amount-=1 )
307: local #0
308: #
309: local #0
310: 0L
311: >
312: if false goto 343
var entry := items[RandomInt(items.Size())+1];
313: decl local #0
314: local #3
315: local #3
316: Call Method id size (#48, 0 params)
317: Func(8,0): RandomInt
318: 1L
319: +
320: [] 1
321: :=
322: #
entry := ParseItemString(entry);
323: local #4
324: makelocal
325: jmp userfunc @236
326: local4 :=
CreateItemInContainer(container, entry.name, entry.amount);
327: local #1
328: local #4
329: get member id 'name' (3)
330: local #4
331: get member id 'amount' (13)
332: Func(2,6): CreateItemInContainer
333: #
SleepMS(2);
334: 2L
335: Func(3,1): Sleepms
336: #
337: leave block(1)
338: local #0
339: 1L
340: -=
341: #
342: goto309
return 1;
343: 1L
344: return
d:/distro/pkg/utils/datafile/include/datafile.inc, Line 139
function DFFindElement(byref file_ref, elem_name, create:=DF_NO_CREATE)
345: pop param 'create'
346: pop param 'elem_name'
347: pop param byref 'file_ref'
var temp := file_ref.FindElement(CStr(elem_name));
348: decl local #3
349: local #2
350: local #1
351: Func(0,6): CStr
352: Call Method id findelement (#72, 1 params)
353: :=
354: #
if ( !temp && create )
355: local #3
356: !
357: local #0
358: &&
359: if false goto 377
DF_OutPut("Debug::DFFindElement() - Creating elem: "+CStr(elem_name));
360: "Debug::DFFindElement() - Creating elem: "
361: local #1
362: Func(0,6): CStr
363: +
364: makelocal
365: jmp userfunc @413
366: #
file_ref.CreateElement(CStr(elem_name));
367: local #2
368: local #1
369: Func(0,6): CStr
370: Call Method id createelement (#71, 1 params)
371: #
temp := file_ref.FindElement(CStr(elem_name));
372: local #2
373: local #1
374: Func(0,6): CStr
375: Call Method id findelement (#72, 1 params)
376: local3 :=
if ( temp )
377: local #3
378: if false goto 382
return temp;
379: local #3
380: return
381: goto405
elseif (create)
382: local #0
383: if false goto 405
var errmsg := error{"errortext":="Error::DFFindElement() - Could not open data
384: decl local #0
385: error
386: "Error::DFFindElement() - Could not open data elem ["
387: local #1
388: +
389: "] - "
390: +
391: local #3
392: get member 'errortext'
393: +
394: addmember-assign(errortext)
395: :=
396: #
DF_OutPut(errmsg.errortext);
397: local #4
398: get member 'errortext'
399: makelocal
400: jmp userfunc @413
401: #
return errmsg;
402: local #4
403: return
404: leave block(1)
405: 0L
406: return
d:/distro/pkg/mobiles/newCharacter/include/newCharacter.inc, Line 24
function NC_GetDataFile()
return DFOpenDataFile(":newcharacter:createinfo", DF_CREATE);
407: ":newcharacter:createinfo"
408: 1L
409: 0L
410: makelocal
411: jmp userfunc @436
412: return
d:/distro/pkg/utils/datafile/include/datafile.inc, Line 234
function DF_OutPut(text)
413: pop param 'text'
if ( DF_DEBUG_MODE )
414: global #0
415: if false goto 434
var script_name := GetProcess(GetPid()).name;
416: decl local #0
417: Func(3,3): GetPid
418: Func(3,2): GetProcess
419: get member id 'name' (3)
420: :=
421: #
LogToFile("::log/dataFile.log", "["+script_name+"]: "+text, LOG_DATETIME);
422: "::log/dataFile.log"
423: "["
424: local #1
425: +
426: "]: "
427: +
428: local #0
429: +
430: 1L
431: Func(4,0): LogToFile
432: #
433: leave block(1)
return 1;
434: 1L
435: return
d:/distro/pkg/utils/datafile/include/datafile.inc, Line 58
function DFOpenDataFile(file_name, create:=DF_NO_CREATE, flags:=DF_KEYTYPE_STRI
436: pop param 'flags'
437: pop param 'create'
438: pop param 'file_name'
var data_file := OpenDataFile(file_name);
439: decl local #3
440: local #2
441: Func(10,0): OpenDataFile
442: :=
443: #
if ( (!data_file) && (create) )
444: local #3
445: !
446: local #1
447: &&
448: if false goto 462
DF_OutPut("Debug::DFOpenDataFile() - Creating data file: "+file_name);
449: "Debug::DFOpenDataFile() - Creating data file: "
450: local #2
451: +
452: makelocal
453: jmp userfunc @413
454: #
CreateDataFile(file_name, flags);
455: local #2
456: local #0
457: Func(10,1): CreateDataFile
458: #
data_file := OpenDataFile(file_name);
459: local #2
460: Func(10,0): OpenDataFile
461: local3 :=
if ( data_file )
462: local #3
463: if false goto 467
return data_file;
464: local #3
465: return
466: goto490
elseif ( create )
467: local #1
468: if false goto 490
var errmsg := error{"errortext":="Error::DFOpenDataFile() - Could not open "+fi
469: decl local #0
470: error
471: "Error::DFOpenDataFile() - Could not open "
472: local #2
473: +
474: " : "
475: +
476: local #3
477: get member 'errortext'
478: +
479: addmember-assign(errortext)
480: :=
481: #
DF_OutPut(errmsg.errortext);
482: local #4
483: get member 'errortext'
484: makelocal
485: jmp userfunc @413
486: #
return errmsg;
487: local #4
488: return
489: leave block(1)
490: 0L
491: return