Jump to content

YND

Members
  • Posts

    34
  • Joined

  • Last visited

Everything posted by YND

  1. Я уже раз 25 прочитал ту статью... Я не знаю.. На примере, пожалуйста, покажите что-ли... root надо использовать со всеми евентами типа Старт сервера и т.п. ?
  2. Ну вот если указать root - что будет означать ?
  3. У меня код работал, не работал лишь вывод имени автомобиля из-за того, что я искал через id модели getVehicleName.. getVehicleNameFromModel - должен мне помочь (сейчас проверить не могу).. А так, этот код у меня работает и автомобиль спавнится.. А использую localPlayer только потому, что не могу понять что такое root, source, getRootElement... Благодаря предыдущему посту я понял, что localPlayer - это клиент, который выполняет этот скрипт (ну в общем я понял), а что такое root, source, getRootElement и в каких случаях их использовать я пока не понимаю.. А скрипт у меня работает (насколько я понимаю) потому, что я передал этого localPlayer через триггер: triggerServerEvent("zaspwcar", localPlayer, idspwcar) Секунду.. Получается, что source - это тот, кто передал переменную "idspwcar" через триггер ?? Так ? Надо тогда писать: function zaspwncarto(source, idspwcar) ? Тогда ж когда использовать root и getRootElement в addEventHandler ?..
  4. Блин.. 2й день жду ответа, а вопрос у меня не отправился Cервер: function zaspwncarto(idspwcar, localPlayer) local spwcarid = tonumber(idspwcar) local px,py,pz = getElementPosition(localPlayer) px = px + 5 local createdVehicle = createVehicle(spwcarid,px,py,pz) local vehicleNamespw = getVehicleName (spwcarid) if (createdVehicle == false) then outputChatBox(vehicleNamespw.." не заспавнен.",localPlayer) else outputChatBox(vehicleNamespw.." заспавнен.",localPlayer) end end addEvent("zaspwcar",true) addEventHandler("zaspwcar",root,zaspwncarto) Кар спавнится, отлично, но сообщение не выводится.. По-моему, говорит, что это Boolean..
  5. В samp'e, например, с выходом новой версии добавляют какие-то модели.. Есть ли в МТА замененные модели и почему бы не добавить пустые модели-болванки для того, чтобы не заменять игровую модель, а заменить эту самую болванку ?
  6. И все же не могу понять.. Сервер: function zaspwncarto(source, idspwcar) local px,py,pz = getElementPosition(source) px = px + 5 local createdVehicle = createVehicle(idspwcar,px,py,pz) if (createdVehicle == false) then -- если да, то выводим сообщение в чат, но только для игрока, который спавнил ТС. outputChatBox(getVehicleName( idspwcar ).." не заспавнен.",thePlayer) else outputChatBox(getVehicleName( idspwcar ).." заспавнен.",thePlayer) end end addEvent("idspwcar",true) addEventHandler("idspwcar",source,zaspwncarto) Клиент: local allcars = { --{ID,Название,Скорость,Тип}; {400,"Landstalker","none","Внедорожник"}; {401,"Bravura","123","Седан"}; {402,"Buffalo","none","Спортивный"}; } GUIEditor = { gridlist = {}, window = {}, addcol = {}, button = {}, } function createWindowCarSpawn() GUIEditor.window[1] = guiCreateWindow(1032, 174, 315, 340, "Spawn car", false) guiWindowSetSizable(GUIEditor.window[1], false) GUIEditor.gridlist[1] = guiCreateGridList(10, 28, 294, 237, false, GUIEditor.window[1]) GUIEditor.addcol[1] = guiGridListAddColumn(GUIEditor.gridlist[1], "ID", 0.15) GUIEditor.addcol[2] = guiGridListAddColumn(GUIEditor.gridlist[1], "Название", 0.23) GUIEditor.addcol[3] = guiGridListAddColumn(GUIEditor.gridlist[1], "Скорость", 0.2) GUIEditor.addcol[4] = guiGridListAddColumn(GUIEditor.gridlist[1], "Тип", 0.35) for i,allcars in ipairs(allcars) do guiGridListAddRow(GUIEditor.gridlist[1]) guiGridListSetItemText(GUIEditor.gridlist[1], i-1, 1, allcars[1], false, true) guiGridListSetItemText(GUIEditor.gridlist[1], i-1, 2, allcars[2], false, false) guiGridListSetItemText(GUIEditor.gridlist[1], i-1, 3, allcars[3], false, true) guiGridListSetItemText(GUIEditor.gridlist[1], i-1, 4, allcars[4], false, false) end --guiGridListAutoSizeColumn (GUIEditor.gridlist[1],GUIEditor.addcol[4]) GUIEditor.button[1] = guiCreateButton(20, 277, 124, 53, "Закрыть", false, GUIEditor.window[1]) guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[1], carspawnguioff, false ) GUIEditor.button[2] = guiCreateButton(170, 277, 124, 53, "Вызвать", false, GUIEditor.window[1]) guiSetProperty(GUIEditor.button[2], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[2], carspawnguispw, false ) guiGridListSetSelectedItem ( GUIEditor.gridlist[1], 0, 1) end --Открываем GUI по комманде < function carspawnguion(thePlayer, command) createWindowCarSpawn() if (GUIEditor.window[1] ~= nil) then guiSetVisible(GUIEditor.window[1], true) showCursor(true) -- guiSetInputEnabled(true) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был создан.") end end addCommandHandler("spwcar", carspawnguion) --Открываем GUI по комманде > --Закрываем GUI < function carspawnguioff ( button ) if button == "left" then guiSetVisible(GUIEditor.window[1], false) showCursor(false) -- guiSetInputEnabled(false) end end --Закрываем GUI > --Передаем id на серв < function carspawnguispw ( button ) if button == "left" then selectgridlist = guiGridListGetSelectedItem (GUIEditor.gridlist[1]) idspwcar = guiGridListGetItemText (GUIEditor.gridlist[1], selectgridlist, GUIEditor.addcol[1]) triggerServerEvent("zaspwcar", source, idspwcar) -- outputChatBox(idspwcar) guiSetVisible(GUIEditor.window[1], false) showCursor(false) -- guiSetInputEnabled(false) end end --Передаем id на серв > Как передать этого игрока на сервер ?????
  7. Спасибо, что ответили. Не очень понял то, что вы написали, но сейчас попробую сделать через gridlist и потом как-то передать id строки gridlist'a на сервер и через case (из pascal'я, надеюсь в lua такое есть) или же через if создавать машину.. Вопрос: почему в guiGridListSetItemText нельзя использовать просто числа ? У меня стоят числа и все работает... ----------------- Еще вопрос: как определить этого thePlayer ? Если просто дописать function zaspwnbulletto(thePlayer,px,py,pz) то работать не будет, это понятно.. Но как его определить ? ----------------- И еще один вопрос: Если использовать код как у меня выше - все работает, а если переставить строки addEventHandler ( "onClientGUIClick", GUIEditor.button[1], spwnbullet,) как правильно, после функции: function spwnbullet ( button ) if button == "left" then local px, py, pz = getElementPosition ( localPlayer ) triggerServerEvent("zaspwnbullet", getRootElement(),px,py,pz) if (GUIEditor.window[1] ~= nil) then guiSetVisible(GUIEditor.window[1], false) showCursor(false) guiSetInputEnabled(false) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был закрыт.") end end end addEventHandler ( "onClientGUIClick", GUIEditor.button[1], spwnbullet,) То работать перестает, ссылаясь на то, что GUIEditor.button[1] - nill.. Почему так ?
  8. Можете, пожалуйста, проверить валидность кода на спавн автомобиля через GUI? Клиент: GUIEditor = { button = {}, window = {}, } function createWindowCarSpawn() GUIEditor.window[1] = guiCreateWindow(1098, 194, 166, 93, "Вызвать машину", false) guiWindowSetSizable(GUIEditor.window[1], false) GUIEditor.button[1] = guiCreateButton(10, 30, 66, 19, "Bullet", false, GUIEditor.window[1]) guiSetFont(GUIEditor.button[1], "default-bold-small") guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[1], spwnbullet, false ) GUIEditor.button[2] = guiCreateButton(91, 30, 67, 19, "NRG-500", false, GUIEditor.window[1]) guiSetFont(GUIEditor.button[2], "default-bold-small") guiSetProperty(GUIEditor.button[2], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[2], spwnnrg500, false ) GUIEditor.button[3] = guiCreateButton(76, 49, 15, 15, "x", false, GUIEditor.window[1]) guiSetProperty(GUIEditor.button[3], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[3], spwnguioff, false ) GUIEditor.button[4] = guiCreateButton(10, 64, 66, 19, "Infernus", false, GUIEditor.window[1]) guiSetFont(GUIEditor.button[4], "default-bold-small") guiSetProperty(GUIEditor.button[4], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[4], spwninfernus, false ) GUIEditor.button[5] = guiCreateButton(91, 64, 66, 19, "Hunter", false, GUIEditor.window[1]) guiSetFont(GUIEditor.button[5], "default-bold-small") guiSetProperty(GUIEditor.button[5], "NormalTextColour", "FFAAAAAA") addEventHandler ( "onClientGUIClick", GUIEditor.button[5], spwnhunter, false ) guiSetVisible(GUIEditor.window[1], false) end addEventHandler("onClientResourceStart", resourceRoot, createWindowCarSpawn) --Открываем GUI по комманде < function carspawnguion(thePlayer, command) createWindowCarSpawn() if (GUIEditor.window[1] ~= nil) then --outputChatBox("dobre.", client) guiSetVisible(GUIEditor.window[1], true) showCursor(true) guiSetInputEnabled(true) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был создан.") end end addCommandHandler("spwcar", carspawnguion) --Открываем GUI по комманде > --Закрываем GUI по кнопке < function spwnguioff ( button ) if button == "left" then if (GUIEditor.window[1] ~= nil) then --outputChatBox("guiclos", client) guiSetVisible(GUIEditor.window[1], false) showCursor(false) guiSetInputEnabled(false) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был закрыт.") end end end -- Закрываем GUI по кнопке >aaaa ---- Спавн каров < -- Bullet < function spwnbullet ( button ) if button == "left" then local px, py, pz = getElementPosition ( localPlayer ) triggerServerEvent("zaspwnbullet", getRootElement(),px,py,pz) if (GUIEditor.window[1] ~= nil) then guiSetVisible(GUIEditor.window[1], false) showCursor(false) guiSetInputEnabled(false) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был закрыт.") end end end -- Bullet > -- NRG-500 < function spwnnrg500 ( button ) if button == "left" then local px, py, pz = getElementPosition ( localPlayer ) triggerServerEvent("zaspwnnrg", getRootElement(),px,py,pz) if (GUIEditor.window[1] ~= nil) then guiSetVisible(GUIEditor.window[1], false) showCursor(false) guiSetInputEnabled(false) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был закрыт.") end end end -- NRG-500 > -- Infernus < function spwninfernus ( button ) if button == "left" then local px, py, pz = getElementPosition ( localPlayer ) triggerServerEvent("zaspwninfernus", getRootElement(),px,py,pz) if (GUIEditor.window[1] ~= nil) then guiSetVisible(GUIEditor.window[1], false) showCursor(false) guiSetInputEnabled(false) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был закрыт.") end end end -- Infernus > -- Hunter < function spwnhunter ( button ) if button == "left" then local px, py, pz = getElementPosition ( localPlayer ) triggerServerEvent("zaspwnhunter", getRootElement(),px,py,pz) if (GUIEditor.window[1] ~= nil) then guiSetVisible(GUIEditor.window[1], false) showCursor(false) guiSetInputEnabled(false) else outputChatBox("Возникла непредвиденная ошибка и GUI входа не был закрыт.") end end end -- Hunter > ---- Спавн каров > Сервер: function zaspwnbulletto(px,py,pz) px = px + 5 local createdVehicle = createVehicle(541,px,py,pz) if (createdVehicle == false) then -- если да, то выводим сообщение в чат, но только для игрока, который спавнил ТС. outputChatBox("Bullet не заспавнен.",thePlayer) else outputChatBox("Bullet заспавнен.",thePlayer) end end addEvent("zaspwnbullet",true) addEventHandler("zaspwnbullet",root,zaspwnbulletto) function zaspwnnrgto(px,py,pz) px = px + 5 local createdVehicle = createVehicle(522,px,py,pz) if (createdVehicle == false) then -- если да, то выводим сообщение в чат, но только для игрока, который спавнил ТС. outputChatBox("NRG-500 не заспавнен.",thePlayer) else outputChatBox("NRG-500 заспавнен.",thePlayer) end end addEvent("zaspwnnrg",true) addEventHandler("zaspwnnrg",root,zaspwnnrgto) function zaspwninfernusto(px,py,pz) px = px + 5 local createdVehicle = createVehicle(411,px,py,pz) if (createdVehicle == false) then -- если да, то выводим сообщение в чат, но только для игрока, который спавнил ТС. outputChatBox("Infernus не заспавнен.",thePlayer) else outputChatBox("Infernus заспавнен.",thePlayer) end end addEvent("zaspwninfernus",true) addEventHandler("zaspwninfernus",root,zaspwninfernusto) function zaspwnhunterto(px,py,pz) px = px + 5 local createdVehicle = createVehicle(425,px,py,pz) if (createdVehicle == false) then -- если да, то выводим сообщение в чат, но только для игрока, который спавнил ТС. outputChatBox("Hunter не заспавнен.",thePlayer) else outputChatBox("Hunter заспавнен.",thePlayer) end end addEvent("zaspwnhunter",true) addEventHandler("zaspwnhunter",root,zaspwnhunterto) И мне кажется, что его можно сделать куда меньше.. Не подскажите как ?
×
×
  • Create New...