20:25
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Alcoholik  
[TUT] Energy System
ImperealДата: Среда, 29.12.2010, 22:52 | Сообщение # 1
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
Собственно скрипт писался ещё в Июне,для моего Роле Плей проекта,но к сожалению мои наработки теперь не нужны мне и я отдаю их вам...
Тут я расскажу как сделать систему энергии для вашего сервера.
[cut noguest=Описание]Система работает так:Если вы бежите быстро,прыгаете,или бьёте(именно бьёте,стоит проверка на оружие,так что бага со стрельбой не будет!)то система отнимает энергию,если она равна 0,то вам ставится анимация одышки.
Скрипт прост,но думаю будет многим интересен![/cut]
И так начнём добавляем следующие форварды
Code
forward Energy();//Создаём паблик,который будет прибавлять енергию игроку

Code
forward TiredCheck();//проверяет действия игрока,и отнимает энергию игрока

Далее добавляем
Code
new Tired[MAX_PLAYERS];//флажок

Code
new sprint[MAX_PLAYERS];//флажок

Далее в паблик OnPlayerKeyStateChange добавляем проверку на бег и удары
Code
    if(GetPlayerState(playerid) == 1)
    {
     if(newkeys == 8 && GetPlayerState(playerid) == 1 ) sprint[playerid]=1;
     if(oldkeys == 8 && sprint[playerid] == 1) sprint[playerid]=0;
    }
     if(newkeys & KEY_JUMP || newkeys & KEY_SPRINT )
     {
     if(IsPlayerConnected(playerid))
     {
         if(Tired[playerid] != 1)
          {
          if(IsPlayerInAnyVehicle(playerid)){}
            if(PlayerInfo[playerid][pEnergy] <= 0)
          {}
          else if(PlayerInfo[playerid][pEnergy] <= 5)
          {PlayerInfo[playerid][pEnergy] -= 1;}
       else{PlayerInfo[playerid][pEnergy] -= 2;
         }
      }
     }
    }
    if(newkeys & KEY_FIRE )
    {
     if(GetPlayerWeapon(playerid) == 0 && GetPlayerSpecialAction(playerid) == 0 && Tired[playerid] != 1)
     {
          PlayerInfo[playerid][pEnergy] -= 5;
     }
     else if(GetPlayerWeapon(playerid) != 0 || GetPlayerSpecialAction(playerid) != 0)
     {}
    }

Далее в
Code
OnGameModeInit
добавляем
Code
SetTimer("Energy",1600,1);
       SetTimer("TiredCheck",900,1);

Далее добавляем паблики изменения состояний энергии
Code
public TiredCheck()
{
    for(new i = 0; i<MAX_PLAYERS;i++)
    {
     if(IsPlayerConnected(i))
     {
      if(!IsPlayerInAnyVehicle(i))
       {
           if(Tired[i] == 0)
           {
        if(sprint[i] != 0)
        {
         PlayerInfo[i][pEnergy] -= 1;
        }
        if(PlayerInfo[i][pEnergy] <= 1)
        {
         ApplyAnimation(i,"PED","IDLE_tired",4.1,0,1,1,1,1);
         Tired[i] = 1;
        }
       }
       else
       {
        if(PlayerInfo[i][pEnergy] >= 5)
        {
             Tired[i] = 0;
            ClearAnimations(i);
        }
        if(PlayerInfo[i][pEnergy] <= 4)
        {
             ApplyAnimation(i,"PED","IDLE_tired",4.1,0,1,1,1,1);
        }
       }
      }
     }
    }
    return 1;
}

public Energy()
{
    for(new i = 0; i<MAX_PLAYERS;i++)
    {
     if(IsPlayerConnected(i))
     {
         if(PlayerInfo[i][pEnergy] <= 99 && sprint[i] != 1)
         {
       PlayerInfo[i][pEnergy]++;
      }
      return 1;
     }
    }
    return 1;
}

