Script Function: Q4JG
From Ultima Online: The Second Age
function void Q4JG(obj user, loc place) { loc Q4VS = getLocation(user); faceHere(user, getDirectionInternal(Q4VS, place)); int Q5VE = getSkillLevelReal(user, 0x19); int Q4B3 = dice(0x01, 0x03E8); if (Q4B3 < Q5VE) { list Q4YN; getMobsInRange(Q4YN, place, 0x02); for(int x = 0x00; x < numInList(Q4YN); x++) { if (hasScript(Q4YN[x], "reminvis")) { doMobAnimation(Q4YN[x], 0x376A, 0x09, 0x28, 0x00, 0x00); } } list Q4YM; getObjectsInRange(Q4YM, place, 0x02); for(int y = 0x00; y < numInList(Q4YM); y++) { if (hasScript(Q4YM[y], "reminvis")) { doLocAnimation(getLocation(Q4YM[y]), 0x376A, 0x09, 0x14, 0x00, 0x00); } } } int Q4B0 = dice(0x01, 0x03E8); if ((0x03E8 - Q5VE) < Q4B0) { int Q4Y0 = dice(0x0A, 0x3C); if ((Q4Y0 + Q5VE) < 0x03E8) { addSkillLevel(user, 0x0E, Q4Y0); } else { setSkillLevel(user, 0x0E, 0x03E8); } } return (); }