 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[TUT] Energy System
| |
| Impereal | Дата: Среда, 29.12.2010, 22:52 | Сообщение # 1 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Собственно скрипт писался ещё в Июне,для моего Роле Плей проекта,но к сожалению мои наработки теперь не нужны мне и я отдаю их вам... Тут я расскажу как сделать систему энергии для вашего сервера. [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 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 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 |
|
Группа:
Удаленные
| Надо в 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 друг с другом связаны? А что там не так ? 

|
| |
|
|
| 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
Город: Санкт-Петербург
| xSLiMx, да,к сожалению проекта не вышло,поэтому выкладываю:( Quote (Ghost-X) С каких пор GUI и TextDraw друг с другом связаны? Разве текстдравы это не GUI? ГУЙ-графичиский интерсфейс,вроде дравы тоже самое,вообщем если не прав извените) Quote (AirKite) У меня такая идея и последующая реализация были ещё в 2009 году Молодец! А у меня летом Quote (John_Woods) для слишком задротского РП Задротского РП? О_О Как раз для РП это вообще должен быть стандартный скрипт,по моему мнению:)
Прощай самп-рус =Р
|
| |
|
|
| SMOUK | Дата: Четверг, 30.12.2010, 23:01 | Сообщение # 10 |
|
Местный
Группа:
Продвинутые
Сообщений: 646
Награды: 13
Город: Рославль
Репутация: 284
Замечания: 100%
Статус: 
| Quote (Impereal) Разве текстдравы это не GUI? Тексдравы это и есть тексдравы а GUI это диалоговые окошечки. 

|
| |
|
|
| Impereal | Дата: Четверг, 30.12.2010, 23:03 | Сообщение # 11 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| 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
Город: Санкт-Петербург
| AirKite, ппц у нас похожие идеи,у меня тоже должно было быть ввиде полоски на которой мини статс,ну а текстдрав не стал переделывать... Был вариант с использованием ФС/инклуда который создавал полоску и на ней написано сколько енергии,и полоска отбавлялась,но искать не стал. Кому надо текстдрав это уже мелочи,можно и самому подкрутить!
Прощай самп-рус =Р
|
| |
|
|
| -HaoS- | Дата: Воскресенье, 02.01.2011, 14:27 | Сообщение # 15 |
|
Группа:
Продвинутые
Сообщений: 472
Награды: 19
Город: Омск
Репутация: 349
Замечания: 40%
Статус: 
| поссаны 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
|
| |
|
|
|
 |
|
 | |
| |
|