Jump to content

orcun99

Members
  • Posts

    197
  • Joined

  • Last visited

Everything posted by orcun99

  1. to use the scripts I found on the internet a crime? for example old rpg server's scripts
  2. I want if player with in marker dxdrawtext : Press H to open marker and when player press H open gui
  3. I add this code client side but still if someone in marker then gui open but when I press h gui is closed
  4. Hi I wanna press H to open marker this resource I try but I can't do .. someone can give me full code ? client.lua local currentSeller = false local sellAble = { {22, 30, 150}, {16, 1, 500}, {25, 16, 250}, {26, 10, 250}, {32, 150, 350}, {28, 150, 400}, {30, 150, 2000}, {31, 150, 2000}, {33, 20, 600}, {34, 20, 4000}, {27, 20, 1000}, {24, 20, 1000}, {29, 120, 1000}, {1, 1, 300}, {10, 1, 250}, {5, 1, 250}, {6, 1, 150} } function startSale(seller) currentSeller = seller exports.xcommands:sendClientMessage("Senin Satıcın ".. getPlayerName(seller), 0,255,0) ammugui = guiCreateWindow(0.39, 0.28, 0.30, 0.52, "Silah Satıcısı", true) guiWindowSetMovable(ammugui, false) guiWindowSetSizable(ammugui, false) label = guiCreateLabel(0.02, 0.06, 0.96, 0.10, "Almak İstediğin silaha tıkla", true, ammugui) guiLabelSetHorizontalAlign(label, "center", false) gridlist = guiCreateGridList(0.07, 0.10, 0.86, 0.76, true, ammugui) weapongrid = guiGridListAddColumn(gridlist, "Silah", 0.4) ammogrid = guiGridListAddColumn(gridlist, "Cephane", 0.3) pricegrid = guiGridListAddColumn(gridlist, "Fiyat", 0.2) buy = guiCreateButton(0.07, 0.89, 0.39, 0.09, "Satın Al", true, ammugui) guiSetProperty(buy, "NormalTextColour", "FFAAAAAA") close = guiCreateButton(0.54, 0.89, 0.39, 0.09, "Kapat", true, ammugui) guiSetProperty(close, "NormalTextColour", "FFAAAAAA") for i, v in ipairs(sellAble) do local id = v[1] local ammo = v[2] local price = math.floor(v[3]/1.5) local name = getWeaponNameFromID(id) if name then row = guiGridListAddRow ( gridlist ) guiGridListSetItemText (gridlist, row, weapongrid, name, false, false ) guiGridListSetItemData (gridlist, row, weapongrid, i) guiGridListSetItemText (gridlist, row, ammogrid, ammo, false, true ) guiGridListSetItemData (gridlist, row, ammogrid, ammo) guiGridListSetItemText (gridlist, row, pricegrid, price, false, true ) guiGridListSetItemData (gridlist, row, pricegrid, price) end end showCursor(true) addEventHandler('onClientGUIClick', ammugui, onClientClick) end addEvent("letThemBuy", true) addEventHandler("letThemBuy", localPlayer, startSale) function onClientClick() if source == close then destroyElement(ammugui) showCursor(false) elseif source == buy then if guiGridListGetSelectedCount(gridlist) > 0 then local row = guiGridListGetSelectedItem(gridlist) local index = tonumber(guiGridListGetItemData(gridlist, row, weapongrid)) local wepid = sellAble[index][1] local ammo = sellAble[index][2] local price = math.floor(sellAble[index][3]/1.5) local name = getWeaponNameFromID(wepid) if getPlayerMoney(getLocalPlayer()) > price or getPlayerMoney(getLocalPlayer()) == price then triggerServerEvent("sellWep", getLocalPlayer(), getLocalPlayer(),wepid,ammo,price, currentSeller) exports.xcommands:sendClientMessage('Başarılı Bir Şekilde aldın '..name, 0,255,0) else exports.xcommands:sendClientMessage('Bu kadar para $'..price.." lazım satın almak için "..name,255,0,0) end end end end server.lua local markers = { } local allowedClasses = { ["Comando_da_Capital HQ"] = true, ["Comando_Da_Capital"] = true, ["Silah Satıcısı"] = true, ["Triads"] = true, ["Soyguncu"] = true, ["Arms_Assassins"] = true } local allowedTeams = {["The Confederate States Army"] = true} function getPositionInfront(element) local x, y, z = getElementPosition ( element ) local a,b,r = getElementRotation ( element ) x = x - math.sin ( math.rad(r) ) * 2 y = y + math.cos ( math.rad(r) ) * 2 return x,y,z end function startSelling(seller) if allowedClasses[getElementData(seller, "class")] or allowedTeams[getTeamName(getPlayerTeam(seller))] then if not markers[seller] and not isPedInVehicle(seller) and not getElementData(seller, "jailed") then --and isPedOnGround(seller) then setElementFrozen(seller, true) local x,y,z = getPositionInfront(seller) markers[seller] = createMarker(x, y, z-1.2, "cylinder", 1.5, 30, 0, 0) addEventHandler("onMarkerHit", markers[seller], newBuyer) setElementData(markers[seller], "armsOwner", seller) setPedAnimation(seller, "DEALER", "DEALER_IDLE", -1, true, false) bindKey(seller, "W", "down", stopSelling, seller) exports.xcommands:sendMessage("Şuan Silah Satıyorsun bozmak için W'ye bas", 255, 255, 255, seller) end end end addCommandHandler("sat", startSelling) function stopSelling(seller) setElementFrozen(seller, false) setPedAnimation(seller) unbindKey(seller, "W", "down", stopSelling) destroyElement(markers[seller]) markers[seller] = nil end function newBuyer(buyer, dim) if dim and getElementType(buyer) == "player" and getElementData(source, "armsOwner") ~= buyer then triggerClientEvent(buyer, "letThemBuy", buyer, getElementData(source, "armsOwner")) end end function givePlayerWeapon(thePlayer, wepid,ammo,price,seller) if isElement(thePlayer) then exports.xcommands:takeMoney(thePlayer, price) exports.xcommands:giveMoney(seller, price /2) giveWeapon(thePlayer, wepid, ammo, true) exports.xcommands:sendMessage(getPlayerName(thePlayer) .." cephane ".. ammo .." ".. getWeaponNameFromID(wepid) .." için $".. fiyat, 255, 255, 255, seller) end end addEvent('sellWep', true) addEventHandler('sellWep', getRootElement(), givePlayerWeapon) local isWithinMarker = false local marker = createMarker(x, y, z, "cylinder") --The Marker addEventHandler("onClientMarkerHit", marker, function(player, sameDimension) if player == localPlayer and sameDimension then isWithinMarker = true end end) addEventHandler("onClientMarkerLeave", marker, function(player, sameDimension) if player == localPlayer and sameDimension then isWithinMarker = false end end) bindKey("k", "down", function() if isWithinMarker then guiSetVisible(ammugui,true) showCursor(true) end end) function onQuit() if isElement(markers[source]) then destroyElement(markers[source]) unbindKey(source, "W", "down", destroy) markers[source] = nil end end addEventHandler("onPlayerWasted", root, onQuit) addEventHandler("onPlayerLogout", root, onQuit) addEventHandler("onPlayerQuit", root, onQuit)
  5. function echoMsg() exports.WSScommands:sendMessage("1den fazla hesabı olan arkadaşlar banlanacaktır!", 255, 255, 0,root) end addEventHandler("onResourceStart", resourceRoot, function() executeSQLQuery("CREATE TABLE IF NOT EXISTS `multiacc`(ip TEXT, serial TEXT, id TEXT)") setTimer(echoMsg, 120000, 0) end) addEventHandler ( 'onPlayerLogin', getRootElement ( ), function(source) local serial = getPlayerSerial(source) local account = getPlayerAccount(source) local id = getAccountName(account) local ip = getPlayerIP(source) executeSQLQuery("INSERT INTO `multiacc` VALUES(?,?,?)", ip, serial, id) end ) erorrs: BAD ARGUMENT @ 'GETPLAYERSERİAL ' [Expected player at argument 1,got account] BAD ARGUMENT @ 'GETPLAYERACCOUNT ' [Expected element at argument 1,got bolean] BAD ARGUMENT @ 'GETACCOUNTNAME' [Expected account at argument 1,got account] BAD ARGUMENT @ 'GETPLAYERIP ' [Expected element at argument 1,got account]
  6. I need anti multiaccount script auto kick if he try login multiacc
  7. orcun99

    if and

    Thank u bro now no debugscript 3 erorrs but panel still not open I'm in subadmin group and my team Staff what's wrong? addCommandHandler("panel", function(source) if exports.Xacl:isPlayerInGroup(source, "subadmin") and getPlayerTeam(source) == "Staff" then triggerClientEvent(source, "openModPanel", getRootElement()) end end ) when I deleted this {{{{{{and getPlayerTeam(source) == "Staff"}}}}} then panel is working
  8. orcun99

    if and

    local playerTeam = getPlayerTeam ( source ) if exports.Xacl:isPlayerInGroup(source, "subadmin") and if ( playerTeam = "asd" ) then then some one help for team
  9. local theMarker = createMarker ( -283.43835449219,1470.9427490234,1083.2, "cylinder", 1.5, 255, 255, 0, 170 ) setElementInterior(theMarker, 15) setElementDimension(theMarker, 3) function theMarker2(thePlayer, matchingDimension) for i, p in ipairs(getElementsByType("player")) do if isElementWithinMarker(p, theMarker) then setElementDimension ( source, 0 ) setElementInterior ( source, 0, -2033.7825927734,2335.9631347656,4.9999980926514 ) outputChatBox("oldu", thePlayer, 255, 0, 0) else outputChatBox("hata!", thePlayer, 255, 0, 0) end end end addEventHandler("onClientMarkerHit", theMarker2, theMarker) still not work bro
  10. uhm no this is client side in meta.xml and I can see marker but when I'm inside market do nothing
  11. yep marker dim3 and int 15 so I check myself in adminpanel my dim3 and int15 but dosen't work
  12. local theMarker = createMarker ( -283.43835449219,1470.9427490234,1083.2, "cylinder", 1.5, 255, 255, 0, 170 ) setElementInterior(theMarker, 15) setElementDimension(theMarker, 3) function theMarker(thePlayer, matchingDimension) for i, p in ipairs(getElementsByType("player")) do if isElementWithinMarker(p, theMarker) then setElementDimension ( source, 0 ) setElementInterior ( source, 0, -2033.7825927734,2335.9631347656,4.9999980926514 ) outputChatBox("oldu", thePlayer, 255, 0, 0) else outputChatBox("hata!", thePlayer, 255, 0, 0) end end end why this is not work
  13. can u edit my full code pls?
  14. don't work is this server side right?
  15. for example: https://prnt.sc/gez70w the text turkish says: " press 'h' to open window" if player in marker then press k to open window I wanna my resources.. sorry for bad english client.lua local currentSeller = false local sellAble = { {22, 30, 150}, {16, 1, 500}, {25, 16, 250}, {26, 10, 250}, {32, 150, 350}, {28, 150, 400}, {30, 150, 2000}, {31, 150, 2000}, {33, 20, 600}, {34, 20, 4000}, {27, 20, 1000}, {24, 20, 1000}, {29, 120, 1000}, {1, 1, 300}, {10, 1, 250}, {5, 1, 250}, {6, 1, 150} } function startSale(seller) currentSeller = seller exports.Xcommands:sendClientMessage("Senin Satıcın ".. getPlayerName(seller), 0,255,0) ammugui = guiCreateWindow(0.39, 0.28, 0.30, 0.52, "Silah Satıcısı", true) guiWindowSetMovable(ammugui, false) guiWindowSetSizable(ammugui, false) label = guiCreateLabel(0.02, 0.06, 0.96, 0.10, "Almak İstediğin silaha tıkla", true, ammugui) guiLabelSetHorizontalAlign(label, "center", false) gridlist = guiCreateGridList(0.07, 0.10, 0.86, 0.76, true, ammugui) weapongrid = guiGridListAddColumn(gridlist, "Silah", 0.4) ammogrid = guiGridListAddColumn(gridlist, "Cephane", 0.3) pricegrid = guiGridListAddColumn(gridlist, "Fiyat", 0.2) buy = guiCreateButton(0.07, 0.89, 0.39, 0.09, "Satın Al", true, ammugui) guiSetProperty(buy, "NormalTextColour", "FFAAAAAA") close = guiCreateButton(0.54, 0.89, 0.39, 0.09, "Kapat", true, ammugui) guiSetProperty(close, "NormalTextColour", "FFAAAAAA") for i, v in ipairs(sellAble) do local id = v[1] local ammo = v[2] local price = math.floor(v[3]/1.5) local name = getWeaponNameFromID(id) if name then row = guiGridListAddRow ( gridlist ) guiGridListSetItemText (gridlist, row, weapongrid, name, false, false ) guiGridListSetItemData (gridlist, row, weapongrid, i) guiGridListSetItemText (gridlist, row, ammogrid, ammo, false, true ) guiGridListSetItemData (gridlist, row, ammogrid, ammo) guiGridListSetItemText (gridlist, row, pricegrid, price, false, true ) guiGridListSetItemData (gridlist, row, pricegrid, price) end end showCursor(true) addEventHandler('onClientGUIClick', ammugui, onClientClick) end addEvent("letThemBuy", true) addEventHandler("letThemBuy", localPlayer, startSale) function onClientClick() if source == close then destroyElement(ammugui) showCursor(false) elseif source == buy then if guiGridListGetSelectedCount(gridlist) > 0 then local row = guiGridListGetSelectedItem(gridlist) local index = tonumber(guiGridListGetItemData(gridlist, row, weapongrid)) local wepid = sellAble[index][1] local ammo = sellAble[index][2] local price = math.floor(sellAble[index][3]/1.5) local name = getWeaponNameFromID(wepid) if getPlayerMoney(getLocalPlayer()) > price or getPlayerMoney(getLocalPlayer()) == price then triggerServerEvent("sellWep", getLocalPlayer(), getLocalPlayer(),wepid,ammo,price, currentSeller) exports.Xcommands:sendClientMessage('Başarılı Bir Şekilde aldın '..name, 0,255,0) else exports.Xcommands:sendClientMessage('Bu kadar para $'..price.." lazım satın almak için "..name,255,0,0) end end end end server.lua local markers = { } local allowedClasses = { ["Comando_da_Capital HQ"] = true, ["Comando_Da_Capital"] = true, ["Silah Satıcısı"] = true, ["Triads"] = true, ["Soyguncu"] = true, ["ALLAHU AKBAR"] = true } local allowedTeams = {["The Confederate States Army"] = true} function getPositionInfront(element) local x, y, z = getElementPosition ( element ) local a,b,r = getElementRotation ( element ) x = x - math.sin ( math.rad(r) ) * 2 y = y + math.cos ( math.rad(r) ) * 2 return x,y,z end function startSelling(seller) if allowedClasses[getElementData(seller, "class")] or allowedTeams[getTeamName(getPlayerTeam(seller))] then if not markers[seller] and not isPedInVehicle(seller) and not getElementData(seller, "jailed") then --and isPedOnGround(seller) then setElementFrozen(seller, true) local x,y,z = getPositionInfront(seller) markers[seller] = createMarker(x, y, z-1.2, "cylinder", 1.5, 30, 0, 0) addEventHandler("onMarkerHit", markers[seller], newBuyer) setElementData(markers[seller], "armsOwner", seller) setPedAnimation(seller, "DEALER", "DEALER_IDLE", -1, true, false) bindKey(seller, "W", "down", stopSelling, seller) exports.xcommands:sendMessage("Şuan Silah Satıyorsun bozmak için W'ye bas", 255, 255, 255, seller) end end end addCommandHandler("sat", startSelling) function stopSelling(seller) setElementFrozen(seller, false) setPedAnimation(seller) unbindKey(seller, "W", "down", stopSelling) destroyElement(markers[seller]) markers[seller] = nil end function newBuyer(buyer, dim) if dim and getElementType(buyer) == "player" and getElementData(source, "armsOwner") ~= buyer then triggerClientEvent(buyer, "letThemBuy", buyer, getElementData(source, "armsOwner")) end end function givePlayerWeapon(thePlayer, wepid,ammo,price,seller) if isElement(thePlayer) then exports.xcommands:takeMoney(thePlayer, price) exports.xcommands:giveMoney(seller, price /2) giveWeapon(thePlayer, wepid, ammo, true) exports.xcommands:sendMessage(getPlayerName(thePlayer) .." cephane ".. ammo .." ".. getWeaponNameFromID(wepid) .." için $".. fiyat, 255, 255, 255, seller) end end addEvent('sellWep', true) addEventHandler('sellWep', getRootElement(), givePlayerWeapon) function onQuit() if isElement(markers[source]) then destroyElement(markers[source]) unbindKey(source, "W", "down", destroy) markers[source] = nil end end addEventHandler("onPlayerWasted", root, onQuit) addEventHandler("onPlayerLogout", root, onQuit) addEventHandler("onPlayerQuit", root, onQuit)
  16. don't work still /create ASD or /create asd
  17. 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
  18. orcun99

    group panel

    validGroups = {} wssCache = {} playerCache = {} function errorLog(errorString) local file = fileOpen("errors.txt") fileSetPos(file, fileGetSize(file)) fileWrite(file, "\n" .. errorString) fileClose(file) end function readLog(player) if isPlayerInGroup(player, "admin") then local file = fileOpen("errors.txt") local result = fileRead( file, fileGetSize ( file )) fileClose(file) triggerClientEvent(player, "copySQLlogs", player, result) end end addCommandHandler("readsqllog", readLog) addEvent ( "onPlayerGroupAdd", true ) addEvent ( "onPlayerGroupRemove", true ) function validateGroups(valid) groupListTable = {} for k,v in ipairs(split(valid,",")) do validGroups[v] = true end outputDebugString("WSSsql - Updated valid groups: "..valid) end function getValidGroups(valid) local result = {} for k,v in pairs(validGroups) do table.insert(result, k) end return result end function onSettingChangeHandler(name,oldvalue,value) if name and oldvalue and value and name == "validSQLGroups" and type(value) == "string" then validateGroups(value) end end function onResourceStartHandler() validateGroups(get("*validSQLGroups")) if not fileExists("errors.txt") then fileCreate("errors.txt") end end addEventHandler("onSettingChange",resourceRoot,onSettingChangeHandler) addEventHandler ( "onResourceStart", resourceRoot, onResourceStartHandler ) function getPlayerGroups(player) if not playerCache[player] then cachePlayer(player) end local returnTable = {} for group, value in pairs(playerCache[player]) do if value then table.insert(returnTable, group) end end local altTable = exports.WSSacl:getPlayerGroups(player) if returnTable ~= altTable then local timeArray = getRealTime() local hours = timeArray.hour local minutes = timeArray.minute local day = timeArray.monthday local month = timeArray.month local year = timeArray.year + 1900 local logString = string.format("[%02d-%02d-%04d %02d:%02d]", day, month, year, hours, minutes) .. " WSSacl record mismatch on player " .. getPlayerName(player) .. " with accountname " .. getAccountName(getPlayerAccount(player)) .. " on getPlayerGroups. SQL result: " .. table.concat(resultTable, ",") .. " and ACL result: " .. table.concat(altTable, ",") .. "." errorLog(logString) outputDebugString(logString) end return returnTable end addEvent ( "getPlayerGroups", true ) addEventHandler ( "getPlayerGroups", getRootElement(), getPlayerGroups ) function cachePlayer(player) local account = getPlayerAccount(player) if account then local groupString = getAccountData(account, "groups") or "" playerCache[player] = {} for i,v in ipairs(split(groupString, ",")) do playerCache[player][v] = true end return true else outputDebugString("Failed caching player information for player " .. getPlayerName(player) .. " : No account set.") return false end end addEventHandler("onPlayerLogIn",root,function() cachePlayer(source) end) addEventHandler("onResourceStart",resourceRoot,function() for k, v in ipairs(getElementsByType("player")) do cachePlayer(v) end end) function uncachePlayer(player) local player = iPlayer or source if player then if playerCache[player] then playerCache[player] = nil end end return true end addEventHandler("onPlayerQuit",root,uncachePlayer) addEventHandler("onPlayerLogOut",root,uncachePlayer) function getPlayersInGroup(group) if group and tostring(group) then local returnTable = {} for i,v in pairs(playerCache) do if v[group] then table.insert(returnTable, i) end end local altTable = exports.WSSacl:getPlayersInGroup(group) if returnTable ~= altTable then local timeArray = getRealTime() local hours = timeArray.hour local minutes = timeArray.minute local day = timeArray.monthday local month = timeArray.month local year = timeArray.year + 1900 local logString = string.format("[%02d-%02d-%04d %02d:%02d]", day, month, year, hours, minutes) .. " WSSacl record mismatch on group " .. group .. " on getPlayersInGroup." errorLog(logString) outputDebugString(logString) end return returnTable else outputDebugString("Failed getting players in group " ..tostring(group) .. " : Invalid group name.") return false end end function isPlayerInGroup(player,group) if player and group and tostring(group) then if isElement(player) and getElementType(player) == "player" then if not playerCache[player] then cachePlayer(player) end local result = false if playerCache[player][group] then result = true end local altResult = exports.WSSacl:isPlayerInGroup(player, group) if result ~= altResult then local timeArray = getRealTime() local hours = timeArray.hour local minutes = timeArray.minute local day = timeArray.monthday local month = timeArray.month local year = timeArray.year + 1900 local logString = string.format("[%02d-%02d-%04d %02d:%02d]", day, month, year, hours, minutes) .. " WSSacl record mismatch on player " .. getPlayerName(player) .. " with accountname " .. getAccountName(getPlayerAccount(player)) .. " on isPlayerInGroup. SQL result: " .. tostring(result) .. " and ACL result: " .. tostring(altResult) .. "." errorLog(logString) outputDebugString(logString) end return result else outputDebugString("*wssSQL* isPlayerInGroup (wssSQL) invalid variables (player, group).") end else outputDebugString("*wssSQL* isPlayerInGroup (wssSQL) variables not passed (player, group).") end end addEvent ( "isPlayerInGroup", true ) addEventHandler ( "isPlayerInGroup", getRootElement(), isPlayerInGroup ) function updateLastNickUsed(player,nick) if not player or not nick then return false end local account = getPlayerAccount(player) if not account then return false end setAccountData(account, "lastnick", nick) if query then return true else return false end end addEvent("updateLastNickUsed",true) addEventHandler("updateLastNickUsed",root,updateLastNickUsed) addEventHandler("onPlayerChangeNick", root, function(old, new) updateLastNickUsed(source, new) end) function lastNickUsed(username) if not getAccount(username) then return "Unknown" end local account = getAccount(username) return getAccountData(account, "lastnick") end addEvent("lastNickUsed",true) addEventHandler("lastNickUsed",root,lastNickUsed) addCommandHandler("addgroup", function(sourcePlayer, commandName, userName, group) if isPlayerInGroup ( sourcePlayer, "admin" ) then --[[if ( userName and group ) then if ( validGroups[group] == true ) then local account = getAccount(userName) if account then local groupString = getAccountData(account, "groups") or "" local groups = split(groupString, ",") local isAlreadyIn = false for i,v in ipairs(groups) do if v == group then isAlreadyIn = true break end end if not isAlreadyIn then table.insert(groups, group) local newGroups = table.concat(groups, ",") setAccountData(account, "groups", newGroups) exports.WSScommands:sendMessage("Account " .. userName .. " added to group " .. group .. " successfully.", 0, 255, 0, sourcePlayer) if getAccountPlayer(account) then local player = getAccountPlayer(account) cachePlayer(player) exports.WSScommands:sendMessage("You have been added to group " .. group .. " by admin " .. getPlayerName(sourcePlayer) .. ".", 0, 255, 0, player) end else exports.WSScommands:sendMessage("This player is already in this group.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Account not found.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Invalid group. Use /validgroups for a list of valid groups.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Invalid parameters. Correct syntax: /addgroup username group.", 255, 255, 0, sourcePlayer) end]]-- exports.WSScommands:sendMessage("This service is temporarily disabled due to work on permissions resources.", 255, 255, 0, sourcePlayer) end end) addCommandHandler("listgroups", function(sourcePlayer, commandName, userName) if isPlayerInGroup ( sourcePlayer, "admin" ) then --[[if userName then local account = getAccount(userName) if account then local groups = getAccountData(account, "groups") if groups then exports.WSScommands:sendMessage("Groups account ".. userName .. " is in: " .. groups .. " .", 255, 255, 0, sourcePlayer) else exports.WSScommands:sendMessage("Account ".. userName .. " isn't in any groups.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Account not found.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Invalid parameters. Correct syntax: /listgroups username.", 255, 255, 0, sourcePlayer) end--]] exports.WSScommands:sendMessage("This service is temporarily disabled due to work on permissions resources.", 255, 255, 0, sourcePlayer) end end) function getAccountGroups(userName) if userName then local account = getAccount(userName) if account then local groups = getAccountData(account, "groups") if groups then return groups else return "" end else return false end else return false end end addCommandHandler("removegroup", function(sourcePlayer, commandName, userName, group) if isPlayerInGroup ( sourcePlayer, "admin" ) then --[[if ( userName and group ) then if ( validGroups[group] == true ) then local account = getAccount(userName) if account then local groupString = getAccountData(account, "groups") or "" local groups = split(groupString, ",") local isAlreadyIn = false for i,v in ipairs(groups) do if v == group then isAlreadyIn = i break end end if isAlreadyIn ~= false then table.remove(groups, isAlreadyIn) local newGroups = table.concat(groups, ",") setAccountData(account, "groups", newGroups) exports.WSScommands:sendMessage("Account " .. userName .. " removed from group " .. group .. " successfully.", 0, 255, 0, sourcePlayer) if getAccountPlayer(account) then local player = getAccountPlayer(account) cachePlayer(player) exports.WSScommands:sendMessage("You have been removed from the " .. group .. " group by admin " .. getPlayerName(sourcePlayer) .. ".", 0, 255, 0, player) end else exports.WSScommands:sendMessage("This player is not in that group.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Account not found.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Invalid group. Use /validgroups for a list of valid groups.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Invalid parameters. Correct syntax: /removegroup username group.", 255, 255, 0, sourcePlayer) end]]-- exports.WSScommands:sendMessage("This service is temporarily disabled due to work on permissions resources.", 255, 255, 0, sourcePlayer) end end) addCommandHandler("getusername", function(sourcePlayer, command, partial) if isPlayerInGroup ( sourcePlayer, "admin" ) then if partial then local player = getPlayerFromNamePart(partial) if player then local account = getPlayerAccount(player) if account then exports.WSScommands:sendMessage("Username of player " .. getPlayerName(player) .. " is: " .. getAccountName(account) .. ".", 0, 255, 0, sourcePlayer) else exports.WSScommands:sendMessage("Player " .. getPlayerName(player) .. " isn't logged in at the moment.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("No player with this name found.", 255, 255, 0, sourcePlayer) end else exports.WSScommands:sendMessage("Please specify a player name.", 255, 255, 0, sourcePlayer) end end end) function getPlayerFromNamePart(name) if name then for i, player in ipairs(getElementsByType("player")) do if string.find(getPlayerName(player):lower(), tostring(name):lower(), 1, true) then return player end end end return false end function addWSSMemberToCache () if source and isPlayerInGroup(source,"wss") then table.insert(wssCache,source) end end function removeWSSMemberFromCache() if source then for k,v in ipairs(wssCache) do if v == source then table.remove(wssCache,k) end end end end function getOnlineWSSMembers() return wssCache or false end addEventHandler("onPlayerLogIn",root,addWSSMemberToCache) addEventHandler("onPlayerLogOut",root,removeWSSMemberFromCache) addEventHandler("onPlayerQuit",root,removeWSSMemberFromCache)-
  19. orcun99

    group panel

    there is localhost this is problem? when I restart database have this error but other mysql scripts still work
  20. orcun99

    group panel

    now there is no debugscript 3 error but my groups not add selected group and I try restart acl database sql check and still not add sorry for bad english https://prnt.sc/g1dcrk http://prntscr.com/g1dd65 I select unionsoldier members and press add guiedit: admin
×
×
  • Create New...