P.S Не забудте добавить в аккаунт переменную pEnergy
P.S.S Код сделан под мод ГФ



Теперь переходим к GUI части
Добавляем new
Code
new Text:TextDrawForEnergy[MAX_PLAYERS];

В
Code
OnPlayerConnect

Добавляете
Code
    TextDrawForEnergy[playerid] = TextDrawCreate(1.0,440.0," ");
     TextDrawAlignment(Text:TextDrawForEnergy[playerid],1);
     TextDrawSetShadow(Text:TextDrawForEnergy[playerid],1);
     TextDrawFont(Text:TextDrawForEnergy[playerid],3);
     TextDrawSetOutline(Text:TextDrawForEnergy[playerid],1);
     TextDrawLetterSize(Text:TextDrawForEnergy[playerid],0.361999,0.800000);
     TextDrawBoxColor(Text:TextDrawForEnergy[playerid], 0x00000070);
     TextDrawTextSize(Text:TextDrawForEnergy[playerid], 800, 105);
     TextDrawUseBox(Text:TextDrawForEnergy[playerid], 1);

        TextDrawShowForPlayer(playerid,Text:TextDrawForEnergy[playerid]);

В OnPlayerUpdate
Code
new bride[64];
         format(bride,sizeof(bride),"Energy:%d",PlayerInfo[playerid][pEnergy]);
      TextDrawSetString(Text:TextDrawForEnergy[playerid],bride);
      TextDrawShowForPlayer(playerid,Text:TextDrawForEnergy[playerid]);

В OnPlayerDisconnect
Code
TextDrawDestroy(TextDrawForEnergy[playerid]);

Возможно что-то забыл код большой мод тоже,о всех багах/ошибках/недочётах писать сюда.
Вообще проверял всё работало хорошо.


[cut noguest=Скришот][/cut]



Прощай самп-рус =Р

Сообщение отредактировал Impereal - Среда, 29.12.2010, 23:12
AirKiteДата: Четверг, 30.12.2010, 20:13 | Сообщение # 2
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
У меня такая идея и последующая реализация были ещё в 2009 году :)


[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
velixДата: Четверг, 30.12.2010, 20:53 | Сообщение # 3
Группа: Удаленные





Quote (Impereal)
pEnergy

Надо в enum pInfo добавить соответствующую переменную.

Добавлено (30.12.2010, 20:53)
---------------------------------------------
Это я так для инфы, а то вдруг кто не понял

Ghost-XДата: Четверг, 30.12.2010, 21:05 | Сообщение # 4
Мастер джэдай
Группа: Продвинутые
Сообщений: 3548
Награды: 36
Город: Наб. Челны
Репутация: 856
Замечания: 40%
Статус:
Quote (Impereal)
Теперь переходим к GUI части

Quote (Impereal)
new Text:TextDrawForEnergy[MAX_PLAYERS];

С каких пор GUI и TextDraw друг с другом связаны?



Спор на форуме, все равно что олимпиада среди умственно отсталых: даже если ты победил, ты все равно гермофродит.
Хочешь остаться при своем мнении - держи его при себе.
SMOUKДата: Четверг, 30.12.2010, 21:38 | Сообщение # 5
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
Quote (Ghost-X)
С каких пор GUI и TextDraw друг с другом связаны?

А что там не так ? crazy


AlcoholikДата: Четверг, 30.12.2010, 21:47 | Сообщение # 6
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Перемещено


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
John_WoodsДата: Четверг, 30.12.2010, 21:58 | Сообщение # 7
Уверенный в себе
Группа: Продвинутые
Сообщений: 262
Награды: 4
Город: Балашиха
Репутация: 3
Замечания: 40%
Статус:
для слишком задротского РП


Тууу
xSLiMxДата: Четверг, 30.12.2010, 22:32 | Сообщение # 8
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2163
Награды: 34
Город: Ростов - на - Дону
Репутация: 1429
Замечания: 80%
Статус:
Impereal, эт не с тобой ли я это обсуждал в аське?))
ImperealДата: Четверг, 30.12.2010, 22:54 | Сообщение # 9
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
xSLiMx, да,к сожалению проекта не вышло,поэтому выкладываю:(
Quote (Ghost-X)
С каких пор GUI и TextDraw друг с другом связаны?

Разве текстдравы это не GUI?
close_tema ГУЙ-графичиский интерсфейс,вроде дравы тоже самое,вообщем если не прав извените)
Quote (AirKite)
У меня такая идея и последующая реализация были ещё в 2009 году

