xxgoosexx
GoosioOT
- Joined
- Jul 10, 2007
- Messages
- 298
- Reaction score
- 2
These were tested on TFS 0.2, and should work, i'd recommend saving server before using tho just incase, and post comments and problems here.
The Scripts at the bottom have been tested to work with TFS 0.3 (still converting some from 0.2 to 0.3 so be patient)
Shows Online Players in ABC order[0.2]
Made because the original !online cut off like 90% of players on server
Ingame Highscores[0.2]
In Game Player Stats[0.2]
Shows level,magic level, skills vocation etc..change the vocation table to fit your needs
WORK WITH NEWEST SOURCES
Ingame player information[0.3]
online players[0.3]
(not needed but here anyways since its already provided somewhat in a different form)
Empty a player's house if they have not logged in for 10 days [0.3]
editted !online for 0.3 [Shows Dialog Box Instead]
Ingame highscores [0.3]
Guild Info [0.3]
Guild List [0.3]
The Scripts at the bottom have been tested to work with TFS 0.3 (still converting some from 0.2 to 0.3 so be patient)
Shows Online Players in ABC order[0.2]
Made because the original !online cut off like 90% of players on server
PHP:
--Adam 2008
--Collapser OT
function onSay(cid, words, param)
playerlist = ""
online = 0
dofile("./config.lua")
env = assert(luasql.mysql())
con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))
cur = assert(con:execute("SELECT `name`, `level` FROM `players` WHERE `online` = '1' ORDER BY `name` ASC;"))
row = cur:fetch({}, "a")
while row do
playerlist = playerlist.. "\n" .. row.name .. " [" .. row.level .. "]"
row = cur:fetch (row, "a")
online=online+1
end
cur:close()
dialog = "Players Online: "..online.." \n "..playerlist..""
doShowTextDialog(cid, 1026, dialog)
end
Ingame Highscores[0.2]
PHP:
--Adam 2008
--Collapser OT
local displayoutput = {"Level","Magic Level","Fist Fighting","Club Fighting","Sword Fighting","Axe Fighting","Distance Fighting","Shielding","Fishing"}
local itemtype = {levelid,magicid,fistid,clubid,swordid,axeid,distanceid,shieldid,fishid}
function onSay(cid, words, param)
number = 1
skilllist = ""
command = TRUE
dofile("./config.lua")
env = assert(luasql.mysql())
con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))
if param == "level" then
cur = assert(con:execute("SELECT `name`, `level` FROM `players` ORDER BY `level` DESC LIMIT 50;"))
display = 1
elseif param == "magic" then
cur = assert(con:execute("SELECT `name`, `maglevel` FROM `players` ORDER BY `maglevel` DESC LIMIT 50;"))
display = 2
elseif param == "fist" then
id = 0
display = 3
elseif param == "club" then
id = 1
display = 4
elseif param == "sword" then
id = 2
display = 5
elseif param == "axe" then
id = 3
display = 6
elseif param == "distance" then
id = 4
display = 7
elseif param == "shield" then
id = 5
display = 8
elseif param == "fish" then
display = 9
id = 6
else
error = "Highscore Commands:\n\n!highscores level\n!highscores magic\n!highscores fist\n!highscores club\n!highscores sword\n!highscores axe\n!highscores distance\n!highscores shield\n!highscores fist"
doShowTextDialog(cid, 1026, error)
command = FALSE
end
if command ~= FALSE then
if display == 1 then
row = cur:fetch({}, "a")
while row do
skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..row.name.." - "..row.level)
row = cur:fetch (row, "a")
number = number + 1
end
cur:close()
elseif display == 2 then
row = cur:fetch({}, "a")
while row do
skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..row.name.." - "..row.maglevel)
row = cur:fetch (row, "a")
number = number + 1
end
cur:close()
else
cur = assert(con:execute("SELECT `player_id`, `value`, `skillid` FROM `player_skills` WHERE `skillid` = "..id.." ORDER BY `value` DESC;"))
row = cur:fetch({}, "a")
while row do
query = assert(con:execute("SELECT `name` FROM `players` WHERE `id` = "..row.player_id..""))
sql = query:fetch({}, "a")
if sql ~= nil then
skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..sql.name.." - "..row.value)
number = number + 1
end
if number > 50 then
break
end
row = cur:fetch (row, "a")
end
cur:close()
end
dialog = ""..displayoutput[display].." Highscores: \n "..skilllist..""
doShowTextDialog(cid, itemtype[id], dialog)
end
end
In Game Player Stats[0.2]
Shows level,magic level, skills vocation etc..change the vocation table to fit your needs
PHP:
--Adam 2008
--Collapser OT
local vocations = {"None","Warlock","Priest","Archer","Warrior","Satanic Warlock","High Priest","Noble Archer","Lethal Warrior","Diabolic Warlock","Hallowed Priest","Highborn Archer","Ascended Warrior"}
local displayoutput = {"Fist: ","Club: ","Sword: ","Axe: ","Distance: ","Shielding: ","Fishing: "}
function onSay(cid, words, param)
dofile("./config.lua")
env = assert(luasql.mysql())
con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))
cur = assert(con:execute("SELECT `name`, `level`, `maglevel`, `id`, `vocation` FROM `players` WHERE `name` = '"..param.."' "))
row = cur:fetch({}, "a")
if row ~= nil then
vocation = vocations[row.vocation+1]
heading = "Name: "..row.name.."\nLevel: "..row.level.."\nVocation: "..vocation.."\n\n"
skilllist = "Magic: "..row.maglevel.."\n"
cur:close()
skills = assert(con:execute("SELECT `skillid`, `value` FROM `player_skills` WHERE `player_id` = '"..row.id.."' "))
skrow = skills:fetch({}, "a")
if skrow ~= nil then
while skrow do
skilllist = skilllist..displayoutput[skrow.skillid+1].." "..skrow.value.."\n"
skrow = skills:fetch (skrow, "a")
end
end
final = heading..skilllist
doShowTextDialog(cid, 1026, final)
else
doPlayerSendCancel(cid, "Invalid Player Name.")
end
end
WORK WITH NEWEST SOURCES
Ingame player information[0.3]
PHP:
--Adam 2009
--Goosio OT
local vocations = {"None","Sorcerer","Druid","Paladin","Knight","Master Sorcerer","Elder Druid","Royal Paladin","Elite Knight","Diabolic Warlock","Hallowed Priest","Highborn Archer","Ascended Warrior"}
local displayoutput = {"Fist: ","Club: ","Sword: ","Axe: ","Distance: ","Shielding: ","Fishing: "}
function onSay(cid, words, param)
local player = db.getResult("SELECT `name`, `level`, `maglevel`, `id`, `vocation` FROM `players` WHERE `group_id` < 2 and `name` = '"..param.."'")
if(player:getID() ~= -1) then
local name = player:getDataString("name")
local level = player:getDataInt("level")
local GUID = player:getDataInt("id")
local vocationid = player:getDataInt("vocation")
local maglevel = player:getDataInt("maglevel")
vocation = vocations[vocationid+1]
heading = "Name: "..name.."\nLevel: "..level.."\nVocation: "..vocation.."\n\n"
skilllist = "Magic: "..maglevel.."\n"
local skills = db.getResult("SELECT `skillid`, `value` FROM `player_skills` WHERE `player_id` = '"..GUID.."' ")
if(skills:getID() ~= -1) then
while(true) do
local skillid = skills:getDataInt("skillid")
local value = skills:getDataInt("value")
skilllist = skilllist..displayoutput[skillid+1].." "..value.."\n"
if not(skills:next()) then
break
end
end
skills:free()
end
final = heading..skilllist
doShowTextDialog(cid,5958, final)
player:free()
else
doPlayerSendCancel(cid, "Invalid Player Name.")
end
end
online players[0.3]
(not needed but here anyways since its already provided somewhat in a different form)
PHP:
--Adam 2008
--Goosio OT
function onSay(cid, words, param)
playerlist = ""
online_counter = 0
local online = db.getResult("SELECT `name`, `level` FROM `players` WHERE `online` = '1' and group_id < '2' ORDER BY `name` ASC;")
if(online:getID() ~= -1) then
while(true) do
local name = online:getDataString("name")
local level = online:getDataInt("level")
playerlist = playerlist.. "\n" .. name .. " [" .. level .. "]"
online_counter=online_counter+1
if not(online:next()) then
break
end
end
end
dialog = "Players Online: "..online_counter.." \n "..playerlist..""
doShowTextDialog(cid, 1026, dialog)
return TRUE
end
Empty a player's house if they have not logged in for 10 days [0.3]
PHP:
--Adam 2008
--Goosio OT
local safelist = {1,2,6,9,10,11}
function onSay(cid, words, param)
if getPlayerGroupId(cid) > 2 then
pdelete = "Inactive Players With Houses:\n\n"
days = 10*3600*24
t=os.date('*t')
local house = db.getResult("SELECT `owner`,`id` FROM `houses`")
if(house:getID() ~= -1) then
while (true) do
local owner = house:getDataInt("owner")
local hid = house:getDataInt("id")
local player = db.getResult("SELECT `id`,`name`,`lastlogin` FROM `players` WHERE `id` = '"..owner.."' ")
if(player:getID() ~= -1) then
local lastlogin = player:getDataInt("lastlogin")
local pid = player:getDataInt("id")
local name = player:getDataString("name")
time=os.time(t) - lastlogin
offline = time - days
if offline >= 0 then
pdelete = pdelete.."House #"..hid.." owned by "..name.."\n"
if isInArray(safelist,hid) == FALSE then
setHouseOwner(hid, 0)
end
end
player:free()
end
if not(house:next()) then
break
end
end
house:free()
doShowTextDialog(cid, 5958, pdelete)
else
doPlayerSendCancel(cid, "Error.")
end
end
return TRUE
end
editted !online for 0.3 [Shows Dialog Box Instead]
PHP:
local config = {
showGamemasters = getConfigInfo('displayGamemastersWithOnlineCommand')
}
function onSay(cid, words, param)
local players = getPlayersOnline()
local strings = {}
local pos = 1
local count = 0
local tmp = TRUE
for i, pid in ipairs(players) do
if(tmp == TRUE) then
if(i > pos * 7) then
pos = pos + 1
end
if(strings[pos] == nil) then
strings[pos] = ""
line = ""
end
end
tmp = TRUE
if((getBooleanFromString(config.showGamemasters) == FALSE and getPlayerCustomFlagValue(pid, PlayerCustomFlag_GamemasterPrivileges) == TRUE and getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) or (isPlayerGhost(pid) == TRUE and getPlayerAccess(pid) > getPlayerAccess(cid))) then
count = count + 1
tmp = FALSE
else
strings[pos] = strings[pos] .. "\n" .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]"
end
end
for i, string in ipairs(strings) do
if(string ~= "") then
doShowTextDialog(cid, 8918, "Players online: "..(#players- count).."\n"..string)
end
end
return TRUE
end
Ingame highscores [0.3]
PHP:
--Adam 2009
--Goosio OT
local displayoutput = {"Level","Magic Level","Fist Fighting","Club Fighting","Sword Fighting","Axe Fighting","Distance Fighting","Shielding","Fishing"}
local itemtype = {9969,9933,5896,8929,8932,7388,8849,8906,2580}
function onSay(cid, words, param)
number = 1
param = string.lower(param)
skilllist = ""
command = TRUE
if param == "level" then
display = 1
elseif param == "magic" then
display = 2
elseif param == "fist" then
id = 0
display = 3
elseif param == "club" then
id = 1
display = 4
elseif param == "sword" then
id = 2
display = 5
elseif param == "axe" then
id = 3
display = 6
elseif param == "distance" then
id = 4
display = 7
elseif param == "shield" then
id = 5
display = 8
elseif param == "fish" then
display = 9
id = 6
else
error = 'Highscore Commands:\n\n!highscores level\n!highscores magic\n!highscores fist\n!highscores club\n!highscores sword\n!highscores axe\n!highscores distance\n!highscores shield\n!highscores fish'
doShowTextDialog(cid, 5958, error)
command = FALSE
end
if command ~= FALSE then
if display == 1 then
local player = db.getResult("SELECT `name`, `level` FROM `players` WHERE group_id < '2' ORDER BY `level` DESC LIMIT 50;")
if(player:getID() ~= -1) then
while (true) do
local name = player:getDataString("name")
local level = player:getDataInt("level")
skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..level)
number = number + 1
if not(player:next()) then
break
end
end
player:free()
end
elseif display == 2 then
local player = db.getResult("SELECT `name`, `maglevel` FROM `players` WHERE group_id < '2' ORDER BY `maglevel` DESC LIMIT 50;")
if(player:getID() ~= -1) then
while (true) do
local name = player:getDataString("name")
local maglevel = player:getDataInt("maglevel")
skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..maglevel)
if not(player:next()) then
break
end
number = number + 1
end
end
player:free()
else
local skills = db.getResult("SELECT `player_id`, `value`, `skillid` FROM `player_skills` WHERE `skillid` = "..id.." ORDER BY `value` DESC;")
while (true) do
local GUID = skills:getDataInt("player_id")
local value = skills:getDataInt("value")
local skillid = skills:getDataInt("skillid")
local player = db.getResult("SELECT `name` FROM `players` WHERE `id` = "..GUID.." and group_id < '2' ")
if(player:getID() ~= -1) then
local name = player:getDataString("name")
skilllist = skilllist.. "\n#"..string.format("%5s",number.." "..name.." - "..value)
number = number + 1
player:free()
end
if number > 50 then
break
end
if not(skills:next()) then
break
end
end
skills:free()
end
dialog = ""..displayoutput[display].." Highscores: \n "..skilllist..""
doShowTextDialog(cid, itemtype[display], dialog)
end
end
Guild Info [0.3]
PHP:
--Adam 2008
--Collapser OT
function onSay(cid, words, param)
local guildid = getGuildId(param)
local guild = db.getResult("SELECT `id`,`guild_id`,`name` FROM `guild_ranks` WHERE `guild_id` = "..guildid.." ;")
if(guild:getID() ~= -1) then
local guildname = db.getResult("SELECT `name` FROM `guilds` WHERE id = '"..guildid.."' ;")
guildlist = guildname:getDataString("name")
while (true) do
local guild_id = guild:getDataInt("guild_id")
local id = guild:getDataInt("id")
local rankname = guild:getDataString("name")
local players = db.getResult("SELECT `name`,`guildnick` FROM `players` WHERE `rank_id` = "..id.." ORDER BY `name` ;")
if(players:getID() ~= -1) then
guildlist = guildlist.."\n\n"..rankname
while (true) do
local pname = players:getDataString("name")
local guildnick = players:getDataString("guildnick")
if guildnick ~= "" then
guildlist = guildlist.."\n "..pname.." ("..guildnick..")"
else
guildlist = guildlist.."\n "..pname
end
if not(players:next()) then
break
end
end
players:free()
end
if not(guild:next()) then
break
end
end
guild:free()
guildname:free()
doShowTextDialog(cid, 5958, guildlist)
else
doPlayerSendCancel(cid, "Guild Does Not Exist.")
end
return TRUE
end
Guild List [0.3]
PHP:
--Adam 2008
--Collapser OT
function onSay(cid, words, param)
guildlist = "Guilds:\n"
local guilds = db.getResult("SELECT `name`FROM `guilds` ORDER BY `name`;")
if(guilds:getID() ~= -1) then
while (true) do
local name = guilds:getDataString("name")
guildlist = guildlist.."\n"..name
if not(guilds:next()) then
break
end
end
guilds:free()
doShowTextDialog(cid, 5958, guildlist)
end
return TRUE
end
Last edited: