E:\gry\pol\pvp097\pkg\systems\combat\mainHitScript.src, Line 11 var weaponcfgfile := ReadConfigFile (":combat:itemdesc"); 0: decl global #0 1: ":combat:itemdesc" 2: Func(6,0): ReadConfigFile 3: := 4: # var npccfgfile := ReadConfigFile("::npcdesc"); 5: decl global #1 6: "::npcdesc" 7: Func(6,0): ReadConfigFile 8: := 9: # var attacker_weapon_elem; 10: decl global #2 11: # var attacker, defender; 12: decl global #3 13: # 14: decl global #4 15: # var ammo_objtype; 16: decl global #5 17: # E:\gry\pol\pvp097\pkg\systems\combat\mainHitScript.src, Line 18 program MainHitScript(param) 18: get arg 'param' attacker := param.attacker; 19: local #0 20: get member 'attacker' 21: global3 := defender := param.defender; 22: local #0 23: get member 'defender' 24: global4 := var weapon := param.weapon; 25: decl local #1 26: local #0 27: get member id 'weapon' (42) 28: := 29: # var armor := param.armor; 30: decl local #2 31: local #0 32: get member 'armor' 33: := 34: # var basedamage := param.basedamage; 35: decl local #3 36: local #0 37: get member 'basedamage' 38: := 39: # var rawdamage := param.rawdamage; 40: decl local #4 41: local #0 42: get member 'rawdamage' 43: := 44: # var rodzajataker; 45: decl local #5 46: # attacker_weapon_elem := FindConfigElem (weaponcfgfile, attacker.weapon.objtype) 47: global #0 48: global #3 49: get member id 'weapon' (42) 50: get member id 'objtype' (4) 51: Func(6,1): FindConfigElem 52: global2 := var attrib := weaponcfgfile[attacker.weapon.objtype].Attribute; 53: decl local #6 54: global #0 55: global #3 56: get member id 'weapon' (42) 57: get member id 'objtype' (4) 58: [] 1 59: get member id 'attribute' (92) 60: := 61: # case(attrib) 62: local #6 63: casejmp "Wrestling": @64 "Fencing": @71 "Archery": @78 "Swords": @85 "Mace": @92 default: @98 rodzajataker := Cint(GetEffectiveSkill(attacker, SKILLID_WRESTLING)); 64: global #3 65: 43L 66: makelocal 67: jmp userfunc @582 68: Func(0,0): CInt 69: local5 := 70: goto98 rodzajataker := Cint(GetEffectiveSkill(attacker, SKILLID_FENCING)); 71: global #3 72: 42L 73: makelocal 74: jmp userfunc @582 75: Func(0,0): CInt 76: local5 := 77: goto98 rodzajataker := Cint(GetEffectiveSkill(attacker, SKILLID_ARCHERY)); 78: global #3 79: 31L 80: makelocal 81: jmp userfunc @582 82: Func(0,0): CInt 83: local5 := 84: goto98 rodzajataker := Cint(GetEffectiveSkill(attacker, SKILLID_SWORDSMANSHIP)); 85: global #3 86: 40L 87: makelocal 88: jmp userfunc @582 89: Func(0,0): CInt 90: local5 := 91: goto98 rodzajataker := Cint(GetEffectiveSkill(attacker, SKILLID_MACEFIGHTING)); 92: global #3 93: 41L 94: makelocal 95: jmp userfunc @582 96: Func(0,0): CInt 97: local5 := if(defender.isA(POLCLASS_NPC)) 98: global #4 99: 4L 100: Call Method id isa (#0, 1 params) 101: if false goto 131 var damagedsound := CInt(npccfgfile[defender.npctemplate].damagedsound); 102: decl local #0 103: global #1 104: global #4 105: get member id 'npctemplate' (62) 106: [] 1 107: get member 'damagedsound' 108: Func(0,0): CInt 109: := 110: # if(damagedsound) 111: local #7 112: if false goto 117 PlaySoundEffect(defender, damagedsound); 113: global #4 114: local #7 115: Func(5,3): PlaySoundEffect 116: # PerformAction(defender, 0xa); 117: global #4 118: 10L 119: Func(5,19): PerformAction 120: # basedamage := basedamage*2; 121: local #3 122: 2L 123: * 124: local3 := rawdamage := rawdamage*2; 125: local #4 126: 2L 127: * 128: local4 := 129: leave block(1) 130: goto131 if(attacker.npctemplate == "employee") 131: global #3 132: get member id 'npctemplate' (62) 133: "employee" 134: == 135: if false goto 144 basedamage := basedamage / 2; 136: local #3 137: 2L 138: / 139: local3 := rawdamage := rawdamage / 2; 140: local #4 141: 2L 142: / 143: local4 := SetObjProperty(defender, "LastHit", {attacker.name, attacker.serial, weapon }); 144: global #4 145: "LastHit" 146: array 147: global #3 148: get member id 'name' (3) 149: init{} 150: global #3 151: get member id 'serial' (6) 152: init{} 153: local #1 154: init{} 155: Func(5,0): SetObjProperty 156: # EraseObjProperty(defender, "Ostatni_atak"); 157: global #4 158: "Ostatni_atak" 159: Func(5,5): EraseObjProperty 160: # if(defender.npctemplate) 161: global #4 162: get member id 'npctemplate' (62) 163: if false goto 169 changeopponent(attacker, defender); 164: global #3 165: global #4 166: makelocal 167: jmp userfunc @343 168: # var shield := GetEquipmentByLayer(defender, 2); 169: decl local #7 170: global #4 171: 2L 172: Func(5,13): GetEquipmentByLayer 173: := 174: # if(shield) 175: local #7 176: if false goto 202 var bd; 177: decl local #0 178: # if(basedamage > 200) 179: local #3 180: 200L 181: > 182: if false goto 186 bd := 200; 183: 200L 184: local8 := 185: goto188 bd := basedamage; 186: local #3 187: local8 := if(RandomInt(Cint(GetEffectiveSkill(defender, SKILLID_PARRY) / 2)) >= bd) 188: global #4 189: 5L 190: makelocal 191: jmp userfunc @582 192: 2L 193: / 194: Func(0,0): CInt 195: Func(3,0): RandomInt 196: local #8 197: >= 198: if false goto 201 armor := shield; 199: local #7 200: local2 := 201: leave block(1) rawdamage := Cint(rawdamage + Cint(GetEffectiveSkill(attacker, SKILLID_ANATOMY) 202: local #4 203: global #3 204: 1L 205: makelocal 206: jmp userfunc @582 207: 20L 208: / 209: Func(0,0): CInt 210: + 211: global #3 212: 27L 213: makelocal 214: jmp userfunc @582 215: 20L 216: / 217: Func(0,0): CInt 218: + 219: Func(0,0): CInt 220: local4 := if(rawdamage < 1) 221: local #4 222: 1L 223: < 224: if false goto 227 rawdamage := 0; 225: 0L 226: local4 := if(!(attacker.isA(POLCLASS_NPC))) 227: global #3 228: 4L 229: Call Method id isa (#0, 1 params) 230: if true goto 244 if(attrib != "Archery") 231: local #6 232: "Archery" 233: <> 234: if false goto 244 krytykiwoj(attacker, defender , rawdamage, rodzajataker, weaponcfgfile, weapon) 235: global #3 236: global #4 237: local #4 238: local #5 239: global #0 240: local #1 241: makelocal 242: jmp userfunc @590 243: # var poisonlevel := GetObjProperty(weapon, "poison_level"); 244: decl local #8 245: local #1 246: "poison_level" 247: Func(5,1): GetObjProperty 248: := 249: # var charges := CInt(GetObjProperty(defender, "ReactiveArmor") ); // reactive ar 250: decl local #9 251: global #4 252: "ReactiveArmor" 253: Func(5,1): GetObjProperty 254: Func(0,0): CInt 255: := 256: # if(charges) 257: local #9 258: if false goto 265 ReactiveArmorHit(attacker, defender, rawdamage); // RA hit 259: global #3 260: global #4 261: local #4 262: makelocal 263: jmp userfunc @1069 264: # if(poisonlevel) // jezeli bron jest zatruta 265: local #8 266: if false goto 273 PoisonHit(attacker, defender, weapon); 267: global #3 268: global #4 269: local #1 270: makelocal 271: jmp userfunc @954 272: # if(getobjproperty(weapon, "przekleta")) 273: local #1 274: "przekleta" 275: Func(5,1): GetObjProperty 276: if false goto 283 HealDamage(attacker, rawdamage / 2); 277: global #3 278: local #4 279: 2L 280: / 281: Func(4,6): HealDamage 282: # if(getobjproperty(attacker, "vampire")) 283: global #3 284: "vampire" 285: Func(5,1): GetObjProperty 286: if false goto 293 HealDamage(attacker, rawdamage / 5); 287: global #3 288: local #4 289: 5L 290: / 291: Func(4,6): HealDamage 292: # if(getobjproperty(defender, "evilomen")) 293: global #4 294: "evilomen" 295: Func(5,1): GetObjProperty 296: if false goto 305 rawdamage := rawdamage * 2; 297: local #4 298: 2L 299: * 300: local4 := eraseobjproperty(defender, "evilomen"); 301: global #4 302: "evilomen" 303: Func(5,5): EraseObjProperty 304: # if(GetObjProperty(attacker, "wraith")) 305: global #3 306: "wraith" 307: Func(5,1): GetObjProperty 308: if false goto 315 HealDamage(attacker, (rawdamage/4)); 309: global #3 310: local #4 311: 4L 312: / 313: Func(4,6): HealDamage 314: # if(getobjproperty(attacker, "vampirebat")) 315: global #3 316: "vampirebat" 317: Func(5,1): GetObjProperty 318: if false goto 332 var master := systemfindobjectbyserial(getobjproperty(attacker, "master")); 319: decl local #0 320: global #3 321: "master" 322: Func(5,1): GetObjProperty 323: 0L 324: Func(5,14): SystemFindObjectBySerial 325: := 326: # HealDamage(master, rawdamage); 327: local #10 328: local #4 329: Func(4,6): HealDamage 330: # 331: leave block(1) DealDamage(defender, attacker, weapon, rawdamage); 332: global #4 333: global #3 334: local #1 335: local #4 336: makelocal 337: jmp userfunc @385 338: # return; 339: "" 340: progend 341: leave block(10) 342: progend E:\gry\pol\pvp097\pkg\systems\combat\hitScriptInc.inc, Line 88 function changeopponent(attacker, defender) 343: pop param 'defender' 344: pop param 'attacker' if(RandomInt(5) == 1) 345: 5L 346: Func(3,0): RandomInt 347: 1L 348: == 349: if false goto 383 var ev := array; 350: decl local #0 351: array 352: := 353: # ev.+ type; 354: local #2 355: "type" 356: .+ 357: # ev.+ source; 358: local #2 359: "source" 360: .+ 361: # ev.type := EVID_PEACEMADE; 362: local #2 363: 2147483647L 364: set member 'type' # ev.source := attacker; 365: local #2 366: local #1 367: set member 'source' # SendEvent(defender, ev); 368: local #0 369: local #2 370: Func(5,7): SendEvent 371: # ev.type := EVID_ENGAGED; 372: local #2 373: 2L 374: set member 'type' # SendEvent(defender, ev); 375: local #0 376: local #2 377: Func(5,7): SendEvent 378: # RestartScript(attacker); 379: local #1 380: Func(5,8): RestartScript 381: # 382: leave block(1) 383: 0L 384: return E:\gry\pol\pvp097\pkg\systems\combat\hitScriptInc.inc, Line 19 function DealDamage(defender, attacker, weapon, rawdamage) 385: pop param 'rawdamage' 386: pop param 'weapon' 387: pop param 'attacker' 388: pop param 'defender' if(!attacker.npctemplate) 389: local #2 390: get member id 'npctemplate' (62) 391: if true goto 398 DeflectArrow(attacker, defender, rawdamage); 392: local #2 393: local #3 394: local #0 395: makelocal 396: jmp userfunc @539 397: # if(rawdamage != 1) 398: local #0 399: 1L 400: <> 401: if false goto 406 ApplyRawDamage(defender, rawdamage); 402: local #3 403: local #0 404: Func(4,5): ApplyRawDamage 405: # var typ := GetObjProperty(weapon, "typ"); 406: decl local #4 407: local #1 408: "typ" 409: Func(5,1): GetObjProperty 410: := 411: # var ladunki := GetObjProperty(weapon, "ladunki"); 412: decl local #5 413: local #1 414: "ladunki" 415: Func(5,1): GetObjProperty 416: := 417: # var level := Cint(GetObjProperty(weapon, "level")); 418: decl local #6 419: local #1 420: "level" 421: Func(5,1): GetObjProperty 422: Func(0,0): CInt 423: := 424: # if(Cint(GetObjProperty(weapon, "magik"))) 425: local #1 426: "magik" 427: Func(5,1): GetObjProperty 428: Func(0,0): CInt 429: if false goto 436 OdejmijLadunek(defender, weapon, ladunki); // odejmowanie ladunkow z broni magi 430: local #3 431: local #1 432: local #5 433: makelocal 434: jmp userfunc @898 435: # if(typ == "fball") 436: local #4 437: "fball" 438: == 439: if false goto 462 ApplyRawDamage(defender, RandomInt(5) + (level*4)); 440: local #3 441: 5L 442: Func(3,0): RandomInt 443: local #6 444: 4L 445: * 446: + 447: Func(4,5): ApplyRawDamage 448: # PlayMovingEffect(attacker, defender, FX_FIREBALL, 5, 1); 449: local #2 450: local #3 451: 14036L 452: 5L 453: 1L 454: 0L 455: Func(5,2): PlayMovingEffect 456: # PlaySoundEffect(attacker, 0x15f); 457: local #2 458: 351L 459: Func(5,3): PlaySoundEffect 460: # 461: goto537 elseif(typ == "lightning") 462: local #4 463: "lightning" 464: == 465: if false goto 488 ApplyRawDamage(defender, RandomInt(5) + (level*4)); 466: local #3 467: 5L 468: Func(3,0): RandomInt 469: local #6 470: 4L 471: * 472: + 473: Func(4,5): ApplyRawDamage 474: # PlayMovingEffect(attacker, defender, 0x379f, 0xa, 0x1e); 475: local #2 476: local #3 477: 14239L 478: 10L 479: 30L 480: 0L 481: Func(5,2): PlayMovingEffect 482: # PlaySoundEffect(attacker, 0x5C0); 483: local #2 484: 1472L 485: Func(5,3): PlaySoundEffect 486: # 487: goto537 elseif(typ == "ice") 488: local #4 489: "ice" 490: == 491: if false goto 514 ApplyRawDamage(defender, RandomInt(5) + (level*4)); 492: local #3 493: 5L 494: Func(3,0): RandomInt 495: local #6 496: 4L 497: * 498: + 499: Func(4,5): ApplyRawDamage 500: # PlayMovingEffect(attacker, defender, 0x37b9, 0xa, 0x1e); 501: local #2 502: local #3 503: 14265L 504: 10L 505: 30L 506: 0L 507: Func(5,2): PlayMovingEffect 508: # PlaySoundEffect(attacker, 0x005d); 509: local #2 510: 93L 511: Func(5,3): PlaySoundEffect 512: # 513: goto537 elseif(typ == "#imolat") 514: local #4 515: "#imolat" 516: == 517: if false goto 537 ApplyRawDamage(defender, RandomInt(5) + 15); 518: local #3 519: 5L 520: Func(3,0): RandomInt 521: 15L 522: + 523: Func(4,5): ApplyRawDamage 524: # PlayMovingEffect(attacker, defender, FX_FIREBALL, 5, 1); 525: local #2 526: local #3 527: 14036L 528: 5L 529: 1L 530: 0L 531: Func(5,2): PlayMovingEffect 532: # PlaySoundEffect(attacker, 0x15f); 533: local #2 534: 351L 535: Func(5,3): PlaySoundEffect 536: # 537: 0L 538: return E:\gry\pol\pvp097\pkg\systems\combat\hitScriptInc.inc, Line 106 function DeflectArrow(attacker, defender, rawdamage) 539: pop param 'rawdamage' 540: pop param 'defender' 541: pop param 'attacker' if(Cint(GetObjProperty(defender, "#IxodynixSet"))) 542: local #1 543: "#IxodynixSet" 544: Func(5,1): GetObjProperty 545: Func(0,0): CInt 546: if false goto 580 if( randomint(5000) < (100 + (GetAttribute(defender, ATTRIBUTEID_STRENGTH)) + ( 547: 5000L 548: Func(3,0): RandomInt 549: 100L 550: local #1 551: "strength" 552: Func(10,2): GetAttribute 553: + 554: local #1 555: "dexterity" 556: Func(10,2): GetAttribute 557: + 558: < 559: if false goto 580 PrintTextAbove(defender, "*Oor Grav*",3,40); 560: local #1 561: "*Oor Grav*" 562: 3L 563: 40L 564: Func(5,9): PrintTextAbove 565: # PlayObjectCenteredEffect(defender, 0x22C6, 10,10); 566: local #1 567: 8902L 568: 10L 569: 10L 570: Func(5,6): PlayObjectCenteredEffect 571: # PlaySoundEffect(attacker, 0x1f2); 572: local #2 573: 498L 574: Func(5,3): PlaySoundEffect 575: # rawdamage := rawdamage/2; 576: local #0 577: 2L 578: / 579: local0 := 580: 0L 581: return e:/gry/pol/pvp097/scripts/include/attributes.inc, Line 307 function GetEffectiveSkill(who, skillid) 582: pop param 'skillid' 583: pop param 'who' return GetAttribute(who, GetAttributeIdBySkillId(skillid)); 584: local #1 585: local #0 586: makelocal 587: jmp userfunc @1153 588: Func(10,2): GetAttribute 589: return E:\gry\pol\pvp097\pkg\systems\combat\hitScriptInc.inc, Line 139 function krytykiwoj(attacker, defender , rawdamage , rodzajataker, cfg, weapon) 590: pop param 'weapon' 591: pop param 'cfg' 592: pop param 'rodzajataker' 593: pop param 'rawdamage' 594: pop param 'defender' 595: pop param 'attacker' rodzajataker := rodzajataker / 1.2; 596: local #2 597: 1.2LF 598: / 599: local2 := if( randomint(10000) < (rodzajataker + (GetAttribute(attacker, ATTRIBUTEID_STRE 600: 10000L 601: Func(3,0): RandomInt 602: local #2 603: local #5 604: "strength" 605: Func(10,2): GetAttribute 606: + 607: local #5 608: "dexterity" 609: Func(10,2): GetAttribute 610: + 611: < 612: local #5 613: 0L 614: makelocal 615: jmp userfunc @582 616: Func(0,0): CInt 617: && 618: if false goto 666 Set_critical(1); 619: 1L 620: Func(2,0): Set_Critical 621: # PrintTextAbove (attacker, "*obrotowe uderzenie!*", FONT_NORMAL, COLOR_RED); 622: local #5 623: "*obrotowe uderzenie!*" 624: 3L 625: 40L 626: Func(5,9): PrintTextAbove 627: # PlaySoundEffect(attacker, 0x527); 628: local #5 629: 1319L 630: Func(5,3): PlaySoundEffect 631: # foreach wrog in ListHostiles( attacker,2 , 0 ) 632: local #5 633: 2L 634: 0L 635: Func(5,12): ListHostiles 636: initforeach @661 SetObjProperty(wrog, "LastHit", {attacker.name, attacker.serial, attacker.weapo 637: local #6 638: "LastHit" 639: array 640: local #5 641: get member id 'name' (3) 642: init{} 643: local #5 644: get member id 'serial' (6) 645: init{} 646: local #5 647: get member id 'weapon' (42) 648: init{} 649: Func(5,0): SetObjProperty 650: # SetObjProperty(wrog, "Ostatni_atak", attacker.serial); 651: local #6 652: "Ostatni_atak" 653: local #5 654: get member id 'serial' (6) 655: Func(5,0): SetObjProperty 656: # ApplyRawDamage( wrog, rawdamage ); 657: local #6 658: local #3 659: Func(4,5): ApplyRawDamage 660: # 661: stepforeach @637 662: leave block(3) Set_critical(0); 663: 0L 664: Func(2,0): Set_Critical 665: # if ((GetEquipmentByLayer(defender, 25)) && (CInt(cfg[attacker.weapon.objtype].T 666: local #4 667: 25L 668: Func(5,13): GetEquipmentByLayer 669: local #1 670: local #5 671: get member id 'weapon' (42) 672: get member id 'objtype' (4) 673: [] 1 674: get member 'TwoHanded' 675: Func(0,0): CInt 676: 1L 677: == 678: && 679: local #5 680: "strength" 681: Func(10,2): GetAttribute 682: 100L 683: >= 684: && 685: local #5 686: 0L 687: makelocal 688: jmp userfunc @582 689: Func(0,0): CInt 690: && 691: if false goto 813 var obrazenia := Cint(cfg[attacker.weapon.objtype].MaxDam) + weapon.dmg_mod; 692: decl local #0 693: local #1 694: local #5 695: get member id 'weapon' (42) 696: get member id 'objtype' (4) 697: [] 1 698: get member 'MaxDam' 699: Func(0,0): CInt 700: local #0 701: get member id 'dmg_mod' (91) 702: + 703: := 704: # if( randomint(10000) < (rodzajataker + (GetAttribute(attacker, ATTRIBUTEID_STRE 705: 10000L 706: Func(3,0): RandomInt 707: local #2 708: local #5 709: "strength" 710: Func(10,2): GetAttribute 711: + 712: local #6 713: + 714: < 715: if false goto 812 PrintTextAbove (attacker, "*zrzucenie z wierzchowca*", FONT_NORMAL, COLOR_RED); 716: local #5 717: "*zrzucenie z wierzchowca*" 718: 3L 719: 40L 720: Func(5,9): PrintTextAbove 721: # var mount := GetEquipmentByLayer(defender, 25); 722: decl local #0 723: local #4 724: 25L 725: Func(5,13): GetEquipmentByLayer 726: := 727: # var serial := GetObjProperty(mount, "serial"); 728: decl local #1 729: local #7 730: "serial" 731: Func(5,1): GetObjProperty 732: := 733: # var animal := SystemFindObjectBySerial(CInt(serial)); 734: decl local #2 735: local #8 736: Func(0,0): CInt 737: 0L 738: Func(5,14): SystemFindObjectBySerial 739: := 740: # EraseObjProperty(animal,"serial"); 741: local #9 742: "serial" 743: Func(5,5): EraseObjProperty 744: # EraseObjProperty(animal,"mounted"); 745: local #9 746: "mounted" 747: Func(5,5): EraseObjProperty 748: # EraseObjProperty(animal,"mounted_on"); 749: local #9 750: "mounted_on" 751: Func(5,5): EraseObjProperty 752: # animal.facing := defender.facing; 753: local #9 754: local #4 755: get member id 'facing' (9) 756: set member id 'facing' (9) # var ev := array; 757: decl local #3 758: array 759: := 760: # ev.+ type; 761: local #10 762: "type" 763: .+ 764: # ev.+ source; 765: local #10 766: "source" 767: .+ 768: # ev.type := EVID_WAKEUP; 769: local #10 770: 4370L 771: set member 'type' # ev.source := defender; 772: local #10 773: local #4 774: set member 'source' # SendEvent(animal, ev); 775: local #9 776: local #10 777: Func(5,7): SendEvent 778: # MoveObjectToLocation(animal, defender.x, defender.y, defender.z, animal.realm, 779: local #9 780: local #4 781: get member id 'x' (0) 782: local #4 783: get member id 'y' (1) 784: local #4 785: get member id 'z' (2) 786: local #9 787: get member id 'realm' (113) 788: 1073741824L 789: Func(5,15): MoveObjectToLocation 790: # SetObjProperty (animal, "prevtamed", 1); 791: local #9 792: "prevtamed" 793: 1L 794: Func(5,0): SetObjProperty 795: # RestartScript(animal); 796: local #9 797: Func(5,8): RestartScript 798: # DestroyItem( mount ); 799: local #7 800: Func(5,16): DestroyItem 801: # SetStamina(defender, 0); 802: local #4 803: 0L 804: makelocal 805: jmp userfunc @1143 806: # EraseObjProperty(defender, "HealTimer"); 807: local #4 808: "HealTimer" 809: Func(5,5): EraseObjProperty 810: # 811: leave block(4) 812: leave block(1) if(Cint(GetObjProperty(weapon, "ixodynix")) && RandomInt(100) < 20) 813: local #0 814: "ixodynix" 815: Func(5,1): GetObjProperty 816: Func(0,0): CInt 817: 100L 818: Func(3,0): RandomInt 819: 20L 820: < 821: && 822: if false goto 843 PrintTextAbove (attacker, "*oslepienie*", FONT_NORMAL, COLOR_RED); 823: local #5 824: "*oslepienie*" 825: 3L 826: 40L 827: Func(5,9): PrintTextAbove 828: # Detach(); 829: Func(5,11): Detach 830: # SetObjProperty(defender, "black", ReadGameClock() +5); 831: local #4 832: "black" 833: Func(5,17): ReadGameClock 834: 5L 835: + 836: Func(5,0): SetObjProperty 837: # defender.SetLightLevel(30, 5); 838: local #4 839: 30L 840: 5L 841: Call Method id setlightlevel (#6, 2 params) 842: # if(Cint(GetObjProperty(weapon, "69exodus")) && RandomInt(100) < 5) 843: local #0 844: "69exodus" 845: Func(5,1): GetObjProperty 846: Func(0,0): CInt 847: 100L 848: Func(3,0): RandomInt 849: 5L 850: < 851: && 852: if false goto 872 PlayLightningBoltEffect(defender); 853: local #4 854: Func(5,18): PlayLightningBoltEffect 855: # PlaySoundEffect (defender, SFX_SPELL_LIGHTNING); 856: local #4 857: 42L 858: Func(5,3): PlaySoundEffect 859: # if(defender.ip) 860: local #4 861: get member id 'ip' (49) 862: if false goto 868 ApplyRawDamage(defender, 40); 863: local #4 864: 40L 865: Func(4,5): ApplyRawDamage 866: # 867: goto872 ApplyRawDamage(defender, 160); 868: local #4 869: 160L 870: Func(4,5): ApplyRawDamage 871: # if(Cint(GetObjProperty(defender, "#GorxKomplet")) && RandomInt(100) < 5) 872: local #4 873: "#GorxKomplet" 874: Func(5,1): GetObjProperty 875: Func(0,0): CInt 876: 100L 877: Func(3,0): RandomInt 878: 5L 879: < 880: && 881: if false goto 896 PlayObjectCenteredEffect(attacker, 0x374a, 10,10); 882: local #5 883: 14154L 884: 10L 885: 10L 886: Func(5,6): PlayObjectCenteredEffect 887: # PlaySoundEffect(attacker, 0x1f2); 888: local #5 889: 498L 890: Func(5,3): PlaySoundEffect 891: # ApplyRawDamage(attacker, 30); 892: local #5 893: 30L 894: Func(4,5): ApplyRawDamage 895: # 896: 0L 897: return e:/gry/pol/pvp097/scripts/include/ladunki.inc, Line 4 function OdejmijLadunek(who, item, ladunki) 898: pop param 'ladunki' 899: pop param 'item' 900: pop param 'who' SetObjProperty(item, "ladunki", {ladunki[1] - 1, ladunki[2]}); 901: local #1 902: "ladunki" 903: array 904: local #0 905: 1L 906: [] 1 907: 1L 908: - 909: init{} 910: local #0 911: 2L 912: [] 1 913: init{} 914: Func(5,0): SetObjProperty 915: # if(ladunki[1] <= 0) 916: local #0 917: 1L 918: [] 1 919: 0L 920: <= 921: if false goto 952 SendSysMessage(who, "Magiczna sila przedmiotu " + item.name + " wyczerpala sie. 922: local #2 923: "Magiczna sila przedmiotu " 924: local #1 925: get member id 'name' (3) 926: + 927: " wyczerpala sie." 928: + 929: 3L 930: 40L 931: Func(5,4): SendSysMessage 932: # EraseObjProperty(item, "magik"); 933: local #1 934: "magik" 935: Func(5,5): EraseObjProperty 936: # EraseObjProperty(item, "typ"); 937: local #1 938: "typ" 939: Func(5,5): EraseObjProperty 940: # EraseObjProperty(item, "ladunki"); 941: local #1 942: "ladunki" 943: Func(5,5): EraseObjProperty 944: # EraseObjProperty(item, "level"); 945: local #1 946: "level" 947: Func(5,5): EraseObjProperty 948: # RecalcVitals(who); 949: local #2 950: Func(4,0): RecalcVitals 951: # 952: 0L 953: return E:\gry\pol\pvp097\pkg\systems\combat\mainHitScript.src, Line 133 function PoisonHit(attacker, defender, weapon) 954: pop param 'weapon' 955: pop param 'defender' 956: pop param 'attacker' var duration := CInt(GetObjProperty(weapon, "d")); 957: decl local #3 958: local #0 959: "d" 960: Func(5,1): GetObjProperty 961: Func(0,0): CInt 962: := 963: # if((duration < 1) || !duration) 964: local #3 965: 1L 966: < 967: local #3 968: ! 969: || 970: if false goto 999 EraseObjProperty(weapon,"poison_level"); 971: local #0 972: "poison_level" 973: Func(5,5): EraseObjProperty 974: # EraseObjProperty(weapon,"d"); 975: local #0 976: "d" 977: Func(5,5): EraseObjProperty 978: # EraseObjProperty(weapon,"ps"); 979: local #0 980: "ps" 981: Func(5,5): EraseObjProperty 982: # SetObjProperty(defender, "LastHit", {attacker.name, attacker.serial, weapon }); 983: local #1 984: "LastHit" 985: array 986: local #2 987: get member id 'name' (3) 988: init{} 989: local #2 990: get member id 'serial' (6) 991: init{} 992: local #0 993: init{} 994: Func(5,0): SetObjProperty 995: # return; 996: "" 997: return 998: goto1067 if(RandomInt(3) == 1) 999: 3L 1000: Func(3,0): RandomInt 1001: 1L 1002: == 1003: if false goto 1013 duration := duration - 1; 1004: local #3 1005: 1L 1006: - 1007: local3 := SetObjProperty(weapon, "d", duration); 1008: local #0 1009: "d" 1010: local #3 1011: Func(5,0): SetObjProperty 1012: # var level := GetObjProperty(weapon, "poison_level"); 1013: decl local #0 1014: local #0 1015: "poison_level" 1016: Func(5,1): GetObjProperty 1017: := 1018: # if(RandomInt(4) == 1) 1019: 4L 1020: Func(3,0): RandomInt 1021: 1L 1022: == 1023: if false goto 1066 PrintTextAbovePrivate(defender, "Otrul Cie " + attacker.name +"!", defender); 1024: local #1 1025: "Otrul Cie " 1026: local #2 1027: get member id 'name' (3) 1028: + 1029: "!" 1030: + 1031: local #1 1032: 3L 1033: 1000L 1034: Func(5,20): PrintTextAbovePrivate 1035: # var passparms := { defender, attacker, "poisoned weapon", level}; 1036: decl local #0 1037: array 1038: local #1 1039: init{} 1040: local #2 1041: init{} 1042: "poisoned weapon" 1043: init{} 1044: local #4 1045: init{} 1046: := 1047: # SetObjProperty(defender, "LastHit", {attacker.name, attacker.serial, "poisoned 1048: local #1 1049: "LastHit" 1050: array 1051: local #2 1052: get member id 'name' (3) 1053: init{} 1054: local #2 1055: get member id 'serial' (6) 1056: init{} 1057: "poisoned weapon" 1058: init{} 1059: Func(5,0): SetObjProperty 1060: # start_script(":spells:poisonDamage", passparms); 1061: ":spells:poisonDamage" 1062: local #5 1063: Func(2,2): Start_Script 1064: # 1065: leave block(1) 1066: leave block(1) 1067: 0L 1068: return E:\gry\pol\pvp097\pkg\systems\combat\hitScriptInc.inc, Line 62 function ReactiveArmorHit(attacker, defender, rawdamage) 1069: pop param 'rawdamage' 1070: pop param 'defender' 1071: pop param 'attacker' if((attacker.dead) || (defender.dead)) 1072: local #2 1073: get member id 'dead' (39) 1074: local #1 1075: get member id 'dead' (39) 1076: || 1077: if false goto 1080 return; 1078: "" 1079: return var charges := CInt(GetObjProperty(defender, "ReactiveArmor") ); 1080: decl local #3 1081: local #1 1082: "ReactiveArmor" 1083: Func(5,1): GetObjProperty 1084: Func(0,0): CInt 1085: := 1086: # if(!charges) 1087: local #3 1088: if true goto 1096 SetObjProperty(defender, "TempDamage", rawdamage); 1089: local #1 1090: "TempDamage" 1091: local #0 1092: Func(5,0): SetObjProperty 1093: # return; 1094: "" 1095: return charges := charges - 1; 1096: local #3 1097: 1L 1098: - 1099: local3 := SendSysMessage(defender, "Pozostalo ladunkow reactiva: " + charges + ".", 3, 40 1100: local #1 1101: "Pozostalo ladunkow reactiva: " 1102: local #3 1103: + 1104: "." 1105: + 1106: 3L 1107: 40L 1108: Func(5,4): SendSysMessage 1109: # if(charges == 0) 1110: local #3 1111: 0L 1112: == 1113: if false goto 1119 EraseObjProperty(defender, "ReactiveArmor"); 1114: local #1 1115: "ReactiveArmor" 1116: Func(5,5): EraseObjProperty 1117: # 1118: goto1124 SetObjProperty(defender, "ReactiveArmor", charges); 1119: local #1 1120: "ReactiveArmor" 1121: local #3 1122: Func(5,0): SetObjProperty 1123: # PlayObjectCenteredEffect(defender, 0x22C6, 10,10); 1124: local #1 1125: 8902L 1126: 10L 1127: 10L 1128: Func(5,6): PlayObjectCenteredEffect 1129: # PlaySoundEffect(defender, 0x1f2); 1130: local #1 1131: 498L 1132: Func(5,3): PlaySoundEffect 1133: # rawdamage := CInt((rawdamage *20) / 100); 1134: local #0 1135: 20L 1136: * 1137: 100L 1138: / 1139: Func(0,0): CInt 1140: local0 := return rawdamage; 1141: local #0 1142: return e:/gry/pol/pvp097/scripts/include/attributes.inc, Line 804 function SetStamina(who, stamina) 1143: pop param 'stamina' 1144: pop param 'who' return SetVital(who, VITALID_STAMINA, Cint(stamina*100)); 1145: local #1 1146: "Stamina" 1147: local #0 1148: 100L 1149: * 1150: Func(0,0): CInt 1151: Func(4,4): SetVital 1152: return e:/gry/pol/pvp097/scripts/include/attributes.inc, Line 125 function GetAttributeIdBySkillId(skillid) 1153: pop param 'skillid' case(skillid) 1154: local #0 1155: casejmp 0: @1156 1: @1159 2: @1162 3: @1165 4: @1168 5: @1171 6: @1174 7: @1177 8: @1180 9: @1183 10: @1186 11: @1189 12: @1192 13: @1195 14: @1198 15: @1201 16: @1204 17: @1207 18: @1210 19: @1213 20: @1216 21: @1219 22: @1222 23: @1225 24: @1228 25: @1231 26: @1234 27: @1237 28: @1240 29: @1243 30: @1246 31: @1249 32: @1252 33: @1255 34: @1258 35: @1261 36: @1264 37: @1267 38: @1270 39: @1273 40: @1276 41: @1279 42: @1282 43: @1285 44: @1288 45: @1291 46: @1294 47: @1297 48: @1300 49: @1303 50: @1306 default: @1308 return ATTRIBUTEID_ALCHEMY; 1156: "alchemy" 1157: return 1158: goto1308 return ATTRIBUTEID_ANATOMY; 1159: "anatomy" 1160: return 1161: goto1308 return ATTRIBUTEID_ANIMALLORE; 1162: "animallore" 1163: return 1164: goto1308 return ATTRIBUTEID_ITEMID; 1165: "itemid" 1166: return 1167: goto1308 return ATTRIBUTEID_ARMSLORE; 1168: "armslore" 1169: return 1170: goto1308 return ATTRIBUTEID_PARRY; 1171: "parry" 1172: return 1173: goto1308 return ATTRIBUTEID_BEGGING; 1174: "begging" 1175: return 1176: goto1308 return ATTRIBUTEID_BLACKSMITHY; 1177: "blacksmithy" 1178: return 1179: goto1308 return ATTRIBUTEID_BOWCRAFT; 1180: "bowcraft" 1181: return 1182: goto1308 return ATTRIBUTEID_PEACEMAKING; 1183: "peacemaking" 1184: return 1185: goto1308 return ATTRIBUTEID_CAMPING; 1186: "camping" 1187: return 1188: goto1308 return ATTRIBUTEID_CARPENTRY; 1189: "carpentry" 1190: return 1191: goto1308 return ATTRIBUTEID_CARTOGRAPHY; 1192: "cartography" 1193: return 1194: goto1308 return ATTRIBUTEID_COOKING; 1195: "cooking" 1196: return 1197: goto1308 return ATTRIBUTEID_DETECTINGHIDDEN; 1198: "detectinghidden" 1199: return 1200: goto1308 return ATTRIBUTEID_ENTICEMENT; 1201: "enticement" 1202: return 1203: goto1308 return ATTRIBUTEID_EVALINT; 1204: "evaluatingintelligence" 1205: return 1206: goto1308 return ATTRIBUTEID_HEALING; 1207: "healing" 1208: return 1209: goto1308 return ATTRIBUTEID_FISHING; 1210: "fishing" 1211: return 1212: goto1308 return ATTRIBUTEID_FORENSICS; 1213: "forensicevaluation" 1214: return 1215: goto1308 return ATTRIBUTEID_HERDING; 1216: "herding" 1217: return 1218: goto1308 return ATTRIBUTEID_HIDING; 1219: "hiding" 1220: return 1221: goto1308 return ATTRIBUTEID_PROVOCATION; 1222: "provocation" 1223: return 1224: goto1308 return ATTRIBUTEID_INSCRIPTION; 1225: "inscription" 1226: return 1227: goto1308 return ATTRIBUTEID_LOCKPICKING; 1228: "lockpicking" 1229: return 1230: goto1308 return ATTRIBUTEID_MAGERY; 1231: "magery" 1232: return 1233: goto1308 return ATTRIBUTEID_MAGICRESISTANCE; 1234: "magicresistance" 1235: return 1236: goto1308 return ATTRIBUTEID_TACTICS; 1237: "tactics" 1238: return 1239: goto1308 return ATTRIBUTEID_SNOOPING; 1240: "snooping" 1241: return 1242: goto1308 return ATTRIBUTEID_MUSICIANSHIP; 1243: "musicianship" 1244: return 1245: goto1308 return ATTRIBUTEID_POISONING; 1246: "poisoning" 1247: return 1248: goto1308 return ATTRIBUTEID_ARCHERY; 1249: "archery" 1250: return 1251: goto1308 return ATTRIBUTEID_SPIRITSPEAK; 1252: "spiritspeak" 1253: return 1254: goto1308 return ATTRIBUTEID_STEALING; 1255: "stealing" 1256: return 1257: goto1308 return ATTRIBUTEID_TAILORING; 1258: "tailoring" 1259: return 1260: goto1308 return ATTRIBUTEID_TAMING; 1261: "animaltaming" 1262: return 1263: goto1308 return ATTRIBUTEID_TASTEID; 1264: "tasteidentification" 1265: return 1266: goto1308 return ATTRIBUTEID_TINKERING; 1267: "tinkering" 1268: return 1269: goto1308 return ATTRIBUTEID_TRACKING; 1270: "tracking" 1271: return 1272: goto1308 return ATTRIBUTEID_VETERINARY; 1273: "veterinary" 1274: return 1275: goto1308 return ATTRIBUTEID_SWORDSMANSHIP; 1276: "swordsmanship" 1277: return 1278: goto1308 return ATTRIBUTEID_MACEFIGHTING; 1279: "macefighting" 1280: return 1281: goto1308 return ATTRIBUTEID_FENCING; 1282: "fencing" 1283: return 1284: goto1308 return ATTRIBUTEID_WRESTLING; 1285: "wrestling" 1286: return 1287: goto1308 return ATTRIBUTEID_LUMBERJACKING; 1288: "lumberjacking" 1289: return 1290: goto1308 return ATTRIBUTEID_MINING; 1291: "mining" 1292: return 1293: goto1308 return ATTRIBUTEID_MEDITATION; 1294: "meditation" 1295: return 1296: goto1308 return ATTRIBUTEID_STEALTH; 1297: "stealth" 1298: return 1299: goto1308 return ATTRIBUTEID_REMOVETRAP; 1300: "removetrap" 1301: return 1302: goto1308 return ATTRIBUTEID_NECROMANCY; 1303: "necromancy" 1304: return 1305: goto1308 return ATTRIBUTEID_CHIVALRY; 1306: "chivalry" 1307: return var ret := error; 1308: decl local #1 1309: error 1310: := 1311: # ret.+errortext := "No equivalent attributeid found for skillid " + skillid; 1312: local #1 1313: "errortext" 1314: .+ 1315: "No equivalent attributeid found for skillid " 1316: local #0 1317: + 1318: := # return ret; 1319: local #1 1320: return