Молодец! А у меня летом :)
Quote (John_Woods)
для слишком задротского РП

Задротского РП? О_О
Как раз для РП это вообще должен быть стандартный скрипт,по моему мнению:)



Прощай самп-рус =Р
SMOUKДата: Четверг, 30.12.2010, 23:01 | Сообщение # 10
Местный
Группа: Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус:
Quote (Impereal)
Разве текстдравы это не GUI?

Тексдравы это и есть тексдравы а GUI это диалоговые окошечки. yes


ImperealДата: Четверг, 30.12.2010, 23:03 | Сообщение # 11
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
SMOUK, я знаю что диалоговые это ГУЙ,ну ладно ошибся с кем не бывает...)


Прощай самп-рус =Р
DiZiДата: Пятница, 31.12.2010, 05:27 | Сообщение # 12
Местный
Группа: Продвинутые
Сообщений: 669
Награды: 2
Город: новокузнецк
Репутация: 158
Замечания: 40%
Статус:
Не плохо, правда показ энергии лучше бы смотрелся в виде полоски, но это уже кому надо переделают +сик за старание =)


======= Мои проекты =======
[GM]Zombie Mod [Разработка][7%]
=======================


=====Мои работы=====
[FS] Auto Menu
[FS] AdminPanel




AirKiteДата: Пятница, 31.12.2010, 07:02 | Сообщение # 13
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Quote (golden103)
Не плохо, правда показ энергии лучше бы смотрелся в виде полоски, но это уже кому надо переделают +сик за старание =)

Да, вот не понимаю смысл делать единственный показатель Energy снизу в виде текста.

Ладно у меня:

Что бы не делать кучу полосок и т.д. делал всё в одной строке :)

Quote (John_Woods)
для слишком задротского РП

Это РПГ часть уже. :) GamePlay ;)

Добавлено (31.12.2010, 07:02)
---------------------------------------------



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
ImperealДата: Пятница, 31.12.2010, 12:04 | Сообщение # 14
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
AirKite, ппц у нас похожие идеи,у меня тоже должно было быть ввиде полоски на которой мини статс,ну а текстдрав не стал переделывать...
Был вариант с использованием ФС/инклуда который создавал полоску и на ней написано сколько енергии,и полоска отбавлялась,но искать не стал.
Кому надо текстдрав это уже мелочи,можно и самому подкрутить!



Прощай самп-рус =Р
-HaoS-Дата: Воскресенье, 02.01.2011, 14:27 | Сообщение # 15
Группа: Продвинутые
Сообщений: 472
Награды: 19
Город: Омск
Репутация: 349
Замечания: 40%
Статус:
поссаны :D

C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(1226) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(1227) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(1230) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(1485) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(1495) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(1497) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19490) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19490) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19490) : error 004: function "TiredCheck" is not implemented
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19510) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19515) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19528) : warning 225: unreachable code
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19528) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19528) : error 004: function "Energy" is not implemented
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19538) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19618) : warning 225: unreachable code
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(19618) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(32994) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(32999) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(33006) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(33008) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(33010) : warning 217: loose indentation
C:\Documents and Settings\Admin\Рабочий стол\Новая папка (8)\gamemodes\v0.1.pwn(33015) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


www.forum.relaxport.ru
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua