• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Action any [0.3+] fixed spellbook for gods

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,327
Solutions
27
Reaction score
2,703
Location
Poland
I've found some difficulties using spellbook on GOD, therefore I decided to rewrite it so GM+ won't get debug due to too large text.
This code doesn't modify anything for players, it removes information about requirements for gods to avoid client debug when displaying large message(GM+ see only name and words in spellbook).

Replace actions\scripts\other\spellbook.lua for this code:
LUA:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local t = {}
if(getPlayerAccess(cid) > 2) then
	for i = 0, getPlayerInstantSpellCount(cid) - 1 do
		local spell = getPlayerInstantSpellInfo(cid, i)
		table.insert(t, spell)
	end

	table.sort(t, function(a, b) return a.level < b.level end)
	local text = ""
	for i, spell in ipairs(t) do
		local line = ""
		text = text .. line .. "  " .. spell.words .. " - " .. spell.name .. "\n"
	end
doShowTextDialog(cid, item.itemid, text)
else
	for i = 0, getPlayerInstantSpellCount(cid) - 1 do
		local spell = getPlayerInstantSpellInfo(cid, i)
		if(spell.level ~= 0) then
			if(spell.manapercent > 0) then
				spell.mana = spell.manapercent .. "%"
			end

			table.insert(t, spell)
		end
	end

	table.sort(t, function(a, b) return a.level < b.level end)
	local text, prevLevel = "", -1
	for i, spell in ipairs(t) do
		local line = ""
		if(prevLevel ~= spell.level) then
			if(i ~= 1) then
				line = "\n"
			end

			line = line .. "Spells for Level " .. spell.level .. "\n"
			prevLevel = spell.level
		end

		text = text .. line .. "  " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n"
	end

	doShowTextDialog(cid, item.itemid, text)
	return true
end
return true
end
 
Back
Top