Как работает дюп: (Люди ждут релута, выбрасывают всё на землю, и когда появился NETWORK TROUBLE, люди начинают подбирать этот лут. После окончания релута, они подбирают в 20 раз больше).
Функции: Во время обновления точек лута, скрипт выкидывает всех с сервера и ставит пароль на сервер. После окончания релута, снимается пароль и люди снова могут зайти.
Что нам потребуется: 1. pickups.lua.
И так, приступим! 1. Для начала сделаем бекап своего файла pickups.lua (бекап - это резервное сохранение файла на случай, если вдруг не сработает)
2. Ищем такую строчку
function onPlayerChangeLoot(loot) local players = getElementsWithinColShape (loot,"player") for theKey,player in ipairs(players) do triggerClientEvent(player,"refreshLootManual",player,loot)
и выделяем содержимое от её начала до конца всего файла pickups.lua.
и заменяем этим.
function onPlayerChangeLoot(loot) local players = getElementsWithinColShape (loot,"player") for theKey,player in ipairs(players) do triggerClientEvent(player,"refreshLootManual",player,loot) end end addEvent( "onPlayerChangeLoot", true ) addEventHandler( "onPlayerChangeLoot", getRootElement(), onPlayerChangeLoot )
function playerDropAItem(itemName) local x,y,z = getElementPosition(source) local item,itemString = getItemTablePosition(itemName) local itemPickup = createItemPickup(item,x+math.random(-1.25,1.25),y+math.random(-1.25,1.25),z,itemString) end addEvent( "playerDropAItem", true ) addEventHandler( "playerDropAItem", getRootElement(), playerDropAItem )
function getItemTablePosition (itema) for id, item in ipairs(itemTable[tostring("other")]) do if itema == item[1] then return id,"other" end end
return item,itemString end
function refreshItemLoots () outputChatBox("#ffaa00ВНИМАНИЕ! #ffffff - Точки спавна лута обновляются, сервер может не отвечать некоторое время!",getRootElement(),255,255,255,true) for i, loots in ipairs(getElementsByType("colshape")) do local itemloot = getElementData(loots,"itemloot") if itemloot then local objects = getElementData(loots,"objectsINloot") if objects then if objects[1] ~= nil then destroyElement(objects[1]) end if objects[2] ~= nil then destroyElement(objects[2]) end if objects[3] ~= nil then destroyElement(objects[3]) end end destroyElement(loots) end end createPickupsOnServerStart() setServerPassword( nil ) setTimer(refreshItemLootPoints1,gameplayVariables["itemrespawntimer"] ,1) end
--Refresh items function refreshItemLootPoints () local time = getRealTime() local hour = time.hour outputChatBox("#ff2200ВНИМАНИЕ! #ffffff - Точки спавна лута подготавливаются к обновлению!",getRootElement(),255,255,255,true) setServerPassword( "ПАРОЛЬ-ТУТ" ) for i,player in ipairs(getElementsByType("player")) do kickPlayer ( player, "Релут, подождите несколько минут." ) end setTimer(refreshItemLoots,20000,1) end
--Refresh items function refreshItemLootPoints1 () outputChatBox("#ff2200ВНИМАНИЕ! #ffffff - Точки спавна лута подготавливаются к обновлению!",getRootElement(),255,0,0,true) outputChatBox("#ff2200ВНИМАНИЕ! #ffffff - В течении минуты Вы будете кикнуты, снова зайти можно будет после релута!",getRootElement(),255,0,0,true) setTimer(refreshItemLootPoints,60000,1) end setTimer(refreshItemLootPoints1,gameplayVariables["itemrespawntimer"] ,1)
Пароль вы можете сменить на свой, для начала найдите фразу "ПАРОЛЬ-ТУТ", и поставьте свой пароль не стирая кавычек!
Если у кого то не получится пишите в лс или в скайп: duxet1999321
Сообщение отредактировал DuXeT - Суббота, 28.06.2014, 12:38