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

 



 
          





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





Последние Файлы 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  
[FAQ]Бензин+спидометр...
LatronДата: Вторник, 29.03.2011, 00:58 | Сообщение # 1
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Бензин.
И так в факе я расскажу вам как добавить на сервер бензин и спидометр...
Автор фака по добавлению бензина Xe[N]o...

1)в public OnGameModeInit,добавим таймер

Code
SetTimer("FuelCheck",10000,1);  

2)добавляем public без разницы куда,например в конец мода

Code
new Fuel[2000]; //Переменная котороя отвечает за бензин в машинах
forward FuelCheck(); //Функция создания паблика
public FuelCheck() //Действия паблика
{
for(new i; i<GetMaxPlayers();) //запускаем цикл, он будет повторятся пока i не будет ровна
//Максимальному количиству игроков установленому в Server.cfg
{
if(IsPlayerInAnyVehicle(i)) //Если игрок с айди  = i, сидит в любой машине
{
Fuel[GetPlayerVehicleID(i)] -= 1; //Отнимаем 1 литр бензина у машины игрока
if(Fuel[GetPlayerVehicleID(i)] > 1 ) //Если бензина в машине игрока меньше 1 литра
{
RemovePlayerFromVehicle(i); //Выстовляем игрока из машины
SendClientMessage(i,0xffd400aa,"В этой машине нет бинзина"); //отпровляем игроку сообщение
}
++i;
}
}

return 1;
}

3)В public OnPlayerStateChange,вставляем

Code

if(newstate == 2) //Если игрок водитель авто, зачем нам выкидывать пассажиров?  
{
if(Fuel[GetPlayerVehicleID(playerid)] < 1) //Если в тачке нет бензина
{
RemovePlayerFromVehicle(playerid); //Выкидываем игрока
SendClientMessage(playerid,0xffd400aa,"В этой машине нет бинзина"); //и отпровляем ему сообщение
}
}


Спидометр

1)создаем функцию которая будет узнавать скорость

Code
stock GetVehicleSpeed(playerid)
{   
     new Float:speed[4]; // Объявляем одномерный массив с вещественным типом переменных
     if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),speed[0],speed[1],speed[2]); // Если игрок в каком-либо транспорте, то узнаем скорость его ТС по x, y и z и записываем их в массив
     speed[3] = floatsqroot(floatpower(floatabs(speed[0]), 2.0) + floatpower(floatabs(speed[1]), 2.0) + floatpower(floatabs(speed[2]), 2.0)) * 253.3; // узнаем квадратный корень и записываем в speed[3]
     return floatround(speed[3]); // возвращаем
}  

2)Ко всем new,добавляем

Code
new Text:Speed[MAX_PLAYERS];

3)В public OnPlayerConnect добавляем,

Code
    Speed[playerid] = TextDrawCreate(260.0, 431.0,"~y~km/h: ~w~0   ~y~Benzin: ~w~0   ~y~Health: ~w~0"); // Делаем textdraw (~y~ - желтый цвет; ~w~ - белый) \
     TextDrawAlignment(Speed[playerid],0); // Выравнивание. В данном случае 0 (нет 0) А вообще 1 - по левому краю, 2 - по ширине, 3 - по правому краю
     TextDrawBackgroundColor(Speed[playerid],0x000000FF); // Цвет обводки (в данном случае черный)
     TextDrawFont(Speed[playerid],1); // Тип ТекстДрава  
     TextDrawSetOutline(Speed[playerid], 2); //Толщина обводки
     TextDrawLetterSize(Speed[playerid],0.350000,1.300000); // Размер символов  
     TextDrawColor(Speed[playerid],0xFFFFFFFF);//цвет символов
     TextDrawSetProportional(Speed[playerid],1); //

4)Ко всем forward добавляем,

Code
forward SpeedUpdate();  

5)В public OnGameModeInit вставляем,

SetTimer("SpeedUpdate",1000,1); /*это время обновления текстдрава.*/

6)Теперь в конец мода

Code
public SpeedUpdate()
{
     new string[255]; // объявляем одномерный массив
     for(new i; i<MAX_PLAYERS; i++) // объявляем цикл  
     {
         if(GetPlayerState(i) == PLAYER_STATE_DRIVER) // Если игрок - водитель ТС
         {
             new Float:vhealth; // объявляем переменную вещественного типа (hp авто)
             GetVehicleHealth(GetPlayerVehicleID(i), vhealth); // Узнаем hp авто и запишем его в переменную vhealth
             format(string, sizeof(string), "~y~Km/h: ~w~%d   ~y~Benzin: ~w~%d   ~y~Health: ~w~%.f", GetVehicleSpeed(i), Fuel[GetPlayerVehicleID(i)], vhealth); // Создадим текст, который будет в текстдраве
             TextDrawSetString(Speed[i], string); // Обновим текстдрав
           }
     }
     return 1;
}   

7)В public OnPlayerStateChange

Code
if(newstate == PLAYER_STATE_DRIVER) // Если игрок стал водителем
{
      TextDrawShowForPlayer(playerid, Speed[playerid]); // Теперь он будет показываться
}
if(newstate == PLAYER_STATE_ONFOOT) // Если игрок стал пешеходом
{
      TextDrawHideForPlayer(playerid, Speed[playerid]);  // скроем текстдрав
}     

Вот и всё...возникнут проблемы пишем сюда...
Кому помогло ставим +


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


Drago_JekaДата: Вторник, 29.03.2011, 05:30 | Сообщение # 2
Группа: I'm V.I.P.
Сообщений: 754
Награды: 41
Город: Где-то там...
Замечания: 0%
Статус:
Quote (Latron)
if(Fuel[GetPlayerVehicleID(i)] > 1 )

