Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 5 из 5

Тема: Мусор

  1. #1
    Аватар для weather
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.02.2016
    Сообщений
    19
    Репутация:
    0 ±

    Мусор

    Пикапы,

    Код:
    	else if(pickupid < MusorPick[0] || pickupid > MusorPick[9])
        {
    		new string[256];
            if(IsPlayerInRangeOfPoint(playerid, 1, 1377.1754,-1818.2507,13.5469)) MusorKolvo[0] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[0]); Update3DTextLabelText(MusorText[0], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 434.6079,-1765.6665,5.6565)) MusorKolvo[1] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[1]); Update3DTextLabelText(MusorText[1], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 1053.2021,-1663.6962,13.6755)) MusorKolvo[2] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[2]); Update3DTextLabelText(MusorText[2], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 1154.0088,-1386.5439,13.7745)) MusorKolvo[3] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[3]); Update3DTextLabelText(MusorText[3], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 1006.9993,-949.4228,42.2195)) MusorKolvo[4] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[4]); Update3DTextLabelText(MusorText[4], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 2515.8325,-1774.7601,13.5469)) MusorKolvo[5] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[5]); Update3DTextLabelText(MusorText[5], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 2405.7766,-1240.3666,23.8125)) MusorKolvo[6] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[6]); Update3DTextLabelText(MusorText[6], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 1833.7902,-1404.8774,13.4659)) MusorKolvo[7] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[7]); Update3DTextLabelText(MusorText[7], -1, string);
            if(IsPlayerInRangeOfPoint(playerid, 1, 1902.2803,-1767.3878,13.5529)) MusorKolvo[8] -= 1; format(string, sizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[8]); Update3DTextLabelText(MusorText[8], -1, string);
    	}
    Как это место оптимизировать?
    И еще чтобы можно брать до 0, в каждом баке. И если взял допустим от 1 бака, осталось 9, стоит таймер, и через некоторое появляется +1.. подскажите?

  2. #2
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,360
    Репутация:
    113 ±
      Открыть/закрыть
    1) Подсчитать правильно new string[256];(там точно не столько юзается)
    2) Забыть о sizeof и вписать вручную размер этой ячейки.
    3) Судя по коду находясь в любой точке идёт апдейт всех надписей, зачем?
    Можно сделать апдейт там где мы были, вместо такого:

    PHP код:
    if(IsPlayerInRangeOfPoint(playerid11377.1754,-1818.2507,13.5469)) MusorKolvo[0] -= 1;
    format(stringsizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[0]);
    Update3DTextLabelText(MusorText[0], -1string);

    if(
    IsPlayerInRangeOfPoint(playerid1434.6079,-1765.6665,5.6565)) MusorKolvo[1] -= 1;
    format(stringsizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[1]);
    Update3DTextLabelText(MusorText[1], -1string); 
    Примерно вот такой:

    PHP код:
    if(IsPlayerInRangeOfPoint(playerid11377.1754,-1818.2507,13.5469))
    {
        
    MusorKolvo[0] -= 1;
        
    format(stringsizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[0]);
        
    Update3DTextLabelText(MusorText[0], -1string);
    }
    if(
    IsPlayerInRangeOfPoint(playerid1434.6079,-1765.6665,5.6565))
    {
        
    MusorKolvo[1] -= 1;
        
    format(stringsizeof(string), "Мусора в баке:{FFD435} %i/10",MusorKolvo[1]);
        
    Update3DTextLabelText(MusorText[1], -1string);

    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  3. #3
    Аватар для weather
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.02.2016
    Сообщений
    19
    Репутация:
    0 ±
    А как таймер сделать? Если допустим 1 пакет мусора взял,
    то через 5 минут прибавляется снова

  4. #4
    Аватар для weather
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.02.2016
    Сообщений
    19
    Репутация:
    0 ±
    Проблема!

    Мусорок несколько, а один таймер создавать на все мусорки как-то не хочется, что посоветуете сделать?

  5. #5
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    469
    Репутация:
    13 ±
    Цитата Сообщение от weather Посмотреть сообщение
    Проблема!

    Мусорок несколько, а один таймер создавать на все мусорки как-то не хочется, что посоветуете сделать?
    Можно сделать один таймер на все мусорки, и в самом таймере сделать цикл на проверку, если в мусорке меньше 9 мусора, то устанавливаем 10 мусора (кг, или чего там)

    От этого мод хуже работать не будет. Как по мне лучше сделать так, чем например делать для каждой мусорки, один таймер. К тому же будет стоять проверка..

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •