Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Да,да.Я видел,спасибо

Теперь другая проблемма,Я написал там же.

Такие заморочки у меня с этим lua,надеюсь скоро этого не будет.

И,Kenix,спасибо вам огромное,за объяснения и код.Вот щас его разбираю,мне же главное не просто,чтобы он работал,а чтобы Я понял,как там всё работает.

Задумал сделать для комьюнити мини скрипт на медика.

Проверку сделал.

Можно ли добавлять к хп игрока по 10 хп?

Этой функцией:

    setElementHealth ( source, 10+ )--Вот тут запутался. 

Link to comment
Если вы не изучите луа , то вы дальше не будете продвигаться.

...

Хорошо,Я просто видел что где-то так писали на форуме,где точно-не помню.

Спасибо и на этом,Я бы сам сделал,но,дали бы вы мне только знать в какую сторону двигаться,делаю на своём сервере один,протестить не могу...

Link to comment

про "здоровье + 10":

  • узнать текущее значение, и выставить новое значение как сумму текущего + 10

Ваще-то тут не скриптинге дело. Просто, для программирования нужна логика. У некоторых с этим делом.. увы. И наезжать на них за это не надо.

Link to comment

Я просто часть скрипта выложил,вот весь

function Medic (attacker, attackerweapon, bodypart, loss) 
 health1 = getElementHealth (source) 
  if (attackerweapon == 41) and (loss > 1) and ( health1 < 99 ) and (Medic) then 
    setElementHealth ( source, 10+ ) 
    takePlayerMoney (source, 10) 
    givePlayerMoney (attacker, 10) 
  end 
end 
addEventHandler ("onPlayerDamage", getRootElement(), Medic ) 

Link to comment

Есть функция

dxDrawText 

Есть функция Таймера

setTimer 

ВопросКак сделать так:

-Каждые 60 минут выводился текст(

dxDrawText 

С любым шрифтом.

(Не надо говорить что 1000ms=1sec,Я это знаю,просто на многих серверах в чат выводится сообщение с информацией,хочу сделать такое себе.Координаты сообщения указывать не нужно,просто пример.)

Link to comment
setElementHealth( source, getElementHealth(source) + 10 ) 

остальное, как грицца доскриптуй

if (attackerweapon == 41) and (loss > 1) and ( health1 < 99 ) and (Medic) then 

Вот же она.

Остальное и не надо.По моему мнению,щас друга попытаюсь заманить на сервер,попрошу проверить.

P.S Иногда очень сильно туплю,он поёт в скайпе. =D

Link to comment
  • Scripting Moderators
setTimer(function() 
  dxDrawText ( ... ) 
end, 6000000, 1) -- если 0, то бесконечно будет срабатывать таймер, каждые 60 минут (6000000 ms) 

Edited by Guest
Link to comment
setTimer(function() 
  dxDrawText ( ... ) 
end, 360000, 1) -- если 0, то бесконечно будет срабатывать таймер, каждые 60 минут 

А 1,это как Я понимаю-одноразовое?

Пишет bad argument

setTimer( function() 
  dxDrawText ("Trollface: ", 408, 1559 + 11, 16 + 1, 400 + 1, tocolor( 0, 255, 0, 255 ), 1, "arial", 'center', 'center', false, false )  
end, 1, 1) 

Link to comment
  • Scripting Moderators
Пишет bad argument
setTimer( function() 
  dxDrawText ("Trollface: ", 408, 1559 + 11, 16 + 1, 400 + 1, tocolor( 0, 255, 0, 255 ), 1, "arial", 'center', 'center', false, false )  
end, 1, 1) 

Измени интервал времени. Он не должен быть меньше 50 миллисекунд.

А 1,это как Я понимаю-одноразовое?

Да.

Link to comment
Пишет bad argument
setTimer( function() 
  dxDrawText ("Trollface: ", 408, 1559 + 11, 16 + 1, 400 + 1, tocolor( 0, 255, 0, 255 ), 1, "arial", 'center', 'center', false, false )  
end, 1, 1) 

Измени интервал времени. Он не должен быть меньше 50 миллисекунд.

А 1,это как Я понимаю-одноразовое?

Да.

Понятно,сейчас...)