Quote
if(Fuel[GetPlayerVehicleID(i)] < 1 )

Зачем юзать 2 таймера?

> public SpeedUpdate()

> public FuelCheck()

Лишняя нагрузка на сервер! Одного будет вполне достаточно. :)




Сообщение отредактировал Drago_Jeka - Вторник, 29.03.2011, 05:30
DiSEДата: Вторник, 29.03.2011, 09:01 | Сообщение # 3
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
Quote
RemovePlayerFromVehicle(playerid); //Выкидываем игрока

думаю лучше просто заморозить игрока

Vadim_FortesДата: Вторник, 29.03.2011, 14:33 | Сообщение # 4
Освоившийся
Группа: Пользователи
Сообщений: 145
Награды: 1
Город: Кадуй
Репутация: -10
Замечания: 0%
Статус:
Quote (Latron)
    Speed[playerid] = TextDrawCreate(260.0, 431.0,"~y~km/h: ~w~0   ~y~Benzin: ~w~0   ~y~Health: ~w~0"); // Делаем textdraw (~y~ - желтый цвет; ~w~ - белый) \      TextDrawAlignment(Speed[playerid],0); // Выравнивание. В данном случае 0 (нет 0) А вообще 1 - по левому краю, 2 - по ширине, 3 - по правому краю      TextDrawBackgroundColor(Speed[playerid],0x000000FF); // Цвет обводки (в данном случае черный)      TextDrawFont(Speed[playerid],1); // Тип ТекстДрава       TextDrawSetOutline(Speed[playerid], 2); //Толщина обводки      TextDrawLetterSize(Speed[playerid],0.350000,1.300000); // Размер символов       TextDrawColor(Speed[playerid],0xFFFFFFFF);//цвет символов      TextDrawSetProportional(Speed[playerid],1); //

спс вот за это что всё обозначил а так у меня уже есть и бенхин и спедометр



176.32.39.56:7777 Заходим
Eclipse)Дата: Вторник, 29.03.2011, 15:14 | Сообщение # 5
Новенький
Группа: Пользователи
Сообщений: 48
Награды: 0
Город: City
Репутация: 3
Замечания: 0%
Статус:
Latron, Спасибо)Пригодится данная инфа, пошёл испытывать)жаль что не могу ставить +(


xex)
SatelliteДата: Вторник, 29.03.2011, 17:38 | Сообщение # 6
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Quote (DiSE)
думаю лучше просто заморозить игрока

Проще заглушить двигатель. А в заводке двигателя сделать проверку на бенз, нет бенза - не заведешь.

LatronДата: Вторник, 29.03.2011, 19:30 | Сообщение # 7
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
DiSE, Satellite, Но это же меняет кто как хочет...


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


Fus1Дата: Вторник, 29.03.2011, 22:05 | Сообщение # 8
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
можно скрины спидометра?
_WanteD_Дата: Четверг, 31.03.2011, 10:31 | Сообщение # 9
Новенький
Группа: Пользователи
Сообщений: 1
Награды: 0
Город: Екатеринбург
Репутация: 0
Замечания: 0%
Статус:
D:\Максим\JustGame(0.3c)\Сервак\gamemodes\gf.pwn(2113) : error 049: invalid line continuation
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

немогу понять как сделать все перепробывал...
вот страка
TextDrawAlignment(Speed[playerid],0 пробывал и 1 2 3 ); // Âûðàâíèâàíèå.  äàííîì ñëó÷àå 0 (íåò 0) À âîîáùå 1 - ïî ëåâîìó êðàþ, 2 - ïî øèðèíå, 3 - ïî ïðàâîìó êðàþ


хахахах
crackerДата: Воскресенье, 03.04.2011, 08:41 | Сообщение # 10
Уверенный в себе
Группа: I'm V.I.P.
Сообщений: 198
Награды: 5
Город: Красноярск
Репутация: 74
Замечания: 60%
Статус:
(3027) : error 049: invalid line continuation
(10171) : error 017: undefined symbol "Fuel"
(10171) : error 001: expected token: ";", but found "]"
(10171) : error 029: invalid expression, assumed zero
(10171) : fatal error 107: too many error messages on one line

5 Errors.

Вот строка (3027)TextDrawAlignment(Speed[playerid],0); // Выравнивание. В данном случае 0 (нет 0) А вообще 1 - по левому краю, 2 - по ширине, 3 - по правому краю

И вот (10171)if(Fuel[GetPlayerVehicleID(playerid)] < 1) //Если в тачке нет бензина
Помогите. очень надо

Fus1Дата: Воскресенье, 03.04.2011, 10:52 | Сообщение # 11
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
можно скрины спидометра !???? Выложите кто нибудь за "+"
LatronДата: Понедельник, 04.04.2011, 05:32 | Сообщение # 12
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
ну раз плюсик тада чё....вот смотри



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


Fus1Дата: Понедельник, 04.04.2011, 07:31 | Сообщение # 13
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
Спасибо !!!
LatronДата: Четверг, 14.04.2011, 20:33 | Сообщение # 14
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Fus1,незашто)

[off]20 символов[/off]


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )


Myxa196Дата: Суббота, 23.04.2011, 13:42 | Сообщение # 15
Постоялец
Группа: Пользователи
Сообщений: 365
Награды: 25
Город: Одесса
Репутация: -3559
Замечания: 100%
Статус:
спс хорошый урок


Хотите мира? Готовьтесь к войне!

Вступайте http://vkontakte.ru/gtasamp03 буду благодарен)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


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