Jump to content

Дада (: фулдилка


Recommended Posts

Вот еще какой момент. Можно ли сделать так, чтобы debug window открывалось автоматически, без необходимости вводить команду?

я не уверен, но можно серверно попробовать

executeCommandHandler ( 'debugscript', player, '3' ) 

при условии, что игрок залогинился и админ

Link to comment
  • Replies 2.4k
  • Created
  • Last Reply

Top Posters In This Topic

Нельзя через executeCommandHandler вызывать встроенные команды мта. Но можно для удобства сделать бинд на какую-нибудь кнопку. "/bind f2 debugscript 3"

Link to comment
Нельзя через executeCommandHandler вызывать встроенные команды мта. Но можно для удобства сделать бинд на какую-нибудь кнопку. "/bind f2 debugscript 3"

какая жаль, а почему? все-таки серверный скрипт вызывает серверную команду (я так думаю)

кстати, бинд комбинации кнопок нельзя с консоли сделать?

Link to comment
Тоади, доделай плиз триггеры :D

Завтра сделаю, я код уже давно написал и он уже давно на svn. Просто надо перекинуть пару файлов чтобы он и клиентскую часть покрыл.

Link to comment
Сколько будет MTA-серв на Linux при 16 игроках жрать ресурсов?

если мод типа freeroam, то 32 МБ ОЗУ и крошечку от проца

если полноценный ДМ/ТДМ, то в два раза больше

Link to comment

В общем вот мой скрипт, нерабочий, помогите пожалуйста что бы он работал.

addCommandHandler("arg",  
  function (thePlayer, theCommand, theTarget) 
      if (theTarget ~= "all") then 
      if ( ( getAccount ( thePlayer ) ) and ( hasObjectPermissionTo ( getAccount ( thePlayer ), "command."..theCommand ) ) ) then 
        playerName = getPlayerNameShort(thePlayer, theTarget)  
        adminName = getPlayerName(thePlayer)  
        theTarget = getPlayerFromName(playerName) 
      theVehicle = getPedOccupiedVehicle(getPlayerFromName(playerName)) 
      local bX, bY, bZ = getElementPosition(getPlayerFromName(playerName)) 
      theRamp2 = createObject(1632, bX, bY, bZ, 0, 0, 0) 
      attachElements(theRamp2, theVehicle) 
        outputChatBox(adminName .. " gives ramp to " .. playerName .. "!", getRootElement(), 255, 255, 0) 
        elseif ( ( getAccount ( thePlayer ) ) and ( hasObjectPermissionTo ( getAccount ( thePlayer ), "command.argall" ) ) ) then 
        adminName = getPlayerName(thePlayer)  
        outputChatBox(adminName .. " gives ramp to everyone!", getRootElement(), 255, 255, 0) 
             for i,thePlayer in ipairs(getElementsByType('player')) do 
          playerName = getPlayerName(thePlayer)  
      theVehicle = getPedOccupiedVehicle(getPlayerFromName(playerName)) 
      local bX, bY, bZ = getElementPosition(getPlayerFromName(playerName)) 
      theRamp2 = createObject(1632, bX, bY, bZ, 0, 0, 0) 
      attachElements(theRamp2, theVehicle) 
         end   
      else 
        outputChatBox("ERROR: Syntax error or access blocked", thePlayer, 255, 0, 0) 
      end                  
    else  
      outputChatBox("ACL: Access to /" .. theCommand .. " denied for your group", thePlayer, 255, 0, 0) 
  end 
  end 
) 

Link to comment
getAccount ( thePlayer )  

заменить на

thePlayer 

Сделал, но похоже что то не правильно и он снова не работает, вот такая ошибка:

WARNING: script\script.lua:3: Bad argument @ 'hasObjectPermissionTo' 
ERROR: script\script.lua:3: attempt to call a nil value 

Скрипт:

addCommandHandler("arg",  
  function (thePlayer, theCommand, theTarget) 
  if ((thePlayer) and ( hasObjectPermissionTo (thePlayer)) "command."..theCommand ) then 
      if (theTarget ~= "all") then 
        playerName = getPlayerNameShort(thePlayer, theTarget)  
        adminName = getPlayerName(thePlayer)  
        theTarget = getPlayerFromName(playerName) 
      theVehicle = getPedOccupiedVehicle(getPlayerFromName(playerName)) 
      local bX, bY, bZ = getElementPosition(getPlayerFromName(playerName)) 
      theRamp2 = createObject(1632, bX, bY, bZ, 0, 0, 0) 
      attachElements(theRamp2, theVehicle) 
        outputChatBox(adminName .. " gives ramp to " .. playerName .. "!")   
        adminName = getPlayerName(thePlayer)  
        outputChatBox(adminName .. " gives ramp to everyone!") 
        elseif ((thePlayer) and ( hasObjectPermissionTo (thePlayer)) "command.argall" ) then 
             for i,thePlayer in ipairs(getElementsByType('player')) do 
          playerName = getPlayerName(thePlayer)  
      theVehicle = getPedOccupiedVehicle(getPlayerFromName(playerName)) 
      local bX, bY, bZ = getElementPosition(getPlayerFromName(playerName)) 
      theRamp2 = createObject(1632, bX, bY, bZ, 0, 0, 0) 
      attachElements(theRamp2, theVehicle) 
        end   
      else 
        outputChatBox(thePlayer,"ERROR: Syntax error or access blocked") 
      end                  
    else  
      outputChatBox(thePlayer,"ACL: Access to /" .. theCommand .. " denied for your group") 
    end   
  end 
) 

Link to comment

Думаю тебе не хватает редактора с хорошей подсветкой синтаксиса.

Если приглядеться, то в строке

  if ((thePlayer) and ( hasObjectPermissionTo (thePlayer)) "command."..theCommand ) then 

hasObjectPermissionTo (thePlayer)) "command."..theCommand )  

thePlayer)) "command."..theCommand 

имеется лишняя скобка и недостает запятой. Исправляем на

  if ((thePlayer) and ( hasObjectPermissionTo (thePlayer, "command."..theCommand) ) then 

.

И вообще я считаю, что юзать лишние скобки в условиях в lua - моветон, если можно записать

if (expression) then 

как

if expression then 

, то зачем ухудшать читаемость и создавать себе лишние проблемы?

(при этом никто не запрещает группировать условия скобками. т.к. это необходимость)

Link to comment
И вообще я считаю, что юзать лишние скобки в условиях в lua - моветон

Я с Вами категорически согласен, коллега. И когда он говорил, что это его скрипт, я понял, что это не его скрипт.

Link to comment

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...