А как сделать чтобы она оставалась там,к примеру на 20 секунд?

Link to comment
  • Scripting Moderators

Пример:

function drawText() 
    dxDrawText ('Trollface: ', 408, 155 + 11, 16 + 1, 400 + 1, tocolor( 0, 255, 0, 255 ), 1, 'arial', 'center', 'center', false, false ) 
end 
  
function onClientResourceStart() 
    addEventHandler ("onClientRender", getRootElement(), drawText) -- Добавляем обработчик, который обновляет текст 
    setTimer(function() 
    removeEventHandler ("onClientRender", getRootElement(), drawText) 
    end, 20000, 1) -- Убираем его через 20 секунд 
end 
addEventHandler("onClientResourceStart", getRootElement(), onClientResourceStart) 

Link to comment
Пример:
function drawText() 
    dxDrawText ('Trollface: ', 408, 155 + 11, 16 + 1, 400 + 1, tocolor( 0, 255, 0, 255 ), 1, 'arial', 'center', 'center', false, false ) 
end 
  
function onClientResourceStart() 
    addEventHandler ("onClientRender", getRootElement(), drawText) -- Добавляем обработчик, который обновляет текст 
    setTimer(function() 
    removeEventHandler ("onClientRender", getRootElement(), drawText) 
    end, 20000, 1) -- Убираем его через 20 секунд 
end 
addEventHandler("onClientResourceStart", getRootElement(), onClientResourceStart) 

Понятно,а что бы сделать вот так:

1.Появлялся текст через 10 секунд.

2.После появления он убирался через 5 секунд.

Или можно только так,как ты написал мне?

Как загрузить свой шрифт?

Link to comment
Пример:
function drawText() 
    dxDrawText ('Trollface: ', 408, 155 + 11, 16 + 1, 400 + 1, tocolor( 0, 255, 0, 255 ), 1, 'arial', 'center', 'center', false, false ) 
end 
  
function onClientResourceStart() 
    addEventHandler ("onClientRender", getRootElement(), drawText) -- Добавляем обработчик, который обновляет текст 
    setTimer(function() 
    removeEventHandler ("onClientRender", getRootElement(), drawText) 
    end, 20000, 1) -- Убираем его через 20 секунд 
end 
addEventHandler("onClientResourceStart", getRootElement(), onClientResourceStart) 

Понятно,а что бы сделать вот так:

1.Появлялся текст через 10 секунд.

2.После появления он убирался через 5 секунд.

Или можно только так,как ты написал мне?

Как загрузить свой шрифт?

тебе нужен textlib.lua стандартный чтобы юзать этот текст, как пример:

function setInfotx() 
local x, y = guiGetScreenSize() 
asd = dxText:create("WElcomE guys", x-170, y/14 -40 + 1, false, "bankgothic", 0.6, "center" ) 
asd:type('stroke', 1, 0, 0, 0, 255) 
setTimer( 
function() 
    therandom = math.random(7) 
    if therandom == 1 then 
        asd:text("FACEPALM") 
    elseif therandom == 2 then 
        asd:position(x-135, y/14 -40 + 1, false) 
        asd:text("LOL") 
    elseif therandom == 3 then 
        asd:position(x-135, y/14 -40 + 1, false) 
        asd:text("OMG") 
    elseif therandom == 4 then 
        asd:position(x-135, y/14 -40 + 1, false) 
        asd:text("O_O") 
    elseif therandom == 5 then 
        asd:position(x-135, y/14 -40 + 1, false) 
        asd:text("HAHA") 
    end 
end, 
10000, 0) 
  
end 
setTimer ( setInfotx, 1000, 1) 
  

Можно писать текст с цветом..

asd:text("#ff0000H#00ff00A#ff4500H#0000ffA") 

будет HAHA

Link to comment

bindKey на твою кнопку и в обработчике уже юзаем getBlipColor / setBlipColor. Последний параметр в setBlipColor это прозрачность. Если выставить прозрачность как 0, то значок не будет виден, но будет существовать как элемент. Можно, канеш, просто удалить blip элемент (:

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...