Difference between revisions of "Script: Teleportbase"
From Ultima Online: The Second Age
(Created page with " <span style="color:#0000FF">inherits</span> spelskil; <span style="color:#0000FF">function</span> <span style="color:#0000FF">int</span> Q46G(<span style="color:#0000FF...") |
|||
Line 89: | Line 89: | ||
<span style="color:#0000FF">int</span> Q4NA; | <span style="color:#0000FF">int</span> Q4NA; | ||
<span style="color:#0000FF">loc</span> Q4VS = [[Engine Function:_getLocation|<span style="color:#FF0000;font-weight:bold">getLocation</span>]](user); | <span style="color:#0000FF">loc</span> Q4VS = [[Engine Function:_getLocation|<span style="color:#FF0000;font-weight:bold">getLocation</span>]](user); | ||
− | <span style="color:#0000FF">int</span> Q5ZL = [[ | + | <span style="color:#0000FF">int</span> Q5ZL = [[Engine Function:_teleport|<span style="color:#FF0000;font-weight:bold">teleport</span>]](user, there); |
<span style="color:#0000FF">if</span> (Q5ZL) | <span style="color:#0000FF">if</span> (Q5ZL) | ||
{ | { |
Latest revision as of 07:13, 19 October 2018
inherits spelskil;
function int Q46G(loc place, int range) { list Q5FJ; getObjectsInRange(Q5FJ, place, range); int num = numInList(Q5FJ); for(int i = 0x00; i < num; i++) { obj it = Q5FJ[i]; if (isMultiComp(it)) { return (0x01); } } return (0x00); }
function loc Q4TC(obj user, loc place) { loc Q4OT = 0x00, 0x00, (0x00 - 0x80); if (!isInMap(place)) { return (Q4OT); } int Q4OU = 0x00; if (getDistanceInTiles(getLocation(user), place) > 0x0B) { systemMessage(user, "That location is too far away"); Q4OU = 0x01; } if (!Q4OU && (getEncumbrance(user) > 0x64)) { systemMessage(user, "Thou art too encumbered to move."); Q4OU = 0x01; } if (!Q4OU && (canSeeLoc(user, place) != 0x01)) { systemMessage(user, "Target cannot be seen."); Q4OU = 0x01; } if (!Q4OU) { loc target = place; list Q5HS; getMobsAt(Q5HS, target); int Q4XW = getHeight(user); int Q48V = getZ(target); int Q63L = Q48V + 0x08; int Q4U1 = findGoodZ(target, Q48V, Q63L, Q4XW, 0x01); setZ(target, Q4U1); if (Q4U1 == (0x00 - 0x80)) { systemMessage(user, "Cannot teleport to that spot."); return (Q4OT); } if ((0x07 == canExistAt(target, Q4XW, 0x01)) && (!Q4ZQ(target))) { if (0x00 == numInList(Q5HS)) { if (Q46G(target, 0x05)) { systemMessage(user, "Cannot teleport to that spot."); return (Q4OT); } return (target); } else { systemMessage(user, "Someone is standing there!"); return (Q4OT); } } else { systemMessage(user, "Cannot teleport to that spot."); return (Q4OT); } } return (Q4OT); }
function int Q4MM(obj user, loc there) { int Q5NC = 0x00; there = Q4TC(user, there); if (getZ(there) != (0x00 - 0x80)) { int Q4NA; loc Q4VS = getLocation(user); int Q5ZL = teleport(user, there); if (Q5ZL) { doLocAnimation(Q4VS, 0x3728, 0x0A, 0x0A, 0x00, 0x00); doLocAnimation(there, 0x3728, 0x0A, 0x0A, 0x00, 0x00); sfx(there, 0x01FE, 0x00); Q5NC = 0x01; } else { bark(user, "I can't teleport there!"); } } Q5UQ(this); return (Q5NC); }