• 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!

help adding a script

1º Open data/lib open file name 050-function.lua
open and paste this at the beginning of the script
PHP:
function doPlayerSetSkill(cid, skill, amount)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true) 
db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";")  
return TRUE
end
 
function doPlayerSetMagic(cid, amount)
local pid = getPlayerGUID(cid)  
doRemoveCreature(cid,true) 
db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid)
return TRUE
end

2º Now go to data/talkactions open talkactions.xml
add this line
PHP:
talkaction words="!buyskill;/buyskill" event="script" value="buyskill.lua"/>
3º now go to data/talkactions/scripts create file .lua name buyskill.lua open and paste this
PHP:
function onSay(cid, words, param)
-- Changeable ------------------------------------------------------------------
local add = 10 -- how much skills add.
local druid_id = getPlayerVocation(cid, 1)
local sorcerer_id = getPlayerVocation(cid, 2)
local knight_id = getPlayerVocation(cid, 3)
local paladin_id = getPlayerVocation(cid, 4)
-- Price Changeable ------------------------------------------------------------
local itemid = 9971 -- gold ignots ID
local config = {
		mlvl = 10, -- how many gold ignot per skill
		dist = 10,
		sword = 10,
		club = 10,
		axe = 10
}
config.mlvl = getBooleanFromString(config.mlvl)
config.dist = getBooleanFromString(config.dist)
config.sword = getBooleanFromString(config.sword)
config.club = getBooleanFromString(config.club)
config.axe = getBooleanFromString(config.axe)
--------------------------------------------------------------------------------
-- Real Animation
-- Shows Message - "Skills" when bought?
local msgs = "no" -- if set yes, the msg is showing only near of player (1sqm x 1sqm) 
--------------------------------------------------------------------------------
 
-- here check for Skill -> Magic Levels
if getPlayerItem(cid, itemid, config.mlvl) == true then
	if druid_id and sorcerer_id and getPlayerSkill(cid, 7) <= 200 then -- the limit of skill
		return doPlayerSendCancel(cid, "You cannot buy magic levels, when your magic level is higher than 200.")
	else
		doPlayerSetMagic(cid, getPlayerMagLevel(cid)+add)
		doPlayerRemoveItem(cid, itemid, config.mlvl)
	if(not msgs) then
		doSendAnimatedText(pos, "Skills!", 18)
	else
			for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
			if(isPlayer(tid)) then
				doSendAnimatedText(pos, "Skills!", 18)
	end
	end
	end
end
else
doPlayerSendTextMessage(cid,22,"You don't have enough gold ignots. It cost " .. config.mlvl .. " ignots.")
end
-- here check for Skill -> Distance
if getPlayerItem(cid, itemid, config.dist) == true then
	if paladin_id and getPlayerSkill(cid, 4) <= 350 then
		return doPlayerSendCancel(cid, "You cannot buy distance fighting, when your distance is higher than 350.")
	else
		doPlayerSetSkill(cid, getPlayerSkill(cid, 4)+add)
		doPlayerRemoveItem(cid, itemid, config.dist)
	if(not msgs) then
		doSendAnimatedText(pos, "Skills!", 18)
	else
			for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
			if(isPlayer(tid)) then
				doSendAnimatedText(pos, "Skills!", 18)
	end
	end
	end
end
else
doPlayerSendTextMessage(cid,22,"You don't have enough gold ignots. It cost " .. config.dist .. " ignots.")
end
-- here check for Skill -> Sword
if getPlayerItem(cid, itemid, config.sword) == true then
	if knight_id and getPlayerSkill(cid, 1) <= 350 then
		return doPlayerSendCancel(cid, "You cannot buy sword fighting, when your sword is higher than 350.")
	else
		doPlayerSetSkill(cid, getPlayerSkill(cid, 1)+add)
		doPlayerRemoveItem(cid, itemid, config.sword)
	if(not msgs) then
		doSendAnimatedText(pos, "Skills!", 18)
	else
			for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
			if(isPlayer(tid)) then
				doSendAnimatedText(pos, "Skills!", 18)
	end
	end
	end
end
else
doPlayerSendTextMessage(cid,22,"You don't have enough gold ignots. It cost " .. config.sword .. " ignots.")
end
-- here check for Skill -> Club
if getPlayerItem(cid, itemid, config.club) == true then
	if knight_id and getPlayerSkill(cid, 2) <= 350 then
		return doPlayerSendCancel(cid, "You cannot buy club fighting, when your club is higher than 350.")
	else
		doPlayerSetSkill(cid, getPlayerSkill(cid, 2)+add)
		doPlayerRemoveItem(cid, itemid, config.club)
	if(not msgs) then
		doSendAnimatedText(pos, "Skills!", 18)
	else
			for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
			if(isPlayer(tid)) then
				doSendAnimatedText(pos, "Skills!", 18)
	end
	end
	end
end
else
doPlayerSendTextMessage(cid,22,"You don't have enough gold ignots. It cost " .. config.club .. " ignots.")
end
-- here check for Skill -> Axe
if getPlayerItem(cid, itemid, config.axe) == true then
	if knight_id and getPlayerSkill(cid, 3) <= 350 then
		return doPlayerSendCancel(cid, "You cannot buy axe fighting, when your axe is higher than 350.")
	else
		doPlayerSetSkill(cid, getPlayerSkill(cid, 3)+add)
		doPlayerRemoveItem(cid, itemid, config.axe)
	if(not msgs) then
		doSendAnimatedText(pos, "Skills!", 18)
	else
			for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
			if(isPlayer(tid)) then
				doSendAnimatedText(pos, "Skills!", 18)
	end
	end
	end
end
else
doPlayerSendTextMessage(cid,22,"You don't have enough gold ignots. It cost " .. config.axe .. " ignots.")
end
-- done
return true
end

You have Problems - Write again..
 
Back
Top