View unanswered posts | View active topics
|
Page 1 of 1
|
[ 12 posts ] |
|
| Author |
Message |
|
Repsak
|
Post subject: Shard crash windows (POL096.6-2007-04-15 Vestal Virgin) Posted: Fri Jun 29, 2007 2:02 pm |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
We just experienced yet another crash, and since my previous attempt to find the cause has failed, I will post here, hoping that someone can decipher the dump and give me some to go on.
During the last 3-4 month, we have had about 5-6 crashes, some of them resulted in exceptions in several apparently random scripts, some simply disallowed player to connect, but the console showing 100+ connection, I though it might had to do with an exception in a logoff script, as I have experience (but fixed) before with POL96.
Not all crashes would create a dump file, but this one did, so here is all the info I can provide regarding the last crash.
Console:
Code: Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_default.ecl is full, discard ing event. NPC Serial: 0x104fcd4 (5380 1150 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_healer.ecl is full, discardi ng event. NPC Serial: 0x104fcd0 (5376 1146 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_default.ecl is full, discard ing event. NPC Serial: 0x104fcc8 (5381 1149 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_healer.ecl is full, discardi ng event. NPC Serial: 0x104fcc2 (5379 1150 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_healer.ecl is full, discardi ng event. NPC Serial: 0x104fcd0 (5376 1146 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_healer.ecl is full, discardi ng event. NPC Serial: 0x104fcc2 (5379 1150 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_default.ecl is full, discard ing event. NPC Serial: 0x104fcd4 (5380 1150 0) Event: { Array[2] } Event queue for pkg/npcs/hostiles/ai_killpcs_normal_default.ecl is full, discard ing event. NPC Serial: 0x104fcd4 (5380 1150 0) Event: { Array[2] } Client disconnected from 72.26.11.9 (37 connections) syslog [scripts/misc/logofftest.ecl]: logofftest_start(Zankue Melone) syslog [scripts/misc/logofftest.ecl]: logoff_finish6(Zankue Melone) HTTP client connected from 81.169.169.106 sysload=73 (125) cputime=9328125 (1024) scin: 14865510 scsl: 2698184333 MOB: 14435 TLI: 203861 Client connected from 65.7.188.213 (38 connections) Client disconnected from 65.7.188.213 (37 connections) Client connected from 65.7.188.213 (38 connections) syslog [scripts/misc/logon.ecl]: No ClientInfo 'Vincent Akem' [Vegetasan] Unhandled Exception! Minidump started... ########################################################## Unhandled Exception! Writing Minidump file. This file with explanation and last lines from log files should be given to the development team. Saved dump file to 'POL096.6-2007-04-15 Vestal Virgin-20070628164357-0.dmp' Last Script: pkg/packethooks/statusbarinfo/statusbarinfo.ecl PC: 19 ##########################################################
C:\POLSER~1> Pol.log Code: [06/29 21:22:19] sysload=85 (301) cputime=7093750 [06/29 21:22:55] Client#3609 connected from 88.113.12.50 (38 connections) on interface 10.0.0.200 [06/29 21:22:56] Account sasu1991 logged in from 88.113.12.50 [06/29 21:23:00] Client#3609 (88.113.12.50): disconnected (account sasu1991) [06/29 21:23:01] Client#3610 connected from 88.113.12.50 (38 connections) on interface 10.0.0.200 Account sasu1991 logged in from 88.113.12.50 [06/29 21:23:03] Account sasu1991 selecting character Demian [scripts/misc/logon.ecl]: No ClientInfo 'Demian' [sasu1991] [06/29 21:23:13] Client#3611 connected from 81.156.247.91 (39 connections) on interface 10.0.0.200 Incorrect password for account Glenn001 from 81.156.247.91 Client#3611 (81.156.247.91): disconnected (account unknown) [06/29 21:23:19] sysload=76 (98) cputime=9562500 [06/29 21:23:21] Client#3612 connected from 81.156.247.91 (39 connections) on interface 10.0.0.200 Account Glenn001 logged in from 81.156.247.91 [06/29 21:23:22] Client#3612 (81.156.247.91): disconnected (account Glenn001) Client#3613 connected from 81.156.247.91 (39 connections) on interface 10.0.0.200 Account Glenn001 logged in from 81.156.247.91 [06/29 21:23:24] Account Glenn001 selecting character Aaron Sirus [06/29 21:24:19] sysload=61 (75) cputime=9781250 [06/29 21:24:47] Client#3608 (84.49.134.238): disconnected (account Diabetesboy) [scripts/misc/logofftest.ecl]: logofftest_start(Zepa) [scripts/misc/logofftest.ecl]: logoff_finish5(Zepa) [06/29 21:25:05] [scripts/misc/logoff.ecl]: logoff_start(Zepa) [scripts/misc/logoff.ecl]: logoff_finish(Zepa) [pkg/npcs/townfolk/merchants/logoff.ecl]: logoff_start(Zepa) [pkg/npcs/townfolk/merchants/logoff.ecl]: logoff_finish(Zepa) [pkg/packethooks/partysystem/logoff.ecl]: logoff_start(Zepa) [pkg/packethooks/partysystem/logoff.ecl]: logoff_finish(Zepa) [06/29 21:25:13] Client#3525 (72.26.11.9): disconnected (account goblinrider) [scripts/misc/logofftest.ecl]: logofftest_start(Zankue Melone) [scripts/misc/logofftest.ecl]: logoff_finish6(Zankue Melone) [06/29 21:25:19] sysload=73 (125) cputime=9328125 [06/29 21:25:21] Client#3614 connected from 65.7.188.213 (38 connections) on interface 10.0.0.200 [06/29 21:25:22] Account Vegetasan logged in from 65.7.188.213 [06/29 21:25:23] Client#3614 (65.7.188.213): disconnected (account Vegetasan) Client#3615 connected from 65.7.188.213 (38 connections) on interface 10.0.0.200 Account Vegetasan logged in from 65.7.188.213 [06/29 21:25:25] Account Vegetasan selecting character Vincent Akem [scripts/misc/logon.ecl]: No ClientInfo 'Vincent Akem' [Vegetasan] [06/29 21:25:29] Unhandled Exception! Writing Minidump file. This file with explanation and last lines from log files should be given to the development team. Saved dump file to 'POL096.6-2007-04-15 Vestal Virgin-20070628164357-0.dmp' Last Script: pkg/packethooks/statusbarinfo/statusbarinfo.ecl PC: 19 statusbarinfo.lst Code: Exported Functions: PC Args Name 17 2 HandleStatusBarInfo c:/polserver/scripts/include/magic.inc, Line 36 var caster_magery; 0: decl global #0 1: # var caster_evalint; 2: decl global #1 3: # var spell_circle; 4: decl global #2 5: # var spells_cfg_file := ReadConfigFile(":spells:spells"); 6: decl global #3 7: ":spells:spells" 8: Func(7,0): ReadConfigFile 9: := 10: # c:\polserver\pkg\packethooks\statusbarinfo\statusbarinfo.src, Line 11 program StatusBarInfo() Print("PacketHooks - Status Bar Info" ); 11: "PacketHooks - Status Bar Info" 12: Func(1,0): Print 13: # return 1; 14: 1L 15: progend 16: progend c:\polserver\pkg\packethooks\statusbarinfo\statusbarinfo.src, Line 15 exported function HandleStatusBarInfo( who, byref packet ) 17: makelocal 18: jmp userfunc @20 19: progend 20: pop param byref 'packet' 21: pop param 'who' who := who; 22: local #1 23: local1 := packet.SetInt8(42, 4); // flag (0x00 ? no more data following (end of packet he 24: local #0 25: 42L 26: 4L 27: Call Method id setint8 (#62, 2 params) 28: # var statcap := GetStatCap(who); 29: decl local #2 30: local #1 31: makelocal 32: jmp userfunc @581 33: := 34: # if(!statcap and who.cmdlevel > 2) 35: local #2 36: ! 37: local #1 38: get member id 'cmdlevel' (45) 39: 2L 40: > 41: && 42: if false goto 45 statcap := 999; 43: 999L 44: local2 := packet.SetInt16(66, statcap); // statcap 45: local #0 46: 66L 47: local #2 48: Call Method id setint16 (#63, 2 params) 49: # packet.SetInt8(68, CountHandledPets(who)); // pets current 50: local #0 51: 68L 52: local #1 53: 30L 54: makelocal 55: jmp userfunc @228 56: Call Method id setint8 (#62, 2 params) 57: # packet.SetInt8(69, CanHandleMaxPets(who)); // pets max 58: local #0 59: 69L 60: local #1 61: makelocal 62: jmp userfunc @125 63: Call Method id setint8 (#62, 2 params) 64: # packet.SetInt16(70, GetEquipmentResist(who, DAMAGETYPE_FIRE)); // fireres 65: local #0 66: 70L 67: local #1 68: 901L 69: makelocal 70: jmp userfunc @275 71: Call Method id setint16 (#63, 2 params) 72: # packet.SetInt16(72, GetEquipmentResist(who, DAMAGETYPE_COLD)); // coldres 73: local #0 74: 72L 75: local #1 76: 902L 77: makelocal 78: jmp userfunc @275 79: Call Method id setint16 (#63, 2 params) 80: # packet.SetInt16(74, GetEquipmentResist(who, DAMAGETYPE_POISON)); // poisonr 81: local #0 82: 74L 83: local #1 84: 907L 85: makelocal 86: jmp userfunc @275 87: Call Method id setint16 (#63, 2 params) 88: # packet.SetInt16(76, GetEquipmentResist(who, DAMAGETYPE_ELECTRICAL)); // energyr 89: local #0 90: 76L 91: local #1 92: 903L 93: makelocal 94: jmp userfunc @275 95: Call Method id setint16 (#63, 2 params) 96: # packet.SetInt16(78, 0); // luck 97: local #0 98: 78L 99: 0L 100: Call Method id setint16 (#63, 2 params) 101: # packet.SetInt16(80, 0); // damage minimum 102: local #0 103: 80L 104: 0L 105: Call Method id setint16 (#63, 2 params) 106: # packet.SetInt16(82, 0); // damage maximum 107: local #0 108: 82L 109: 0L 110: Call Method id setint16 (#63, 2 params) 111: # packet.SetInt32(86, 0); // titching points [N/A] 112: local #0 113: 86L 114: 0L 115: Call Method id setint32 (#64, 2 params) 116: # packet.SetInt16(1, packet.GetSize()); 117: local #0 118: 1L 119: local #0 120: Call Method id getsize (#69, 0 params) 121: Call Method id setint16 (#63, 2 params) 122: # return 0; 123: 0L 124: return c:/polserver/scripts/include/tamed.inc, Line 1 function CanHandleMaxPets(who) 125: pop param 'who' var skill := GetEffectiveSkill(who, SKILLID_MEDITATION); 126: decl local #1 127: local #0 128: 46L 129: makelocal 130: jmp userfunc @267 131: := 132: # var skill2 := GetEffectiveSkill(who, SKILLID_ANIMALLORE); 133: decl local #2 134: local #0 135: 2L 136: makelocal 137: jmp userfunc @267 138: := 139: # if(skill2 > skill) 140: local #2 141: local #1 142: > 143: if false goto 146 skill := skill2; 144: local #2 145: local1 := if(skill > 91) // To insure that tamers are the class who can control mos 146: local #1 147: 91L 148: > 149: if false goto 152 skill := 91; 150: 91L 151: local1 := var skill3 := GetEffectiveSkill(who, SKILLID_TAMING); 152: decl local #3 153: local #0 154: 35L 155: makelocal 156: jmp userfunc @267 157: := 158: # if(skill3 > skill) 159: local #3 160: local #1 161: > 162: if false goto 165 skill := skill3; 163: local #3 164: local1 := var canhandle := 0; 165: decl local #4 166: 0L 167: := 168: # if( skill > 95) 169: local #1 170: 95L 171: > 172: if false goto 185 skill := skill - 95; 173: local #1 174: 95L 175: - 176: local1 := canhandle := Cint(skill/2) + 17; //2 177: local #1 178: 2L 179: / 180: Func(0,0): CInt 181: 17L 182: + 183: local4 := 184: goto222 elseif( skill > 85) 185: local #1 186: 85L 187: > 188: if false goto 201 skill := skill - 85; 189: local #1 190: 85L 191: - 192: local1 := canhandle := Cint(skill/3) + 12; //3 193: local #1 194: 3L 195: / 196: Func(0,0): CInt 197: 12L 198: + 199: local4 := 200: goto222 elseif( skill > 50) 201: local #1 202: 50L 203: > 204: if false goto 217 skill := skill - 50; 205: local #1 206: 50L 207: - 208: local1 := canhandle := Cint(skill/5) + 5; //5 209: local #1 210: 5L 211: / 212: Func(0,0): CInt 213: 5L 214: + 215: local4 := 216: goto222 canhandle := Cint(skill/10); //10 217: local #1 218: 10L 219: / 220: Func(0,0): CInt 221: local4 := canhandle := canhandle + 2; 222: local #4 223: 2L 224: + 225: local4 := return canhandle; 226: local #4 227: return c:/polserver/scripts/include/tamed.inc, Line 36 function CountHandledPets(who, range := 30) 228: pop param 'range' 229: pop param 'who' var pets := 0; 230: decl local #2 231: 0L 232: := 233: # foreach mob in ListMobilesNearLocation(who.x, who.y, who.z, range, who.realm); 234: local #1 235: get member id 'x' (0) 236: local #1 237: get member id 'y' (1) 238: local #1 239: get member id 'z' (2) 240: local #0 241: local #1 242: get member id 'realm' (112) 243: Func(2,20): ListMobilesNearLocation 244: initforeach @263 if ( (mob.script["tamed"]) && (GetObjProperty(mob, "master") == who.serial) ) 245: local #3 246: get member id 'script' (60) 247: "tamed" 248: [] 1 249: local #3 250: "master" 251: Func(2,1): GetObjProperty 252: local #1 253: get member id 'serial' (6) 254: == 255: && 256: if false goto 263 pets := pets + GetPetCountOfNPC(mob); 257: local #2 258: local #3 259: makelocal 260: jmp userfunc @359 261: + 262: local2 := 263: stepforeach @245 264: leave block(3) return pets; 265: local #2 266: return c:/polserver/scripts/include/attributes.inc, Line 1024 function GetEffectiveSkill( who, skillid ) 267: pop param 'skillid' 268: pop param 'who' return GetAttribute(who, GetAttributeIdBySkillId(skillid)); 269: local #1 270: local #0 271: makelocal 272: jmp userfunc @704 273: Func(2,8): GetAttribute 274: return c:/polserver/scripts/include/magic.inc, Line 1739 function GetEquipmentResist(defender, damage_type) 275: pop param 'damage_type' 276: pop param 'defender' case (damage_type) 277: local #0 278: casejmp 901: @279 902: @282 903: @285 907: @288 default: @290 damage_type := "fireresist"; 279: "fireresist" 280: local0 := 281: goto290 damage_type := "coldresist"; 282: "coldresist" 283: local0 := 284: goto290 damage_type := "elecresist"; 285: "elecresist" 286: local0 := 287: goto290 damage_type := "poisonresist"; 288: "poisonresist" 289: local0 := var elemetal := 0; 290: decl local #2 291: 0L 292: := 293: # if( (damage_type == "fireresist") or (damage_type == "coldresist") or (damage_t 294: local #0 295: "fireresist" 296: == 297: local #0 298: "coldresist" 299: == 300: || 301: local #0 302: "elecresist" 303: == 304: || 305: local #0 306: "poisonresist" 307: == 308: || 309: if false goto 312 elemetal := 1; 310: 1L 311: local2 := var amount := 0; 312: decl local #3 313: 0L 314: := 315: # foreach item in ListEquippedItems(defender) 316: local #1 317: Func(2,19): ListEquippedItems 318: initforeach @348 if( GetObjProperty(item, Cstr(damage_type)) ) 319: local #4 320: local #0 321: Func(0,4): CStr 322: Func(2,1): GetObjProperty 323: if false goto 335 amount := Cint(amount + GetObjProperty(item, Cstr(damage_type))); 324: local #3 325: local #4 326: local #0 327: Func(0,4): CStr 328: Func(2,1): GetObjProperty 329: + 330: Func(0,0): CInt 331: local3 := sleepms(1); 332: 1L 333: Func(3,5): Sleepms 334: # if( elemetal and GetObjProperty(item, "allelement") ) 335: local #2 336: local #4 337: "allelement" 338: Func(2,1): GetObjProperty 339: && 340: if false goto 348 amount := Cint(amount + GetObjProperty(item, "allelement")); 341: local #3 342: local #4 343: "allelement" 344: Func(2,1): GetObjProperty 345: + 346: Func(0,0): CInt 347: local3 := 348: stepforeach @319 349: leave block(3) if( amount > 50 ) 350: local #3 351: 50L 352: > 353: if false goto 356 amount := 50; 354: 50L 355: local3 := return Cint(amount); 356: local #3 357: Func(0,0): CInt 358: return c:/polserver/scripts/include/tamed.inc, Line 54 function GetPetCountOfNPC(mob) 359: pop param 'mob' var mobelem := GetNpcTemplateElem(mob.npctemplate); 360: decl local #1 361: local #0 362: get member id 'npctemplate' (61) 363: makelocal 364: jmp userfunc @1003 365: := 366: # var mobrealstr := GetStrength(mob) - GetStrengthMod(mob); 367: decl local #2 368: local #0 369: makelocal 370: jmp userfunc @691 371: local #0 372: makelocal 373: jmp userfunc @696 374: - 375: := 376: # if (GetObjProperty(mob, "summoned")) 377: local #0 378: "summoned" 379: Func(2,1): GetObjProperty 380: if false goto 479 if (mobelem.script ["spell"] || mobelem.script["fire"] 381: local #1 382: get member id 'script' (60) 383: "spell" 384: [] 1 385: local #1 386: get member id 'script' (60) 387: "fire" 388: [] 1 389: || 390: local #1 391: get member id 'script' (60) 392: "poison" 393: [] 1 394: || 395: local #1 396: get member id 'script' (60) 397: "vampire" 398: [] 1 399: || 400: if false goto 439 if (mobrealstr > 650) 401: local #2 402: 650L 403: > 404: if false goto 408 return 7; 405: 7L 406: return 407: goto438 elseif (mobrealstr > 550) 408: local #2 409: 550L 410: > 411: if false goto 415 return 6; 412: 6L 413: return 414: goto438 elseif (mobrealstr > 450) 415: local #2 416: 450L 417: > 418: if false goto 422 return 5; 419: 5L 420: return 421: goto438 elseif (mobrealstr > 350) 422: local #2 423: 350L 424: > 425: if false goto 429 return 4; 426: 4L 427: return 428: goto438 elseif (mobrealstr > 200) 429: local #2 430: 200L 431: > 432: if false goto 436 return 3; 433: 3L 434: return 435: goto438 return 2; 436: 2L 437: return 438: goto476 if (mobrealstr > 700) 439: local #2 440: 700L 441: > 442: if false goto 446 return 7; 443: 7L 444: return 445: goto476 elseif (mobrealstr > 550) 446: local #2 447: 550L 448: > 449: if false goto 453 return 6; 450: 6L 451: return 452: goto476 elseif (mobrealstr > 450) 453: local #2 454: 450L 455: > 456: if false goto 460 return 5; 457: 5L 458: return 459: goto476 elseif (mobrealstr > 350) 460: local #2 461: 350L 462: > 463: if false goto 467 return 4; 464: 4L 465: return 466: goto476 elseif (mobrealstr >= 250) 467: local #2 468: 250L 469: >= 470: if false goto 474 return 3; 471: 3L 472: return 473: goto476 return 1; 474: 1L 475: return return 1; 476: 1L 477: return 478: goto579 elseif( GetObjProperty(mob, "totem") ) 479: local #0 480: "totem" 481: Func(2,1): GetObjProperty 482: if false goto 486 return 1; 483: 1L 484: return 485: goto579 if (mobelem.script ["spell"] || mobelem.script["fire"] || mobelem.script["vampi 486: local #1 487: get member id 'script' (60) 488: "spell" 489: [] 1 490: local #1 491: get member id 'script' (60) 492: "fire" 493: [] 1 494: || 495: local #1 496: get member id 'script' (60) 497: "vampire" 498: [] 1 499: || 500: if false goto 532 if (mobrealstr > 1100) 501: local #2 502: 1100L 503: > 504: if false goto 508 return 15; 505: 15L 506: return 507: goto531 elseif (mobrealstr > 900) 508: local #2 509: 900L 510: > 511: if false goto 515 return 12; 512: 12L 513: return 514: goto531 elseif (mobrealstr > 700) 515: local #2 516: 700L 517: > 518: if false goto 522 return 9; 519: 9L 520: return 521: goto531 elseif (mobrealstr > 400) 522: local #2 523: 400L 524: > 525: if false goto 529 return 7; 526: 7L 527: return 528: goto531 return 3; 529: 3L 530: return 531: goto577 elseif ( mobelem.script["poison"]) 532: local #1 533: get member id 'script' (60) 534: "poison" 535: [] 1 536: if false goto 561 if (mobrealstr > 700) 537: local #2 538: 700L 539: > 540: if false goto 544 return 6; 541: 6L 542: return 543: goto560 elseif (mobrealstr > 400) 544: local #2 545: 400L 546: > 547: if false goto 551 return 4; 548: 4L 549: return 550: goto560 elseif (mobrealstr > 200) 551: local #2 552: 200L 553: > 554: if false goto 558 return 3; 555: 3L 556: return 557: goto560 return 2; 558: 2L 559: return 560: goto577 if (mobrealstr > 1000) 561: local #2 562: 1000L 563: > 564: if false goto 568 return 5; 565: 5L 566: return 567: goto577 elseif (mobrealstr > 500) 568: local #2 569: 500L 570: > 571: if false goto 575 return 3; 572: 3L 573: return 574: goto577 return 1; 575: 1L 576: return return 1; 577: 1L 578: return return 1; 579: 1L 580: return c:/polserver/pkg/world/classsystem/skilladv.inc, Line 221 function GetStatCap(who) 581: pop param 'who' var class := GetObjProperty(who,"class"); 582: decl local #1 583: local #0 584: "class" 585: Func(2,1): GetObjProperty 586: := 587: # if(!class) 588: local #1 589: if true goto 592 return 0; 590: 0L 591: return var ccfg := ReadConfigFile(":classsystem:classes"); 592: decl local #2 593: ":classsystem:classes" 594: Func(7,0): ReadConfigFile 595: := 596: # if(!ccfg) 597: local #2 598: if true goto 604 print("cfg file 'classes', not found in skilladv-chekem"); 599: "cfg file 'classes', not found in skilladv-chekem" 600: Func(1,0): Print 601: # return 0; 602: 0L 603: return var skills := GetObjProperty(who, "HeightenSkills"); 604: decl local #3 605: local #0 606: "HeightenSkills" 607: Func(2,1): GetObjProperty 608: := 609: # var hclass := GetObjProperty(who, "HeightenClass"); 610: decl local #4 611: local #0 612: "HeightenClass" 613: Func(2,1): GetObjProperty 614: := 615: # if( skills and hclass ) 616: local #3 617: local #4 618: && 619: if false goto 683 var avg := 0; 620: decl local #0 621: 0L 622: := 623: # foreach skill in skills 624: local #3 625: initforeach @639 avg := avg + (50 - (GetMaxSkill(who, skill) - GetAttributeBaseValue(who, skill) 626: local #5 627: 50L 628: local #0 629: local #6 630: makelocal 631: jmp userfunc @866 632: local #0 633: local #6 634: Func(2,2): GetAttributeBaseValue 635: - 636: - 637: + 638: local5 := 639: stepforeach @626 640: leave block(3) avg := Cint(avg / len(skills)); 641: local #5 642: local #3 643: Func(0,5): Len 644: / 645: Func(0,0): CInt 646: local5 := if( avg >= 50 ) 647: local #5 648: 50L 649: >= 650: if false goto 660 return Cint(ccfg[class].maxstats) + 10; //Ancient 651: local #2 652: local #1 653: [] 1 654: get member 'maxstats' 655: Func(0,0): CInt 656: 10L 657: + 658: return 659: goto681 elseif( avg >= 30 ) 660: local #5 661: 30L 662: >= 663: if false goto 673 return Cint(ccfg[class].maxstats) + 5; //Legendary 664: local #2 665: local #1 666: [] 1 667: get member 'maxstats' 668: Func(0,0): CInt 669: 5L 670: + 671: return 672: goto681 return Cint(ccfg[class].maxstats) + 2; //Heighen class 673: local #2 674: local #1 675: [] 1 676: get member 'maxstats' 677: Func(0,0): CInt 678: 2L 679: + 680: return 681: leave block(1) 682: goto689 return Cint(ccfg[class].maxstats); 683: local #2 684: local #1 685: [] 1 686: get member 'maxstats' 687: Func(0,0): CInt 688: return 689: 0L 690: return c:/polserver/scripts/include/attributes.inc, Line 1677 function GetStrength( who ) 691: pop param 'who' return GetAttribute(who, ATTRIBUTEID_STRENGTH); 692: local #0 693: "strength" 694: Func(2,8): GetAttribute 695: return c:/polserver/scripts/include/attributes.inc, Line 1699 function GetStrengthMod( who ) 696: pop param 'who' return Cint(GetAttributeTemporaryMod(who, ATTRIBUTEID_STRENGTH) / 10); 697: local #0 698: "strength" 699: Func(2,9): GetAttributeTemporaryMod 700: 10L 701: / 702: Func(0,0): CInt 703: return c:/polserver/scripts/include/attributes.inc, Line 695 function GetAttributeIdBySkillId( skillid ) 704: pop param 'skillid' case( skillid ) 705: local #0 706: casejmp 0: @707 1: @710 2: @713 3: @716 4: @719 5: @722 6: @725 7: @728 8: @731 9: @734 10: @737 11: @740 12: @743 13: @746 14: @749 15: @752 16: @755 17: @758 18: @761 19: @764 20: @767 21: @770 22: @773 23: @776 24: @779 25: @782 26: @785 27: @788 28: @791 29: @794 30: @797 31: @800 32: @803 33: @806 34: @809 35: @812 36: @815 37: @818 38: @821 39: @824 40: @827 41: @830 42: @833 43: @836 44: @839 45: @842 46: @845 47: @848 48: @851 default: @853 return ATTRIBUTEID_ALCHEMY; 707: "alchemy" 708: return 709: goto853 return ATTRIBUTEID_ANATOMY; 710: "anatomy" 711: return 712: goto853 return ATTRIBUTEID_ANIMALLORE; 713: "animallore" 714: return 715: goto853 return ATTRIBUTEID_ITEMID; 716: "itemid" 717: return 718: goto853 return ATTRIBUTEID_ARMSLORE; 719: "armslore" 720: return 721: goto853 return ATTRIBUTEID_PARRY; 722: "parry" 723: return 724: goto853 return ATTRIBUTEID_BEGGING; 725: "begging" 726: return 727: goto853 return ATTRIBUTEID_BLACKSMITHY; 728: "blacksmithy" 729: return 730: goto853 return ATTRIBUTEID_BOWCRAFT; 731: "bowcraft" 732: return 733: goto853 return ATTRIBUTEID_PEACEMAKING; 734: "peacemaking" 735: return 736: goto853 return ATTRIBUTEID_CAMPING; 737: "camping" 738: return 739: goto853 return ATTRIBUTEID_CARPENTRY; 740: "carpentry" 741: return 742: goto853 return ATTRIBUTEID_CARTOGRAPHY; 743: "cartography" 744: return 745: goto853 return ATTRIBUTEID_COOKING; 746: "cooking" 747: return 748: goto853 return ATTRIBUTEID_DETECTINGHIDDEN; 749: "detectinghidden" 750: return 751: goto853 return ATTRIBUTEID_ENTICEMENT; 752: "enticement" 753: return 754: goto853 return ATTRIBUTEID_EVALINT; 755: "evaluatingintelligence" 756: return 757: goto853 return ATTRIBUTEID_HEALING; 758: "healing" 759: return 760: goto853 return ATTRIBUTEID_FISHING; 761: "fishing" 762: return 763: goto853 return ATTRIBUTEID_FORENSICS; 764: "forensicevaluation" 765: return 766: goto853 return ATTRIBUTEID_HERDING; 767: "herding" 768: return 769: goto853 return ATTRIBUTEID_HIDING; 770: "hiding" 771: return 772: goto853 return ATTRIBUTEID_PROVOCATION; 773: "provocation" 774: return 775: goto853 return ATTRIBUTEID_INSCRIPTION; 776: "inscription" 777: return 778: goto853 return ATTRIBUTEID_LOCKPICKING; 779: "lockpicking" 780: return 781: goto853 return ATTRIBUTEID_MAGERY; 782: "magery" 783: return 784: goto853 return ATTRIBUTEID_MAGICRESISTANCE; 785: "magicresistance" 786: return 787: goto853 return ATTRIBUTEID_TACTICS; 788: "tactics" 789: return 790: goto853 return ATTRIBUTEID_SNOOPING; 791: "snooping" 792: return 793: goto853 return ATTRIBUTEID_MUSICIANSHIP; 794: "musicianship" 795: return 796: goto853 return ATTRIBUTEID_POISONING; 797: "poisoning" 798: return 799: goto853 return ATTRIBUTEID_ARCHERY; 800: "archery" 801: return 802: goto853 return ATTRIBUTEID_SPIRITSPEAK; 803: "spiritspeak" 804: return 805: goto853 return ATTRIBUTEID_STEALING; 806: "stealing" 807: return 808: goto853 return ATTRIBUTEID_TAILORING; 809: "tailoring" 810: return 811: goto853 return ATTRIBUTEID_TAMING; 812: "animaltaming" 813: return 814: goto853 return ATTRIBUTEID_TASTEID; 815: "tasteidentification" 816: return 817: goto853 return ATTRIBUTEID_TINKERING; 818: "tinkering" 819: return 820: goto853 return ATTRIBUTEID_TRACKING; 821: "tracking" 822: return 823: goto853 return ATTRIBUTEID_VETERINARY; 824: "veterinary" 825: return 826: goto853 return ATTRIBUTEID_SWORDSMANSHIP; 827: "swordsmanship" 828: return 829: goto853 return ATTRIBUTEID_MACEFIGHTING; 830: "macefighting" 831: return 832: goto853 return ATTRIBUTEID_FENCING; 833: "fencing" 834: return 835: goto853 return ATTRIBUTEID_WRESTLING; 836: "wrestling" 837: return 838: goto853 return ATTRIBUTEID_LUMBERJACKING; 839: "lumberjacking" 840: return 841: goto853 return ATTRIBUTEID_MINING; 842: "mining" 843: return 844: goto853 return ATTRIBUTEID_MEDITATION; 845: "meditation" 846: return 847: goto853 return ATTRIBUTEID_STEALTH; 848: "stealth" 849: return 850: goto853 return ATTRIBUTEID_REMOVETRAP; 851: "removetrap" 852: return var ret := error; 853: decl local #1 854: error 855: := 856: # ret.+errortext := "No equivalent attributeid found for skillid " + skillid; 857: local #1 858: "errortext" 859: .+ 860: "No equivalent attributeid found for skillid " 861: local #0 862: + 863: := # return ret; 864: local #1 865: return c:/polserver/scripts/include/class.inc, Line 198 function GetMaxSkill( who, attributeid ) 866: pop param 'attributeid' 867: pop param 'who' var class := GetObjProperty(who, "class"); 868: decl local #2 869: local #1 870: "class" 871: Func(2,1): GetObjProperty 872: := 873: # if (!class) 874: local #2 875: if true goto 878 return 0; 876: 0L 877: return var cfg := ReadConfigFile(":*:classes"); 878: decl local #3 879: ":*:classes" 880: Func(7,0): ReadConfigFile 881: := 882: # if(!cfg) 883: local #3 884: if true goto 887 return 0; 885: 0L 886: return var elem := FindConfigElem( cfg, class ); 887: decl local #4 888: local #3 889: local #2 890: Func(7,1): FindConfigElem 891: := 892: # if(!elem) 893: local #4 894: if true goto 897 return 0; 895: 0L 896: return var skills := GetObjProperty(who, "HeightenSkills"); 897: decl local #5 898: local #1 899: "HeightenSkills" 900: Func(2,1): GetObjProperty 901: := 902: # var hclass := GetObjProperty(who, "HeightenClass"); 903: decl local #6 904: local #1 905: "HeightenClass" 906: Func(2,1): GetObjProperty 907: := 908: # var heighten := 0; 909: decl local #7 910: 0L 911: := 912: # if((skills and hclass) and (attributeid in skills) ) 913: local #5 914: local #6 915: && 916: local #0 917: local #5 918: in 919: && 920: if false goto 923 heighten := 50; 921: 50L 922: local7 := var attname; 923: decl local #8 924: # foreach value in GetConfigStringArray( elem, "primary" ) 925: local #4 926: "primary" 927: Func(7,2): GetConfigStringArray 928: initforeach @942 attname := GetAttributeIdBySkillId(Cint(value)); 929: local #9 930: Func(0,0): CInt 931: makelocal 932: jmp userfunc @704 933: local8 := if( attname == attributeid ) 934: local #8 935: local #0 936: == 937: if false goto 942 return 1000 + heighten; 938: 1000L 939: local #7 940: + 941: return 942: stepforeach @929 943: leave block(3) foreach value in GetConfigStringArray( elem, "secondary" ) 944: local #4 945: "secondary" 946: Func(7,2): GetConfigStringArray 947: initforeach @961 attname := GetAttributeIdBySkillId(Cint(value)); 948: local #9 949: Func(0,0): CInt 950: makelocal 951: jmp userfunc @704 952: local8 := if( attname == attributeid ) 953: local #8 954: local #0 955: == 956: if false goto 961 return 850 + heighten; 957: 850L 958: local #7 959: + 960: return 961: stepforeach @948 962: leave block(3) foreach value in GetConfigStringArray( elem, "tertiary" ) 963: local #4 964: "tertiary" 965: Func(7,2): GetConfigStringArray 966: initforeach @980 attname := GetAttributeIdBySkillId(Cint(value)); 967: local #9 968: Func(0,0): CInt 969: makelocal 970: jmp userfunc @704 971: local8 := if( attname == attributeid ) 972: local #8 973: local #0 974: == 975: if false goto 980 return 650 + heighten; 976: 650L 977: local #7 978: + 979: return 980: stepforeach @967 981: leave block(3) foreach value in GetConfigStringArray( elem, "penalty" ) 982: local #4 983: "penalty" 984: Func(7,2): GetConfigStringArray 985: initforeach @999 attname := GetAttributeIdBySkillId(Cint(value)); 986: local #9 987: Func(0,0): CInt 988: makelocal 989: jmp userfunc @704 990: local8 := if( attname == attributeid ) 991: local #8 992: local #0 993: == 994: if false goto 999 return 400 + heighten; 995: 400L 996: local #7 997: + 998: return 999: stepforeach @986 1000: leave block(3) 1001: 0L 1002: return c:/polserver/pkg/npcs/npcinfo.inc, Line 195 function GetNpcTemplateElem(npctemplate) 1003: pop param 'npctemplate' var npcname := TrimTemplate(npctemplate); 1004: decl local #1 1005: local #0 1006: makelocal 1007: jmp userfunc @1034 1008: := 1009: # var npcdesc := FindNpcDesc(npctemplate); 1010: decl local #2 1011: local #0 1012: makelocal 1013: jmp userfunc @1056 1014: := 1015: # var npccfg := ReadConfigFile(Cstr(npcdesc)); 1016: decl local #3 1017: local #2 1018: Func(0,4): CStr 1019: Func(7,0): ReadConfigFile 1020: := 1021: # var elem := FindConfigElem(npccfg, npcname); 1022: decl local #4 1023: local #3 1024: local #1 1025: Func(7,1): FindConfigElem 1026: := 1027: # if(!elem) 1028: local #4 1029: if true goto 1032 return 0; 1030: 0L 1031: return return elem; 1032: local #4 1033: return c:/polserver/pkg/npcs/npcinfo.inc, Line 212 function TrimTemplate(npctemplate) 1034: pop param 'npctemplate' if ( npctemplate[":"] ) 1035: local #0 1036: ":" 1037: [] 1 1038: if false goto 1054 npctemplate[":"] := ""; 1039: local #0 1040: ":" 1041: "" 1042: [] := (1) # npctemplate := npctemplate[(find(npctemplate, ":", 1)+1), len(npctemplate)]; 1043: local #0 1044: local #0 1045: ":" 1046: 1L 1047: Func(0,9): Find 1048: 1L 1049: + 1050: local #0 1051: Func(0,5): Len 1052: [,] 1053: local0 := return npctemplate; 1054: local #0 1055: return c:/polserver/pkg/npcs/npcinfo.inc, Line 239 function FindNpcDesc(npctemplate) 1056: pop param 'npctemplate' if ( npctemplate[":"] ) 1057: local #0 1058: ":" 1059: [] 1 1060: if false goto 1076 var npcdesc := FindNPCPackageSimple(npctemplate); 1061: decl local #0 1062: local #0 1063: makelocal 1064: jmp userfunc @1080 1065: := 1066: # return Cstr( ":" + npcdesc + ":npcdesc"); 1067: ":" 1068: local #1 1069: + 1070: ":npcdesc" 1071: + 1072: Func(0,4): CStr 1073: return 1074: leave block(1) 1075: goto1078 return "::npcdesc"; 1076: "::npcdesc" 1077: return 1078: 0L 1079: return c:/polserver/pkg/npcs/npcinfo.inc, Line 284 function FindNPCPackageSimple(template) 1080: pop param 'template' var npcname := TrimTemplate(template); 1081: decl local #1 1082: local #0 1083: makelocal 1084: jmp userfunc @1034 1085: := 1086: # if ( npcname == template ) 1087: local #1 1088: local #0 1089: == 1090: if false goto 1093 return ""; 1091: "" 1092: return template[":"] := ""; 1093: local #0 1094: ":" 1095: "" 1096: [] := (1) # template[":" + npcname] := ""; 1097: local #0 1098: ":" 1099: local #1 1100: + 1101: "" 1102: [] := (1) # return Cstr(template); 1103: local #0 1104: Func(0,4): CStr 1105: return
This lines in teh pol.log:
[pkg/npcs/townfolk/merchants/logoff.ecl]: logoff_start(Zepa)
[pkg/npcs/townfolk/merchants/logoff.ecl]: logoff_finish(Zepa)
[pkg/packethooks/partysystem/logoff.ecl]: logoff_start(Zepa)
[pkg/packethooks/partysystem/logoff.ecl]: logoff_finish(Zepa)
Is/was my attempt to detect if any of the logoff script failed to run to endprogram, but it does not seem to be the case, at least not this time.
Its might just be me, but im unable to attach a file, so here is a link where the dmp file can be downloaded.
http://www.pangaea-world.dk/images/repsak/dmp.zip
_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
runtest
|
Post subject: Posted: Fri Jun 29, 2007 6:25 pm |
|
Joined: Sat Aug 05, 2006 11:43 am Posts: 167
|
|
I am no expert but it looks like it is having a hard time creating the character. Can it be your prof.txt? Someone please tell me if I am wrong, I am horrible at debuging.
|
|
| Top |
|
 |
|
Repsak
|
Post subject: Posted: Fri Jun 29, 2007 11:49 pm |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
|
What makes you say its a problem with creating character?
My prof.txt?
There is no such file in any subfolder of the server, at least not in mine.
_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
CWO
|
Post subject: Posted: Sat Jun 30, 2007 1:41 am |
|
Joined: Sat Feb 04, 2006 5:49 pm Posts: 745 Location: Chicago, IL USA
|
|
prof.txt is something from the UO directory that the client reads to display the templates for creating a character. I don't think that would cause a crash though unless theres some type of way to corrupt things. POL checks a lot of these things because its a text file that anyone can modify to say anything and you should NEVER trust it. I do know for a fact though that POL at least totals the skills/stats given to the server to make sure they aren't above the default limits.
|
|
| Top |
|
 |
|
Repsak
|
Post subject: Posted: Sat Jun 30, 2007 11:17 pm |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
|
Okay, but what is it that indicates that it seem to be the problem?
Is that a way for a non-poldev (like myself) to open a dmp file and make just a little sence from it?
It might help me solve my problem.
_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
Pierce
|
Post subject: Posted: Sun Jul 01, 2007 3:33 am |
|
Joined: Thu Feb 02, 2006 8:33 am Posts: 273
|
|
The prof.txt isn't your problem. Like CWO said, it is a client side file where the profession are defined. This is only a problem, if a player wants to create a new character on your server and the stat values in this file for the choosen profession are over 65. This is the max. value Pol excepts. In this case the player can't create the char unless he changes the prof.txt or chooses another profession with a for pol correct value.
Your server won't crash, it simply don't accept the char creation packet.
Your problem which seems to cause the crash must be in the
exported function HandleStatusBarInfo( who, byref packet ) as the log and the lst file indicates. Perhaps you need to take a closer look in there or show us this script part if someone here can help.
|
|
| Top |
|
 |
|
Repsak
|
Post subject: Posted: Sun Jul 01, 2007 7:43 am |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
Code: use uo; use os; use polsys;
include ":classsystem:skilladv"; include "include/tamed"; include "include/magic"; include ":npcs:npc_util";
program StatusBarInfo() Print("PacketHooks - Status Bar Info" ); return 1; endprogram
exported function HandleStatusBarInfo( who, byref packet )
// Done to stop the "unused variable" report in ecompile. who := who; packet.SetInt8(42, 4); // flag (0x00 ? no more data following (end of packet here). 0x01 ? more data after this flag following, 0x03: like 1, extended info, 0x04: even more extended info (client 4.0 and above), 0x05: Unknown, UOML introduced. Maybe to do with introduced at client 5.0? // (flag == 3 or flag == 4 ) var statcap := GetStatCap(who); if(!statcap and who.cmdlevel > 2) statcap := 999; endif packet.SetInt16(66, statcap); // statcap packet.SetInt8(68, CountHandledPets(who)); // pets current packet.SetInt8(69, CanHandleMaxPets(who)); // pets max // (flag == 4) packet.SetInt16(70, GetEquipmentResist(who, DAMAGETYPE_FIRE)); // fireresist packet.SetInt16(72, GetEquipmentResist(who, DAMAGETYPE_COLD)); // coldresist packet.SetInt16(74, GetEquipmentResist(who, DAMAGETYPE_POISON)); // poisonresist packet.SetInt16(76, GetEquipmentResist(who, DAMAGETYPE_ELECTRICAL)); // energyresist packet.SetInt16(78, 0); // luck packet.SetInt16(80, 0); // damage minimum packet.SetInt16(82, 0); // damage maximum packet.SetInt32(86, 0); // titching points [N/A]
packet.SetInt16(1, packet.GetSize());
// return 0, tells the core to send the packet, but it will send the altered packet, adding info to the status bar return 0;
endfunction
_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
Pierce
|
Post subject: Posted: Mon Jul 02, 2007 2:03 am |
|
Joined: Thu Feb 02, 2006 8:33 am Posts: 273
|
First, i'm no expert on packets. So exuse me if i write trash
I took a look into your function and realize you always set the flag to 4, which is client 4.x ++. Did your players only use 4.x clients or do some players use e.g. 3.x or 6.x clients? This could perhaps cause at least problems for the clients. But i don't think the server would crash cause it only sends the packet.
|
|
| Top |
|
 |
|
Repsak
|
Post subject: Posted: Wed Jul 18, 2007 1:01 am |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
|
Today we had another crash, this time in a spawnrune script, in a function that has been running since pol92, so I fairly sure there is a general problem and not a problem with a specific code line.
How do I open a dmp file and get something usefull out of it?
_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
CWO
|
Post subject: Posted: Fri Jul 20, 2007 9:59 pm |
|
Joined: Sat Feb 04, 2006 5:49 pm Posts: 745 Location: Chicago, IL USA
|
|
You cant. You have to post it here on the forums for the devs to open and see.
|
|
| Top |
|
 |
|
Repsak
|
Post subject: Posted: Thu Aug 02, 2007 11:26 am |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
|
Okay, when can I expect feedback on the crash I already posted?
And should I post the dmp from the crashes since then?
_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
Repsak
|
Post subject: Posted: Sun Aug 12, 2007 5:34 am |
|
Joined: Sun Feb 05, 2006 2:00 am Posts: 91 Location: Denmark
|
Could any Dev member please give me a little help, thanks

_________________ When was the last time, you did something for the first time?
|
|
| Top |
|
 |
|
Page 1 of 1
|
[ 12 posts ] |
|
Who is online |
Users browsing this forum: No registered users and 0 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|