orcun99 Posted August 16, 2017 Share Posted August 16, 2017 (edited) 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 August 16, 2017 by orcun99 Link to comment
N3xT Posted August 17, 2017 Share Posted August 17, 2017 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
orcun99 Posted August 17, 2017 Author Share Posted August 17, 2017 (edited) 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 August 17, 2017 by orcun99 Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now