Jump to content

gang panel problem


orcun99

Recommended Posts

function gangCreate(player, commandname, gangname, ...)
        gangname:lower()
	if arg.n == 0 and gangname then
		local playerAccount = getPlayerAccount(player)
		if not getAccountData(playerAccount, "gang") then
			local dbName = "WSSgang_" .. gangname .. "_members"
			local existingGangsWithName = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)
			local existingGangsWithName2 = executeSQLQuery("SELECT * FROM sqlite_master WHERE type='table' AND name=?", gangname)
			
			if existingGangsWithName[1] or existingGangsWithName2[1] then
				exports.WSScommands:sendMessage("Çete Adı Zaten kullanılıyor.", 255, 255, 0, player)
			else
				local query = executeSQLQuery("CREATE TABLE ? (accountname TEXT, lastname TEXT, lastlogin NUMERIC, warnings NUMERIC, level NUMERIC)", dbName )
					
				if query then
					executeSQLQuery("INSERT INTO WSSgangdb VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", gangname, 0, "Default home screen text, change me using the button below!", 5, 5, 5, 5, 5, 0, 5, 5)
					local realTime = getRealTime()
					
					local month = tostring(realTime.month + 1)
					local monthday = tostring(realTime.monthday)
					
					if #month == 1 then month = "0" .. month end
					if #monthday == 1 then monthday = "0" .. monthday end
					
					local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday

					executeSQLQuery("INSERT INTO ? VALUES(?, ?, ?, ?, ?)", dbName, getAccountName(playerAccount), getPlayerName(player), timestamp, 0, 5)
					setAccountData(playerAccount, "gang", gangname)
					setElementData(player, "gang", gangname)
					
					exports.WSScommands:sendMessage(getPlayerName(player) .. " artık bu çetede " .. gangname .. ".", 0, 255, 0, root) 

					exports.WSScommands:sendMessage("çete başarılı bir şekilde kuruldu. .", 0, 255, 0, player)
				else
					exports.WSScommands:sendMessage("Bu isimde bir çete zaten var.", 255, 255, 0, player)
				end
			end
		else
			exports.WSScommands:sendMessage("Yeni bir çete oluşturmak için mevcut olandan çık", 255, 255, 0, player)
		end
	else
		exports.WSScommands:sendMessage("Geçersiz bağımsız değişkenler. Çete adı boşluk içeremez.", 255, 255, 0, player)
	end
end
addCommandHandler("create", gangCreate)

function gangPanel(player)
	local playerAccount = getPlayerAccount(player)
	if getAccountData(playerAccount, "gang") then
		triggerClientEvent(player, "displayPanel", player)
		populateGangPanel(player)
	else
		exports.WSScommands:sendMessage("Çeten yok /create yazarak oluşturabilirsin.", 255, 255, 0, player)
	end
end
addCommandHandler("gang", gangPanel)
addCommandHandler("squad", gangPanel)
addCommandHandler("company", gangPanel)

function populateGangPanel(player)
	local playerAccount = getPlayerAccount(player)
	local gangname = getAccountData(playerAccount, "gang")
		
	local dbName = "WSSgang_" .. gangname .. "_members"
		
	local ganginfo = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)
	local memberinfo = executeSQLQuery("SELECT * FROM ?", dbName)
	
	for i,v in ipairs(memberinfo) do
		local account = getAccount(v['accountname'])
		if account then
			local lastLogin = getAccountData(account, "lastlogin") or v['lastlogin']
			local lastNick = getAccountData(account, "lastnick") or v['lastname']
			
			local player = getAccountPlayer(account)
			local online = false
			if player then online = true end
			
			memberinfo[i]['lastname'] = lastNick
			memberinfo[i]['lastlogin'] = lastLogin
			memberinfo[i]['online'] = online
		end
	end
	triggerClientEvent(player, "populatePanel", player, ganginfo[1], memberinfo, getAccountName(getPlayerAccount(player)))
end

function getPlayerLevel(player)
	local playerAccount = getPlayerAccount(player)
	local playerAccountName = getAccountName(playerAccount)
	
	local gangname = getAccountData(playerAccount, "gang")
	if gangname then
		local dbName = "WSSgang_" .. gangname .. "_members"
		local playerinfo = executeSQLQuery("SELECT * FROM ? WHERE `accountname` = ?", dbName, playerAccountName)
		return playerinfo[1]["level"]
	else
		return false
	end
end

function getPlayerGang(player)
	local playerAccount = getPlayerAccount(player)
	local gangname = getAccountData(playerAccount, "gang")
	return gangname
end

function getGangInfo(gangname)
	local ganginfo = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)
	if ganginfo[1] then
		return ganginfo[1]
	else
		return false
	end
end

-- ALL THE HANDLER FUNCTIONS ARE HERE!

function saveMOTD(motd)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['motdperm']) then
			executeSQLQuery("UPDATE `WSSgangdb` SET `hometext` = ? WHERE `gangname` = ?",motd, getPlayerGang(source))
			populateGangPanel(source)
		end
	end
end
addEvent("_saveMOTD", true)
addEventHandler("_saveMOTD", getRootElement(), saveMOTD)

function levelPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > (tonumber(playerTo[1]['level']) + 1) and tonumber(playerTo[1]['level']) < 5 then
					local newlevel = tonumber(playerTo[1]['level']) + 1
					executeSQLQuery("UPDATE ? SET `level` = ? WHERE `accountname` = ?", dbName, newlevel, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_levelPlayer", true)
addEventHandler("_levelPlayer", getRootElement(), levelPlayer)

function unlevelPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > tonumber(playerTo[1]['level']) and tonumber(playerTo[1]['level']) > 0 then
					local newlevel = tonumber(playerTo[1]['level']) - 1
					executeSQLQuery("UPDATE ? SET `level` = ? WHERE `accountname` = ?", dbName, newlevel, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_unlevelPlayer", true)
addEventHandler("_unlevelPlayer", getRootElement(), unlevelPlayer)

function warnPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > tonumber(playerTo[1]['level']) and tonumber(playerTo[1]['warnings']) < 5 then
					local newwarn = tonumber(playerTo[1]['warnings']) + 1
					executeSQLQuery("UPDATE ? SET `warnings` = ? WHERE `accountname` = ?", dbName, newwarn, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_warnPlayer", true)
addEventHandler("_warnPlayer", getRootElement(), warnPlayer)

function unwarnPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > (tonumber(playerTo[1]['level'])) and tonumber(playerTo[1]['warnings']) > 0 then
					local newwarn = tonumber(playerTo[1]['warnings']) - 1
					executeSQLQuery("UPDATE ? SET `warnings` = ? WHERE `accountname` = ?", dbName, newwarn, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_unwarnPlayer", true)
addEventHandler("_unwarnPlayer", getRootElement(), unwarnPlayer)

function depositMoney(money)
	if tonumber(money) > 0 then
		if getPlayerGang(source) then
			local ganginfo = getGangInfo(getPlayerGang(source))
			local playerlevel = getPlayerLevel(source)
			if playerlevel >= tonumber(ganginfo['depositperm']) then
				local newmoney = tonumber(ganginfo['money']) + tonumber(money)
				if getPlayerMoney(source) >= tonumber(money) then
					executeSQLQuery("UPDATE `WSSgangdb` SET `money` = ? WHERE `gangname` = ?", newmoney, getPlayerGang(source))
					exports.WSScommands:takeMoney(source, tonumber(money))
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You don't have enough money.")
					populateGangPanel(source)
				end
			end
		end
	end
end
addEvent("_depositMoney", true)
addEventHandler("_depositMoney", getRootElement(), depositMoney)

function withdrawMoney(money)
	if tonumber(money) > 0 then
		if getPlayerGang(source) then
			local ganginfo = getGangInfo(getPlayerGang(source))
			local playerlevel = getPlayerLevel(source)
			if playerlevel >= tonumber(ganginfo['withdrawperm']) then
				local newmoney = tonumber(ganginfo['money']) - tonumber(money)
				if tonumber(ganginfo['money']) >= tonumber(money) then
					executeSQLQuery("UPDATE `WSSgangdb` SET `money` = ? WHERE `gangname` = ?", newmoney, getPlayerGang(source))
					exports.WSScommands:giveMoney(source, tonumber(money))
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: There isn't enough money in the gang account.")
					populateGangPanel(source)
				end
			end
		end
	end
end
addEvent("_withdrawMoney", true)
addEventHandler("_withdrawMoney", getRootElement(), withdrawMoney)

function inviteStart()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['inviteperm']) then
			local playas = getElementsByType("player")
			local ganglessnubs = {}
			for i, v in ipairs(playas) do
				if not getAccountData(getPlayerAccount(v), "gang") then
					table.insert(ganglessnubs, getPlayerName(v))
				end
			end
			triggerClientEvent(source, "displayInvite", source, ganglessnubs)
		end
	end
end
addEvent("_invitePlayer", true)
addEventHandler("_invitePlayer", getRootElement(), inviteStart)

function inviteStep2(playa)
	if getPlayerGang(source) then
		local playa = getPlayerFromName(playa)
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['inviteperm']) then
			if playa and isElement(playa) and getElementType(playa) == "player" and not getAccountData(getPlayerAccount(playa), "gang") then
				triggerClientEvent(playa, "inviteReceive", source, getPlayerGang(source))
			end
		end
	end
end
addEvent("_inviteStep2", true)
addEventHandler("_inviteStep2", getRootElement(), inviteStep2)

function inviteFin(sender, gangname)
	local sender = getPlayerFromName(sender)
	local ganginfo = getGangInfo(getPlayerGang(sender))
	local playerAccount = getPlayerAccount(source)
	
	if not getAccountData(playerAccount, "gang") then	
		local realTime = getRealTime()
		
		local month = tostring(realTime.month + 1)
		local monthday = tostring(realTime.monthday)
		
		if #month == 1 then month = "0" .. month end
		if #monthday == 1 then monthday = "0" .. monthday end
		
		local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday
		
		local dbName = "WSSgang_" .. gangname .. "_members"
		
		executeSQLQuery("INSERT INTO ? VALUES(?, ?, ?, ?, ?)", dbName, getAccountName(playerAccount), getPlayerName(source), timestamp, 0, 0)
		
		setAccountData(playerAccount, "gang", gangname)
		setElementData(source, "gang", gangname)
		
		exports.WSScommands:sendMessage(getPlayerName(source) .. " artık bu çetede " .. gangname .. ".", 0, 255, 0, root) 
		
		populateGangPanel(source)
		if isElement(sender) then
			populateGangPanel(sender)
		end
	else
		triggerClientEvent(source, "errorDisplay", source, "Error: You're already in a gang.")
	end
end
addEvent("_inviteFin", true)
addEventHandler("_inviteFin", getRootElement(), inviteFin)

function leaveGang()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local playerlevel = getPlayerLevel(source)
		if playerlevel < 5 then
			local dbName = "WSSgang_" .. gangname .. "_members"
			local accName = getAccountName(getPlayerAccount(source))
			executeSQLQuery("DELETE FROM ? WHERE `accountname`=?", dbName, accName)
			
			setAccountData(getPlayerAccount(source), "gang", false)
			setElementData(source, "gang", false)
			exports.WSScommands:sendMessage(getPlayerName(source) .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 
		else
			triggerClientEvent(source, "errorDisplay", source, "Error: You can't leave if you are the leader. You must give leadership to someone else first.")
		end
	end
end
addEvent("_leaveGang", true)
addEventHandler("_leaveGang", getRootElement(), leaveGang)

function kickPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		local gangname = ganginfo['gangname']
		if playerlevel >= tonumber(ganginfo['kickperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > (tonumber(playerTo[1]['level'])) then
					local kickedAccount = getAccount(accountname)
					
					setAccountData(kickedAccount, "gang", false)
					if getAccountPlayer(kickedAccount) then
						setElementData(getAccountPlayer(kickedAccount), "gang", false)
					end

					executeSQLQuery("DELETE FROM ? WHERE `accountname` = ?", dbName, accountname)
					exports.WSScommands:sendMessage(playerTo[1]['lastname'] .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 
					
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't kick players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_kickPlayer", true)
addEventHandler("_kickPlayer", getRootElement(), kickPlayer)

function transferLeadership(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		local gangname = ganginfo['gangname']
		if playerlevel == 5 then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				local tranferAccount = getAccount(playerTo[1]['accountname'])

				executeSQLQuery("UPDATE ? SET `level` = 4 WHERE `accountname` = ?", dbName, getAccountName(getPlayerAccount(source)))
				executeSQLQuery("UPDATE ? SET `level` = 5 WHERE `accountname` = ?", dbName, accountname)

				populateGangPanel(source)
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_transferLeadership", true)
addEventHandler("_transferLeadership", getRootElement(), transferLeadership)

function deleteGang()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['deleteperm']) then
			local dbName = "WSSgang_" .. gangname .. "_members"
			local accName = getAccountName(getPlayerAccount(source))

			local players = executeSQLQuery("SELECT * FROM ?", dbName)
			for i, v in ipairs(players) do
				local thisAccount = getAccount(v['accountname'])
				setAccountData(thisAccount, "gang", false)
				if getAccountPlayer(thisAccount) then
				setElementData(getAccountPlayer(thisAccount), "gang", false)
				exports.WSScommands:sendMessage(v['lastname'] .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 
			end
			
			executeSQLQuery("DELETE FROM `WSSgangdb` WHERE `gangname` =?", gangname)
			executeSQLQuery("DROP TABLE ?", dbName)
		end
	end
end
end
addEvent("_deleteGang", true)
addEventHandler("_deleteGang", getRootElement(), deleteGang)

function saveSettings(inviteperm, warnperm, kickperm, levelperm, depositperm, withdrawperm, motdperm, deleteperm)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local playerlevel = getPlayerLevel(source)
		if playerlevel == 5 then
			if inviteperm >= 0 and inviteperm <= 5 and warnperm >= 0 and warnperm <= 5 and kickperm >= 0 and kickperm <= 5 and levelperm >= 0 and levelperm <= 5 and depositperm >= 0 and depositperm <= 5 and withdrawperm >= 0 and withdrawperm <= 5 and motdperm >= 0 and motdperm <= 5 and deleteperm >= 0 and deleteperm <= 5 then
				executeSQLQuery("UPDATE `WSSgangdb` SET `inviteperm`=?,`warnperm`=?,`kickperm`=?,`levelperm`=?,`depositperm`=?,`withdrawperm`=?,`motdperm`=?,`deleteperm`=? WHERE `gangname`=?",inviteperm, warnperm, kickperm, levelperm, depositperm, withdrawperm, motdperm, deleteperm, gangname)
				populateGangPanel(source)
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Only numbers between 0 and 5 are allowed.")
			end
		end
	end
end
addEvent("_saveSettings", true)
addEventHandler("_saveSettings", getRootElement(), saveSettings)

-- Extra functions

function onLoginInformation()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local dbName = "WSSgang_" .. gangname .. "_members"
		
		local playerName = getPlayerName(source)
		local playerAccount = getPlayerAccount(source)
		local accName = getAccountName(source)
			
		local realTime = getRealTime()
				
		local month = tostring(realTime.month + 1)
		local monthday = tostring(realTime.monthday)
			
		if #month == 1 then month = "0" .. month end
		if #monthday == 1 then monthday = "0" .. monthday end
				
		local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday
		
		executeSQLQuery("UPDATE ? SET lastname=?,lastlogin=? WHERE `accountname`=?", dbName, playerName, timestamp, accName)
	end
end
addEvent("onPlayerLoginSuccess", true)
addEventHandler("onPlayerLoginSuccess", getRootElement(), onLoginInformation)

-- Clanchat

function onPlayerClanchat(player, command, ...)
	if getPlayerGang(player) then
		local ganginfo = getGangInfo(getPlayerGang(player))
		local gangname = ganginfo['gangname']
		local dbName = "WSSgang_" .. gangname .. "_members"
		
		local message = table.concat(arg, " ")
		
		local gangmembers = executeSQLQuery("SELECT * FROM ?", dbName)
		for i,v in ipairs(gangmembers) do
			local accname = v['accountname']
			local acc = getAccount(accname)
			if getAccountPlayer(acc) then
				outputChatBox("*ClanChat*" .. getPlayerName(player) .. ": " .. message, getAccountPlayer(acc), 255, 100, 0, true)
			end
		end
	end
end
addCommandHandler("cc", onPlayerClanchat)

 

 

problem is for example:

a player : /create test   okay no problem succesfly create test gang   but

b player: /create TEST then he join  a player gangs ..  

 

sorry for my bad english 

Edited by orcun99
Link to comment

first, delete your Gang's database

then try this:

 

function gangCreate(player, commandname, gangname, ...)
    gangname = gangname:lower()
	if arg.n == 0 and gangname then
		local playerAccount = getPlayerAccount(player)
		if not getAccountData(playerAccount, "gang") then
			local dbName = "WSSgang_" .. gangname .. "_members"
			local existingGangsWithName = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)
			local existingGangsWithName2 = executeSQLQuery("SELECT * FROM sqlite_master WHERE type='table' AND name=?", gangname)
			
			if existingGangsWithName[1] or existingGangsWithName2[1] then
				exports.WSScommands:sendMessage("Çete Adı Zaten kullanılıyor.", 255, 255, 0, player)
			else
				local query = executeSQLQuery("CREATE TABLE ? (accountname TEXT, lastname TEXT, lastlogin NUMERIC, warnings NUMERIC, level NUMERIC)", dbName )
					
				if query then
					executeSQLQuery("INSERT INTO WSSgangdb VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", gangname, 0, "Default home screen text, change me using the button below!", 5, 5, 5, 5, 5, 0, 5, 5)
					local realTime = getRealTime()
					
					local month = tostring(realTime.month + 1)
					local monthday = tostring(realTime.monthday)
					
					if #month == 1 then month = "0" .. month end
					if #monthday == 1 then monthday = "0" .. monthday end
					
					local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday

					executeSQLQuery("INSERT INTO ? VALUES(?, ?, ?, ?, ?)", dbName, getAccountName(playerAccount), getPlayerName(player), timestamp, 0, 5)
					setAccountData(playerAccount, "gang", gangname)
					setElementData(player, "gang", gangname)
					
					exports.WSScommands:sendMessage(getPlayerName(player) .. " artık bu çetede " .. gangname .. ".", 0, 255, 0, root) 

					exports.WSScommands:sendMessage("çete başarılı bir şekilde kuruldu. .", 0, 255, 0, player)
				else
					exports.WSScommands:sendMessage("Bu isimde bir çete zaten var.", 255, 255, 0, player)
				end
			end
		else
			exports.WSScommands:sendMessage("Yeni bir çete oluşturmak için mevcut olandan çık", 255, 255, 0, player)
		end
	else
		exports.WSScommands:sendMessage("Geçersiz bağımsız değişkenler. Çete adı boşluk içeremez.", 255, 255, 0, player)
	end
end
addCommandHandler("create", gangCreate)

function gangPanel(player)
	local playerAccount = getPlayerAccount(player)
	if getAccountData(playerAccount, "gang") then
		triggerClientEvent(player, "displayPanel", player)
		populateGangPanel(player)
	else
		exports.WSScommands:sendMessage("Çeten yok /create yazarak oluşturabilirsin.", 255, 255, 0, player)
	end
end
addCommandHandler("gang", gangPanel)
addCommandHandler("squad", gangPanel)
addCommandHandler("company", gangPanel)

function populateGangPanel(player)
	local playerAccount = getPlayerAccount(player)
	local gangname = getAccountData(playerAccount, "gang")
		
	local dbName = "WSSgang_" .. gangname .. "_members"
		
	local ganginfo = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)
	local memberinfo = executeSQLQuery("SELECT * FROM ?", dbName)
	
	for i,v in ipairs(memberinfo) do
		local account = getAccount(v['accountname'])
		if account then
			local lastLogin = getAccountData(account, "lastlogin") or v['lastlogin']
			local lastNick = getAccountData(account, "lastnick") or v['lastname']
			
			local player = getAccountPlayer(account)
			local online = false
			if player then online = true end
			
			memberinfo[i]['lastname'] = lastNick
			memberinfo[i]['lastlogin'] = lastLogin
			memberinfo[i]['online'] = online
		end
	end
	triggerClientEvent(player, "populatePanel", player, ganginfo[1], memberinfo, getAccountName(getPlayerAccount(player)))
end

function getPlayerLevel(player)
	local playerAccount = getPlayerAccount(player)
	local playerAccountName = getAccountName(playerAccount)
	
	local gangname = getAccountData(playerAccount, "gang")
	if gangname then
		local dbName = "WSSgang_" .. gangname .. "_members"
		local playerinfo = executeSQLQuery("SELECT * FROM ? WHERE `accountname` = ?", dbName, playerAccountName)
		return playerinfo[1]["level"]
	else
		return false
	end
end

function getPlayerGang(player)
	local playerAccount = getPlayerAccount(player)
	local gangname = getAccountData(playerAccount, "gang")
	return gangname
end

function getGangInfo(gangname)
	local ganginfo = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)
	if ganginfo[1] then
		return ganginfo[1]
	else
		return false
	end
end

-- ALL THE HANDLER FUNCTIONS ARE HERE!

function saveMOTD(motd)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['motdperm']) then
			executeSQLQuery("UPDATE `WSSgangdb` SET `hometext` = ? WHERE `gangname` = ?",motd, getPlayerGang(source))
			populateGangPanel(source)
		end
	end
end
addEvent("_saveMOTD", true)
addEventHandler("_saveMOTD", getRootElement(), saveMOTD)

function levelPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > (tonumber(playerTo[1]['level']) + 1) and tonumber(playerTo[1]['level']) < 5 then
					local newlevel = tonumber(playerTo[1]['level']) + 1
					executeSQLQuery("UPDATE ? SET `level` = ? WHERE `accountname` = ?", dbName, newlevel, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_levelPlayer", true)
addEventHandler("_levelPlayer", getRootElement(), levelPlayer)

function unlevelPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > tonumber(playerTo[1]['level']) and tonumber(playerTo[1]['level']) > 0 then
					local newlevel = tonumber(playerTo[1]['level']) - 1
					executeSQLQuery("UPDATE ? SET `level` = ? WHERE `accountname` = ?", dbName, newlevel, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_unlevelPlayer", true)
addEventHandler("_unlevelPlayer", getRootElement(), unlevelPlayer)

function warnPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > tonumber(playerTo[1]['level']) and tonumber(playerTo[1]['warnings']) < 5 then
					local newwarn = tonumber(playerTo[1]['warnings']) + 1
					executeSQLQuery("UPDATE ? SET `warnings` = ? WHERE `accountname` = ?", dbName, newwarn, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_warnPlayer", true)
addEventHandler("_warnPlayer", getRootElement(), warnPlayer)

function unwarnPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['levelperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > (tonumber(playerTo[1]['level'])) and tonumber(playerTo[1]['warnings']) > 0 then
					local newwarn = tonumber(playerTo[1]['warnings']) - 1
					executeSQLQuery("UPDATE ? SET `warnings` = ? WHERE `accountname` = ?", dbName, newwarn, accountname)
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_unwarnPlayer", true)
addEventHandler("_unwarnPlayer", getRootElement(), unwarnPlayer)

function depositMoney(money)
	if tonumber(money) > 0 then
		if getPlayerGang(source) then
			local ganginfo = getGangInfo(getPlayerGang(source))
			local playerlevel = getPlayerLevel(source)
			if playerlevel >= tonumber(ganginfo['depositperm']) then
				local newmoney = tonumber(ganginfo['money']) + tonumber(money)
				if getPlayerMoney(source) >= tonumber(money) then
					executeSQLQuery("UPDATE `WSSgangdb` SET `money` = ? WHERE `gangname` = ?", newmoney, getPlayerGang(source))
					exports.WSScommands:takeMoney(source, tonumber(money))
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You don't have enough money.")
					populateGangPanel(source)
				end
			end
		end
	end
end
addEvent("_depositMoney", true)
addEventHandler("_depositMoney", getRootElement(), depositMoney)

function withdrawMoney(money)
	if tonumber(money) > 0 then
		if getPlayerGang(source) then
			local ganginfo = getGangInfo(getPlayerGang(source))
			local playerlevel = getPlayerLevel(source)
			if playerlevel >= tonumber(ganginfo['withdrawperm']) then
				local newmoney = tonumber(ganginfo['money']) - tonumber(money)
				if tonumber(ganginfo['money']) >= tonumber(money) then
					executeSQLQuery("UPDATE `WSSgangdb` SET `money` = ? WHERE `gangname` = ?", newmoney, getPlayerGang(source))
					exports.WSScommands:giveMoney(source, tonumber(money))
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: There isn't enough money in the gang account.")
					populateGangPanel(source)
				end
			end
		end
	end
end
addEvent("_withdrawMoney", true)
addEventHandler("_withdrawMoney", getRootElement(), withdrawMoney)

function inviteStart()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['inviteperm']) then
			local playas = getElementsByType("player")
			local ganglessnubs = {}
			for i, v in ipairs(playas) do
				if not getAccountData(getPlayerAccount(v), "gang") then
					table.insert(ganglessnubs, getPlayerName(v))
				end
			end
			triggerClientEvent(source, "displayInvite", source, ganglessnubs)
		end
	end
end
addEvent("_invitePlayer", true)
addEventHandler("_invitePlayer", getRootElement(), inviteStart)

function inviteStep2(playa)
	if getPlayerGang(source) then
		local playa = getPlayerFromName(playa)
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['inviteperm']) then
			if playa and isElement(playa) and getElementType(playa) == "player" and not getAccountData(getPlayerAccount(playa), "gang") then
				triggerClientEvent(playa, "inviteReceive", source, getPlayerGang(source))
			end
		end
	end
end
addEvent("_inviteStep2", true)
addEventHandler("_inviteStep2", getRootElement(), inviteStep2)

function inviteFin(sender, gangname)
	local sender = getPlayerFromName(sender)
	local ganginfo = getGangInfo(getPlayerGang(sender))
	local playerAccount = getPlayerAccount(source)
	
	if not getAccountData(playerAccount, "gang") then	
		local realTime = getRealTime()
		
		local month = tostring(realTime.month + 1)
		local monthday = tostring(realTime.monthday)
		
		if #month == 1 then month = "0" .. month end
		if #monthday == 1 then monthday = "0" .. monthday end
		
		local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday
		
		local dbName = "WSSgang_" .. gangname .. "_members"
		
		executeSQLQuery("INSERT INTO ? VALUES(?, ?, ?, ?, ?)", dbName, getAccountName(playerAccount), getPlayerName(source), timestamp, 0, 0)
		
		setAccountData(playerAccount, "gang", gangname)
		setElementData(source, "gang", gangname)
		
		exports.WSScommands:sendMessage(getPlayerName(source) .. " artık bu çetede " .. gangname .. ".", 0, 255, 0, root) 
		
		populateGangPanel(source)
		if isElement(sender) then
			populateGangPanel(sender)
		end
	else
		triggerClientEvent(source, "errorDisplay", source, "Error: You're already in a gang.")
	end
end
addEvent("_inviteFin", true)
addEventHandler("_inviteFin", getRootElement(), inviteFin)

function leaveGang()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local playerlevel = getPlayerLevel(source)
		if playerlevel < 5 then
			local dbName = "WSSgang_" .. gangname .. "_members"
			local accName = getAccountName(getPlayerAccount(source))
			executeSQLQuery("DELETE FROM ? WHERE `accountname`=?", dbName, accName)
			
			setAccountData(getPlayerAccount(source), "gang", false)
			setElementData(source, "gang", false)
			exports.WSScommands:sendMessage(getPlayerName(source) .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 
		else
			triggerClientEvent(source, "errorDisplay", source, "Error: You can't leave if you are the leader. You must give leadership to someone else first.")
		end
	end
end
addEvent("_leaveGang", true)
addEventHandler("_leaveGang", getRootElement(), leaveGang)

function kickPlayer(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		local gangname = ganginfo['gangname']
		if playerlevel >= tonumber(ganginfo['kickperm']) then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				if playerlevel > (tonumber(playerTo[1]['level'])) then
					local kickedAccount = getAccount(accountname)
					
					setAccountData(kickedAccount, "gang", false)
					if getAccountPlayer(kickedAccount) then
						setElementData(getAccountPlayer(kickedAccount), "gang", false)
					end

					executeSQLQuery("DELETE FROM ? WHERE `accountname` = ?", dbName, accountname)
					exports.WSScommands:sendMessage(playerTo[1]['lastname'] .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 
					
					populateGangPanel(source)
				else
					triggerClientEvent(source, "errorDisplay", source, "Error: You can't kick players equal to/over your level.")
				end
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_kickPlayer", true)
addEventHandler("_kickPlayer", getRootElement(), kickPlayer)

function transferLeadership(accountname)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local playerlevel = getPlayerLevel(source)
		local gangname = ganginfo['gangname']
		if playerlevel == 5 then
			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"
			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)
			if playerTo[1] then
				local tranferAccount = getAccount(playerTo[1]['accountname'])

				executeSQLQuery("UPDATE ? SET `level` = 4 WHERE `accountname` = ?", dbName, getAccountName(getPlayerAccount(source)))
				executeSQLQuery("UPDATE ? SET `level` = 5 WHERE `accountname` = ?", dbName, accountname)

				populateGangPanel(source)
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")
				populateGangPanel(source)
			end
		end
	end
end
addEvent("_transferLeadership", true)
addEventHandler("_transferLeadership", getRootElement(), transferLeadership)

function deleteGang()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local playerlevel = getPlayerLevel(source)
		if playerlevel >= tonumber(ganginfo['deleteperm']) then
			local dbName = "WSSgang_" .. gangname .. "_members"
			local accName = getAccountName(getPlayerAccount(source))

			local players = executeSQLQuery("SELECT * FROM ?", dbName)
			for i, v in ipairs(players) do
				local thisAccount = getAccount(v['accountname'])
				setAccountData(thisAccount, "gang", false)
				if getAccountPlayer(thisAccount) then
				setElementData(getAccountPlayer(thisAccount), "gang", false)
				exports.WSScommands:sendMessage(v['lastname'] .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 
			end
			
			executeSQLQuery("DELETE FROM `WSSgangdb` WHERE `gangname` =?", gangname)
			executeSQLQuery("DROP TABLE ?", dbName)
		end
	end
end
end
addEvent("_deleteGang", true)
addEventHandler("_deleteGang", getRootElement(), deleteGang)

function saveSettings(inviteperm, warnperm, kickperm, levelperm, depositperm, withdrawperm, motdperm, deleteperm)
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local playerlevel = getPlayerLevel(source)
		if playerlevel == 5 then
			if inviteperm >= 0 and inviteperm <= 5 and warnperm >= 0 and warnperm <= 5 and kickperm >= 0 and kickperm <= 5 and levelperm >= 0 and levelperm <= 5 and depositperm >= 0 and depositperm <= 5 and withdrawperm >= 0 and withdrawperm <= 5 and motdperm >= 0 and motdperm <= 5 and deleteperm >= 0 and deleteperm <= 5 then
				executeSQLQuery("UPDATE `WSSgangdb` SET `inviteperm`=?,`warnperm`=?,`kickperm`=?,`levelperm`=?,`depositperm`=?,`withdrawperm`=?,`motdperm`=?,`deleteperm`=? WHERE `gangname`=?",inviteperm, warnperm, kickperm, levelperm, depositperm, withdrawperm, motdperm, deleteperm, gangname)
				populateGangPanel(source)
			else
				triggerClientEvent(source, "errorDisplay", source, "Error: Only numbers between 0 and 5 are allowed.")
			end
		end
	end
end
addEvent("_saveSettings", true)
addEventHandler("_saveSettings", getRootElement(), saveSettings)

-- Extra functions

function onLoginInformation()
	if getPlayerGang(source) then
		local ganginfo = getGangInfo(getPlayerGang(source))
		local gangname = ganginfo['gangname']
		local dbName = "WSSgang_" .. gangname .. "_members"
		
		local playerName = getPlayerName(source)
		local playerAccount = getPlayerAccount(source)
		local accName = getAccountName(source)
			
		local realTime = getRealTime()
				
		local month = tostring(realTime.month + 1)
		local monthday = tostring(realTime.monthday)
			
		if #month == 1 then month = "0" .. month end
		if #monthday == 1 then monthday = "0" .. monthday end
				
		local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday
		
		executeSQLQuery("UPDATE ? SET lastname=?,lastlogin=? WHERE `accountname`=?", dbName, playerName, timestamp, accName)
	end
end
addEvent("onPlayerLoginSuccess", true)
addEventHandler("onPlayerLoginSuccess", getRootElement(), onLoginInformation)

-- Clanchat

function onPlayerClanchat(player, command, ...)
	if getPlayerGang(player) then
		local ganginfo = getGangInfo(getPlayerGang(player))
		local gangname = ganginfo['gangname']
		local dbName = "WSSgang_" .. gangname .. "_members"
		
		local message = table.concat(arg, " ")
		
		local gangmembers = executeSQLQuery("SELECT * FROM ?", dbName)
		for i,v in ipairs(gangmembers) do
			local accname = v['accountname']
			local acc = getAccount(accname)
			if getAccountPlayer(acc) then
				outputChatBox("*ClanChat*" .. getPlayerName(player) .. ": " .. message, getAccountPlayer(acc), 255, 100, 0, true)
			end
		end
	end
end
addCommandHandler("cc", onPlayerClanchat)

 

Link to comment
9 minutes ago, N3xT said:

first, delete your Gang's database

then try this:

 


function gangCreate(player, commandname, gangname, ...)    gangname = gangname:lower()	if arg.n == 0 and gangname then		local playerAccount = getPlayerAccount(player)		if not getAccountData(playerAccount, "gang") then			local dbName = "WSSgang_" .. gangname .. "_members"			local existingGangsWithName = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)			local existingGangsWithName2 = executeSQLQuery("SELECT * FROM sqlite_master WHERE type='table' AND name=?", gangname)						if existingGangsWithName[1] or existingGangsWithName2[1] then				exports.WSScommands:sendMessage("Çete Adı Zaten kullanılıyor.", 255, 255, 0, player)			else				local query = executeSQLQuery("CREATE TABLE ? (accountname TEXT, lastname TEXT, lastlogin NUMERIC, warnings NUMERIC, level NUMERIC)", dbName )									if query then					executeSQLQuery("INSERT INTO WSSgangdb VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", gangname, 0, "Default home screen text, change me using the button below!", 5, 5, 5, 5, 5, 0, 5, 5)					local realTime = getRealTime()										local month = tostring(realTime.month + 1)					local monthday = tostring(realTime.monthday)										if #month == 1 then month = "0" .. month end					if #monthday == 1 then monthday = "0" .. monthday end										local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday					executeSQLQuery("INSERT INTO ? VALUES(?, ?, ?, ?, ?)", dbName, getAccountName(playerAccount), getPlayerName(player), timestamp, 0, 5)					setAccountData(playerAccount, "gang", gangname)					setElementData(player, "gang", gangname)										exports.WSScommands:sendMessage(getPlayerName(player) .. " artık bu çetede " .. gangname .. ".", 0, 255, 0, root) 					exports.WSScommands:sendMessage("çete başarılı bir şekilde kuruldu. .", 0, 255, 0, player)				else					exports.WSScommands:sendMessage("Bu isimde bir çete zaten var.", 255, 255, 0, player)				end			end		else			exports.WSScommands:sendMessage("Yeni bir çete oluşturmak için mevcut olandan çık", 255, 255, 0, player)		end	else		exports.WSScommands:sendMessage("Geçersiz bağımsız değişkenler. Çete adı boşluk içeremez.", 255, 255, 0, player)	endendaddCommandHandler("create", gangCreate)function gangPanel(player)	local playerAccount = getPlayerAccount(player)	if getAccountData(playerAccount, "gang") then		triggerClientEvent(player, "displayPanel", player)		populateGangPanel(player)	else		exports.WSScommands:sendMessage("Çeten yok /create yazarak oluşturabilirsin.", 255, 255, 0, player)	endendaddCommandHandler("gang", gangPanel)addCommandHandler("squad", gangPanel)addCommandHandler("company", gangPanel)function populateGangPanel(player)	local playerAccount = getPlayerAccount(player)	local gangname = getAccountData(playerAccount, "gang")			local dbName = "WSSgang_" .. gangname .. "_members"			local ganginfo = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)	local memberinfo = executeSQLQuery("SELECT * FROM ?", dbName)		for i,v in ipairs(memberinfo) do		local account = getAccount(v['accountname'])		if account then			local lastLogin = getAccountData(account, "lastlogin") or v['lastlogin']			local lastNick = getAccountData(account, "lastnick") or v['lastname']						local player = getAccountPlayer(account)			local online = false			if player then online = true end						memberinfo[i]['lastname'] = lastNick			memberinfo[i]['lastlogin'] = lastLogin			memberinfo[i]['online'] = online		end	end	triggerClientEvent(player, "populatePanel", player, ganginfo[1], memberinfo, getAccountName(getPlayerAccount(player)))endfunction getPlayerLevel(player)	local playerAccount = getPlayerAccount(player)	local playerAccountName = getAccountName(playerAccount)		local gangname = getAccountData(playerAccount, "gang")	if gangname then		local dbName = "WSSgang_" .. gangname .. "_members"		local playerinfo = executeSQLQuery("SELECT * FROM ? WHERE `accountname` = ?", dbName, playerAccountName)		return playerinfo[1]["level"]	else		return false	endendfunction getPlayerGang(player)	local playerAccount = getPlayerAccount(player)	local gangname = getAccountData(playerAccount, "gang")	return gangnameendfunction getGangInfo(gangname)	local ganginfo = executeSQLQuery("SELECT * FROM `WSSgangdb` WHERE `gangname` = ?", gangname)	if ganginfo[1] then		return ganginfo[1]	else		return false	endend-- ALL THE HANDLER FUNCTIONS ARE HERE!function saveMOTD(motd)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['motdperm']) then			executeSQLQuery("UPDATE `WSSgangdb` SET `hometext` = ? WHERE `gangname` = ?",motd, getPlayerGang(source))			populateGangPanel(source)		end	endendaddEvent("_saveMOTD", true)addEventHandler("_saveMOTD", getRootElement(), saveMOTD)function levelPlayer(accountname)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['levelperm']) then			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)			if playerTo[1] then				if playerlevel > (tonumber(playerTo[1]['level']) + 1) and tonumber(playerTo[1]['level']) < 5 then					local newlevel = tonumber(playerTo[1]['level']) + 1					executeSQLQuery("UPDATE ? SET `level` = ? WHERE `accountname` = ?", dbName, newlevel, accountname)					populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")				end			else				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")				populateGangPanel(source)			end		end	endendaddEvent("_levelPlayer", true)addEventHandler("_levelPlayer", getRootElement(), levelPlayer)function unlevelPlayer(accountname)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['levelperm']) then			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)			if playerTo[1] then				if playerlevel > tonumber(playerTo[1]['level']) and tonumber(playerTo[1]['level']) > 0 then					local newlevel = tonumber(playerTo[1]['level']) - 1					executeSQLQuery("UPDATE ? SET `level` = ? WHERE `accountname` = ?", dbName, newlevel, accountname)					populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")				end			else				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")				populateGangPanel(source)			end		end	endendaddEvent("_unlevelPlayer", true)addEventHandler("_unlevelPlayer", getRootElement(), unlevelPlayer)function warnPlayer(accountname)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['levelperm']) then			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)			if playerTo[1] then				if playerlevel > tonumber(playerTo[1]['level']) and tonumber(playerTo[1]['warnings']) < 5 then					local newwarn = tonumber(playerTo[1]['warnings']) + 1					executeSQLQuery("UPDATE ? SET `warnings` = ? WHERE `accountname` = ?", dbName, newwarn, accountname)					populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")				end			else				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")				populateGangPanel(source)			end		end	endendaddEvent("_warnPlayer", true)addEventHandler("_warnPlayer", getRootElement(), warnPlayer)function unwarnPlayer(accountname)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['levelperm']) then			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)			if playerTo[1] then				if playerlevel > (tonumber(playerTo[1]['level'])) and tonumber(playerTo[1]['warnings']) > 0 then					local newwarn = tonumber(playerTo[1]['warnings']) - 1					executeSQLQuery("UPDATE ? SET `warnings` = ? WHERE `accountname` = ?", dbName, newwarn, accountname)					populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: You can't touch players equal to/over your level.")				end			else				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")				populateGangPanel(source)			end		end	endendaddEvent("_unwarnPlayer", true)addEventHandler("_unwarnPlayer", getRootElement(), unwarnPlayer)function depositMoney(money)	if tonumber(money) > 0 then		if getPlayerGang(source) then			local ganginfo = getGangInfo(getPlayerGang(source))			local playerlevel = getPlayerLevel(source)			if playerlevel >= tonumber(ganginfo['depositperm']) then				local newmoney = tonumber(ganginfo['money']) + tonumber(money)				if getPlayerMoney(source) >= tonumber(money) then					executeSQLQuery("UPDATE `WSSgangdb` SET `money` = ? WHERE `gangname` = ?", newmoney, getPlayerGang(source))					exports.WSScommands:takeMoney(source, tonumber(money))					populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: You don't have enough money.")					populateGangPanel(source)				end			end		end	endendaddEvent("_depositMoney", true)addEventHandler("_depositMoney", getRootElement(), depositMoney)function withdrawMoney(money)	if tonumber(money) > 0 then		if getPlayerGang(source) then			local ganginfo = getGangInfo(getPlayerGang(source))			local playerlevel = getPlayerLevel(source)			if playerlevel >= tonumber(ganginfo['withdrawperm']) then				local newmoney = tonumber(ganginfo['money']) - tonumber(money)				if tonumber(ganginfo['money']) >= tonumber(money) then					executeSQLQuery("UPDATE `WSSgangdb` SET `money` = ? WHERE `gangname` = ?", newmoney, getPlayerGang(source))					exports.WSScommands:giveMoney(source, tonumber(money))					populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: There isn't enough money in the gang account.")					populateGangPanel(source)				end			end		end	endendaddEvent("_withdrawMoney", true)addEventHandler("_withdrawMoney", getRootElement(), withdrawMoney)function inviteStart()	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['inviteperm']) then			local playas = getElementsByType("player")			local ganglessnubs = {}			for i, v in ipairs(playas) do				if not getAccountData(getPlayerAccount(v), "gang") then					table.insert(ganglessnubs, getPlayerName(v))				end			end			triggerClientEvent(source, "displayInvite", source, ganglessnubs)		end	endendaddEvent("_invitePlayer", true)addEventHandler("_invitePlayer", getRootElement(), inviteStart)function inviteStep2(playa)	if getPlayerGang(source) then		local playa = getPlayerFromName(playa)		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['inviteperm']) then			if playa and isElement(playa) and getElementType(playa) == "player" and not getAccountData(getPlayerAccount(playa), "gang") then				triggerClientEvent(playa, "inviteReceive", source, getPlayerGang(source))			end		end	endendaddEvent("_inviteStep2", true)addEventHandler("_inviteStep2", getRootElement(), inviteStep2)function inviteFin(sender, gangname)	local sender = getPlayerFromName(sender)	local ganginfo = getGangInfo(getPlayerGang(sender))	local playerAccount = getPlayerAccount(source)		if not getAccountData(playerAccount, "gang") then			local realTime = getRealTime()				local month = tostring(realTime.month + 1)		local monthday = tostring(realTime.monthday)				if #month == 1 then month = "0" .. month end		if #monthday == 1 then monthday = "0" .. monthday end				local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday				local dbName = "WSSgang_" .. gangname .. "_members"				executeSQLQuery("INSERT INTO ? VALUES(?, ?, ?, ?, ?)", dbName, getAccountName(playerAccount), getPlayerName(source), timestamp, 0, 0)				setAccountData(playerAccount, "gang", gangname)		setElementData(source, "gang", gangname)				exports.WSScommands:sendMessage(getPlayerName(source) .. " artık bu çetede " .. gangname .. ".", 0, 255, 0, root) 				populateGangPanel(source)		if isElement(sender) then			populateGangPanel(sender)		end	else		triggerClientEvent(source, "errorDisplay", source, "Error: You're already in a gang.")	endendaddEvent("_inviteFin", true)addEventHandler("_inviteFin", getRootElement(), inviteFin)function leaveGang()	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local gangname = ganginfo['gangname']		local playerlevel = getPlayerLevel(source)		if playerlevel < 5 then			local dbName = "WSSgang_" .. gangname .. "_members"			local accName = getAccountName(getPlayerAccount(source))			executeSQLQuery("DELETE FROM ? WHERE `accountname`=?", dbName, accName)						setAccountData(getPlayerAccount(source), "gang", false)			setElementData(source, "gang", false)			exports.WSScommands:sendMessage(getPlayerName(source) .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 		else			triggerClientEvent(source, "errorDisplay", source, "Error: You can't leave if you are the leader. You must give leadership to someone else first.")		end	endendaddEvent("_leaveGang", true)addEventHandler("_leaveGang", getRootElement(), leaveGang)function kickPlayer(accountname)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		local gangname = ganginfo['gangname']		if playerlevel >= tonumber(ganginfo['kickperm']) then			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)			if playerTo[1] then				if playerlevel > (tonumber(playerTo[1]['level'])) then					local kickedAccount = getAccount(accountname)										setAccountData(kickedAccount, "gang", false)					if getAccountPlayer(kickedAccount) then						setElementData(getAccountPlayer(kickedAccount), "gang", false)					end					executeSQLQuery("DELETE FROM ? WHERE `accountname` = ?", dbName, accountname)					exports.WSScommands:sendMessage(playerTo[1]['lastname'] .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 										populateGangPanel(source)				else					triggerClientEvent(source, "errorDisplay", source, "Error: You can't kick players equal to/over your level.")				end			else				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")				populateGangPanel(source)			end		end	endendaddEvent("_kickPlayer", true)addEventHandler("_kickPlayer", getRootElement(), kickPlayer)function transferLeadership(accountname)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local playerlevel = getPlayerLevel(source)		local gangname = ganginfo['gangname']		if playerlevel == 5 then			local dbName = "WSSgang_" .. ganginfo['gangname'] .. "_members"			local playerTo = executeSQLQuery("SELECT * FROM ? WHERE `accountname`=?", dbName, accountname)			if playerTo[1] then				local tranferAccount = getAccount(playerTo[1]['accountname'])				executeSQLQuery("UPDATE ? SET `level` = 4 WHERE `accountname` = ?", dbName, getAccountName(getPlayerAccount(source)))				executeSQLQuery("UPDATE ? SET `level` = 5 WHERE `accountname` = ?", dbName, accountname)				populateGangPanel(source)			else				triggerClientEvent(source, "errorDisplay", source, "Error: Can not find player.")				populateGangPanel(source)			end		end	endendaddEvent("_transferLeadership", true)addEventHandler("_transferLeadership", getRootElement(), transferLeadership)function deleteGang()	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local gangname = ganginfo['gangname']		local playerlevel = getPlayerLevel(source)		if playerlevel >= tonumber(ganginfo['deleteperm']) then			local dbName = "WSSgang_" .. gangname .. "_members"			local accName = getAccountName(getPlayerAccount(source))			local players = executeSQLQuery("SELECT * FROM ?", dbName)			for i, v in ipairs(players) do				local thisAccount = getAccount(v['accountname'])				setAccountData(thisAccount, "gang", false)				if getAccountPlayer(thisAccount) then				setElementData(getAccountPlayer(thisAccount), "gang", false)				exports.WSScommands:sendMessage(v['lastname'] .. " çeteden çıktı " .. gangname .. ".", 255, 255, 0, root) 			end						executeSQLQuery("DELETE FROM `WSSgangdb` WHERE `gangname` =?", gangname)			executeSQLQuery("DROP TABLE ?", dbName)		end	endendendaddEvent("_deleteGang", true)addEventHandler("_deleteGang", getRootElement(), deleteGang)function saveSettings(inviteperm, warnperm, kickperm, levelperm, depositperm, withdrawperm, motdperm, deleteperm)	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local gangname = ganginfo['gangname']		local playerlevel = getPlayerLevel(source)		if playerlevel == 5 then			if inviteperm >= 0 and inviteperm <= 5 and warnperm >= 0 and warnperm <= 5 and kickperm >= 0 and kickperm <= 5 and levelperm >= 0 and levelperm <= 5 and depositperm >= 0 and depositperm <= 5 and withdrawperm >= 0 and withdrawperm <= 5 and motdperm >= 0 and motdperm <= 5 and deleteperm >= 0 and deleteperm <= 5 then				executeSQLQuery("UPDATE `WSSgangdb` SET `inviteperm`=?,`warnperm`=?,`kickperm`=?,`levelperm`=?,`depositperm`=?,`withdrawperm`=?,`motdperm`=?,`deleteperm`=? WHERE `gangname`=?",inviteperm, warnperm, kickperm, levelperm, depositperm, withdrawperm, motdperm, deleteperm, gangname)				populateGangPanel(source)			else				triggerClientEvent(source, "errorDisplay", source, "Error: Only numbers between 0 and 5 are allowed.")			end		end	endendaddEvent("_saveSettings", true)addEventHandler("_saveSettings", getRootElement(), saveSettings)-- Extra functionsfunction onLoginInformation()	if getPlayerGang(source) then		local ganginfo = getGangInfo(getPlayerGang(source))		local gangname = ganginfo['gangname']		local dbName = "WSSgang_" .. gangname .. "_members"				local playerName = getPlayerName(source)		local playerAccount = getPlayerAccount(source)		local accName = getAccountName(source)					local realTime = getRealTime()						local month = tostring(realTime.month + 1)		local monthday = tostring(realTime.monthday)					if #month == 1 then month = "0" .. month end		if #monthday == 1 then monthday = "0" .. monthday end						local timestamp = realTime.year + 1900 .. "-" .. month .. "-" .. monthday				executeSQLQuery("UPDATE ? SET lastname=?,lastlogin=? WHERE `accountname`=?", dbName, playerName, timestamp, accName)	endendaddEvent("onPlayerLoginSuccess", true)addEventHandler("onPlayerLoginSuccess", getRootElement(), onLoginInformation)-- Clanchatfunction onPlayerClanchat(player, command, ...)	if getPlayerGang(player) then		local ganginfo = getGangInfo(getPlayerGang(player))		local gangname = ganginfo['gangname']		local dbName = "WSSgang_" .. gangname .. "_members"				local message = table.concat(arg, " ")				local gangmembers = executeSQLQuery("SELECT * FROM ?", dbName)		for i,v in ipairs(gangmembers) do			local accname = v['accountname']			local acc = getAccount(accname)			if getAccountPlayer(acc) then				outputChatBox("*ClanChat*" .. getPlayerName(player) .. ": " .. message, getAccountPlayer(acc), 255, 100, 0, true)			end		end	endendaddCommandHandler("cc", onPlayerClanchat)

 

don't work :(  still  /create ASD  or /create asd

Edited by orcun99
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...