GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: Nicolas - 2016. szeptember 02. - 19:34:04

Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 02. - 19:34:04
Üdv!
Valamiért nem akar müködni a kick/ban parancs, az ugyan ezen alapuló unban parancs azonban működik szóval nem értem mi lehet a gondja
A megadott admin level szint is meg volt adva.
(Igen, a lent látható script egy más által készített script, ezért a fejemet ne vegyétek)
Előre is köszönöm a segítséget!
Script:
 

addCommandHandler(\"ban\",
function(playerSource,commandName,targetPlayer,ttime,...)
if getElementData(playerSource, \"acc.adminLevel\") >= 3 then
   local ttime = tonumber ( ttime )
   if targetPlayer and ttime then
      local targetPlayer, targetPlayerName = exports[\'nl_system\']:findPlayerByPartialNick(thePlayer,targetPlayerNick,nil,1)
      local pSerialC = getPlayerSerial(targetPlayer)
      local duration = (ttime*60)*60
      local reason = table.concat({...}, \" \")
      local adminName = getPlayerAdminName(playerSource)
      local time = getRealTime()
      local hours = time.hour
      local minutes = time.minut
      date = string.format(\"%04d.%02d.%02d\", time.year + 1900, time.month + 1, time.monthday )
      if ttime == 0 then
         dbExec(connection ,\"INSERT INTO bans SET accountID=?, bannedBy=?, timeZone=?, playerSerial=?, reason = ?, playername=?,Date=?\",getElementData(targetPlayer, \"acc.accountID\"), adminName ,23414590357, pSerialC, reason,targetPlayerName,date)
      else
         dbExec(connection ,\"INSERT INTO bans SET accountID=?, bannedBy=?, timeZone=?, playerSerial=?, reason = ?, playername=?,Date=?\",getElementData(targetPlayer, \"acc.accountID\"), adminName ,getRealTime()[\"timestamp\"]+duration, pSerialC, reason,targetPlayerName,date)
      end
      if ttime == 0 then
         text = \"Örök\"
      else
         text = ttime .. \" óra\"
      end
      kickPlayer (targetPlayer, adminName, reason )
      outputChatBox(\"BAN - \"..adminName .. \" kitiltotta \".. targetPlayerName ..\" játékost.\",root,225, 0, 0,true)
      outputChatBox(\"BAN - Kitiltás ideje: \" .. text .. \" - Indok: \" .. reason .. \"\",root,225, 0, 0,true)
   else
      outputChatBox (\"Használat:#ffffff /\" .. commandName .. \" [iD] [óra (0 - örök)] [indok]\", playerSource,141,177,61,true)
   end
end
end
)
addCommandHandler(\"kick\",
function(playerSource,cmd, player,...)
if getElementData(playerSource,\"acc.adminLevel\") >= 8 then
   local Text = table.concat({...},\" \")
   if player and (Text or Text ~= \"\") then
      local targetPlayer, targetPlayerName = exports[\'nl_system\']:findPlayerByPartialNick(thePlayer,targetPlayerNick,nil,1)   
      kickPlayer ( targetPlayer, playerSource, Text )
   else
      outputChatBox(\"#ffffff/\".. cmd ..\" [Név] [szöveg]\", playerSource,166,196,103,true)         
   end
end
end
)
Cím: ban / kick hiba
Írta: almightymartin - 2016. szeptember 02. - 20:19:08
Még mindig ban.
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 02. - 20:20:18
Javítottam, elnézést, csak 24 órás meló után már fáradt vagyok, de ezzel egyenlő mértékben haladni is szeretnék
Cím: ban / kick hiba
Írta: ustanmufj - 2016. szeptember 02. - 20:21:34
Debug ír valamit?
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 02. - 20:23:59
Nem ad vissza semmilyen hiba értéket, nem hoz fel semmit ha beírom, de viszont unban nál vissza adja a string et azaz a \"használat\" értéket, amely azonos függvénnyel van írva.
Cím: ban / kick hiba
Írta: ustanmufj - 2016. szeptember 02. - 20:33:08
Huu bakker akkor nem tudok segíteni :(
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 02. - 21:15:18
Azért köszönöm :) addig is tovább próbálgatom :) Hát ha az lesz vele mint a kulcsos kapu rendszerrel hogy egyszer csak lőn működik :)
Cím: ban / kick hiba
Írta: Xistance - 2016. szeptember 02. - 22:49:07
Idézetet írta: Nicolas date=1472837644\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62953\" data-ipsquote-contentclass=\"forums_Topic
Üdv!
Valamiért nem akar müködni a kick/ban parancs, az ugyan ezen alapuló unban parancs azonban működik szóval nem értem mi lehet a gondja
A megadott admin level szint is meg volt adva.
(Igen, a lent látható script egy más által készített script, ezért a fejemet ne vegyétek)
Előre is köszönöm a segítséget!
Script:
 

addCommandHandler(\"ban\",
function(playerSource,commandName,targetPlayer,ttime,...)
if getElementData(playerSource, \"acc.adminLevel\") >= 3 then
   local ttime = tonumber ( ttime )
   if targetPlayer and ttime then
      local targetPlayer, targetPlayerName = exports[\'nl_system\']:findPlayerByPartialNick(thePlayer,targetPlayerNick,nil,1)
      local pSerialC = getPlayerSerial(targetPlayer)
      local duration = (ttime*60)*60
      local reason = table.concat({...}, \" \")
      local adminName = getPlayerAdminName(playerSource)
      local time = getRealTime()
      local hours = time.hour
      local minutes = time.minut
      date = string.format(\"%04d.%02d.%02d\", time.year + 1900, time.month + 1, time.monthday )
      if ttime == 0 then
         dbExec(connection ,\"INSERT INTO bans SET accountID=?, bannedBy=?, timeZone=?, playerSerial=?, reason = ?, playername=?,Date=?\",getElementData(targetPlayer, \"acc.accountID\"), adminName ,23414590357, pSerialC, reason,targetPlayerName,date)
      else
         dbExec(connection ,\"INSERT INTO bans SET accountID=?, bannedBy=?, timeZone=?, playerSerial=?, reason = ?, playername=?,Date=?\",getElementData(targetPlayer, \"acc.accountID\"), adminName ,getRealTime()[\"timestamp\"]+duration, pSerialC, reason,targetPlayerName,date)
      end
      if ttime == 0 then
         text = \"Örök\"
      else
         text = ttime .. \" óra\"
      end
      kickPlayer (targetPlayer, adminName, reason )
      outputChatBox(\"BAN - \"..adminName .. \" kitiltotta \".. targetPlayerName ..\" játékost.\",root,225, 0, 0,true)
      outputChatBox(\"BAN - Kitiltás ideje: \" .. text .. \" - Indok: \" .. reason .. \"\",root,225, 0, 0,true)
   else
      outputChatBox (\"Használat:#ffffff /\" .. commandName .. \" [iD] [óra (0 - örök)] [indok]\", playerSource,141,177,61,true)
   end
end
end
)
addCommandHandler(\"kick\",
function(playerSource,cmd, player,...)
if getElementData(playerSource,\"acc.adminLevel\") >= 8 then
   local Text = table.concat({...},\" \")
   if player and (Text or Text ~= \"\") then
      local targetPlayer, targetPlayerName = exports[\'nl_system\']:findPlayerByPartialNick(thePlayer,targetPlayerNick,nil,1)   
      kickPlayer ( targetPlayer, playerSource, Text )
   else
      outputChatBox(\"#ffffff/\".. cmd ..\" [Név] [szöveg]\", playerSource,166,196,103,true)         
   end
end
end
)

 

ACL-ben engedélyezd a kickPlayer változót
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 02. - 23:15:45
Betettem, csináltam egy restartot de nem épp akar működni, vagy én vagyok nagyon fáradt és már nem tudom mit hova írok, vagy szeret kitolni velem  :D
Megtudod mondani mit írtam el vagy mi lehet a hiba?
XML:
 
 
<group name=\"Admin\">
        <acl name=\"Moderator\"></acl>
        <acl name=\"SuperModerator\"></acl>
        <acl name=\"Admin\"></acl>
        <acl name=\"RPC\"></acl>
        <object name=\"resource.*\"></object>
    </group>
<acl name=\"Admin\">
<right name=\"function.kickPlayer\" access=\"true\" />
(és még tovább a többi...)
</acl>
Cím: ban / kick hiba
Írta: ustanmufj - 2016. szeptember 03. - 10:59:15
Akkor írtad bele az ACL-be amikor futott a szerver, és úgy restartoltad? Mert akkor probáld úgy, hogy nem fut a szeró beírod ACL-be, és utána inditod el a szervert.
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 03. - 18:56:30
Mindig ugy restartolom hogy ctrl+c leall, majd kilep a cmd ablak, majd elinditom ujra a szervert
Cím: ban / kick hiba
Írta: ustanmufj - 2016. szeptember 03. - 19:33:52
Az oké, de mikor írod bele az ACL-be?
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 03. - 20:00:43
acl be egyszer kell beleírnom, az ACL config-file ba, onnantól onnan olvassa ki minden egyes szerver indításkor tudtommal. De ha ebben tévedek akkor elnézést.
Cím: ban / kick hiba
Írta: ustanmufj - 2016. szeptember 03. - 20:41:00
De milyen állapotban volt a szerver amikor beleírtad az ACL-be?
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 03. - 21:12:13
Le volt állítva, de még mindig nem értem mi a köze hozzá ha utána már többször is le volt állítva és el volt indítva. Ha futó állapotba írom bele akkor a következő indításnál lép életbe az új ACL konfiguráció elvileg.
Cím: ban / kick hiba
Írta: BlackSy - 2016. szeptember 04. - 07:28:59
Igaz, de nálam csinálta azt is, ha futó állapotban módosítod és újraindítod a szervert, marad a régi, szóval nem menti el.
Cím: ban / kick hiba
Írta: id100 - 2016. szeptember 04. - 09:56:33
Futó állapotnak semmi köze hozzá, épp ezért van a aclReload.
illetve hogyan is működne az alap adminban az ACL kezelés ha csak restartkor frissítené.
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 04. - 11:20:31
Én úgy tudom hogy a változtatások ha +sorokat írsz bele restartkor töltenek be, míg a true/false értékek frissülnek azt hiszem (Plusz még van rá reload parancs ami frissíti az értékeket) , minden esetre ránéztem az ACL konfigurációra és elmentette mindet amit bele írtam a kickPlayer funkciót is.
Egy kicsi érdekesség, ha az összes group értékét true ra állítom müködik a kick/ban, de ha csak az admin group nál állítom be akkor nem müködik, a szerveren a legmagasabb admin rang van beállítva az accountra. ezt egy kicsit furcsának találom azért...
Cím: ban / kick hiba
Írta: danika98766 - 2016. szeptember 10. - 10:23:57
A a probléma hogy nl_system van írva és nem tudja honnan lekérdezni! Írd át az összes nl_system et globalra és jó lesz!
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 10. - 16:19:06
Már megoldódott köszönöm, az nl_system azért nl_system mert minden almappa nl_ prefix el kezdődik, így nem global, alapból azért sem mert nem valhalla a mod alapja. De köszönöm a segítő készséged!
Cím: ban / kick hiba
Írta: AlexSwamp - 2016. szeptember 14. - 09:09:46
Idézetet írta: Nicolas date=1473517146\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62953\" data-ipsquote-contentclass=\"forums_Topic
Már megoldódott köszönöm, az nl_system azért nl_system mert minden almappa nl_ prefix el kezdődik, így nem global, alapból azért sem mert nem valhalla a mod alapja. De köszönöm a segítő készséged!
 
Azért erősen megkérdőjelezi, hogy ha nem valhalla, akkor miért is valhallás játékos keresés van bent...  :D
Cím: ban / kick hiba
Írta: Nicolas - 2016. szeptember 14. - 10:40:59
Pedig nem valhalla, mint írtam egy másik mód admin systeme, a valhallás meg azért eléggé különbözik.
 

addCommandHandler( \"kick\",
function( player, commandName, otherPlayer, ... )
if otherPlayer then
   local other, name = exports.players:getFromName( player, otherPlayer, true )
   if other then
      if not hasObjectPermissionTo( other, \"command.kick\", false ) then
         local reason = table.concat( { ... }, \" \" )
         kickPlayer( other, player, #reason > 0 and reason )
      else
         outputChatBox( \"You can\'t kick this player.\", player, 255, 0, 0 )
      end
   end
else
   outputChatBox( \"Syntax: /\" .. commandName .. \" [player] [reason]\", player, 255, 255, 255 )
end
end,
true
)
addCommandHandler( \"ban\",
function( player, commandName, otherPlayer, hours, ... )
hours = tonumber( hours )
if otherPlayer and hours and hours >= 0 and ( ... ) then
   local other, name = exports.players:getFromName( player, otherPlayer, true )
   if other then
      if not hasObjectPermissionTo( other, \"command.ban\", false ) then
         local reason = table.concat( { ... }, \" \" ) .. \" (\" .. ( hours == 0 and \"Permanent\" or ( hours < 1 and ( math.ceil( hours * 60 ) .. \" minutes\" ) or ( hours .. \" hours\" ) ) ) .. \")\"
         if exports.sql:query_free( \"UPDATE wcf1_user SET banned = 1, banReason = \'%s\', banUser = \" .. exports.players:getUserID( player ) .. \" WHERE userID = \" .. exports.players:getUserID( other ), reason ) then
            local serial = getPlayerSerial( other )
            banPlayer( other, true, false, false, player, reason, math.ceil( hours * 60 * 60 ) )
            if serial then
               addBan( nil, nil, serial, player, reason .. \" (\" .. name .. \")\", math.ceil( hours * 60 * 60 ) )
            end
         end
      else
         outputChatBox( \"You can\'t ban this player.\", player, 255, 0, 0 )
      end
   end
else
   outputChatBox( \"Syntax: /\" .. commandName .. \" [player] [time in hours, 0 for infinite] [reason]\", player, 255, 255, 255 )
end
end,
true
)