Pawno система личного автомобиля

SamPawno

Система личных авто

Описание: Уроки по скриптингу
Модератор: SJplayer

#1 Дим » 6 мая 2013, 11:36

Система личных авто
Автор: Kurt.Cobain

Вообщем суть такова.
Прописываешь /truck — покупаешь автомобиль (если нету) потом если есть автомобиль то в /truck появляется строка » Взять автомобиль » т.е автомобиль ТП к вам и автоматически садитесь в него.
Есть мини информация о автомобиле, я сделал 5 ТС для покупки.

#define CAR_INFO 1488
new LichCar [ MAX_VEHICLES ];
new createdvehs ;
new CarInfo [ MAX_PLAYERS ];

PlayerInfo [ playerid ][ pCarc ] = 0 ;

Далее сделайте сохранение для pCarc

case CAR_INFO + 1 : //КАР ИНФО
<
if( response )
<
if( strval ( inputtext ) 1 || strval ( inputtext ) > 5 ) return SCM ( playerid , — 1 , «Неверный номер.» );
if( strval ( inputtext ) == 1 )
<
if( PlayerInfo [ playerid ][ pCash ] 10000 ) return SCM ( playerid , — 1 , «У вас не достаточно денег» );
PlayerInfo [ playerid ][ pCarc ] = 411 ;
SCM ( playerid , — 1 , «Вы успешно приобрели <42aaff>INFERNUS за 10.000 рублей» );
>
if( strval ( inputtext ) == 2 )
<
if( PlayerInfo [ playerid ][ pCash ] 20000 ) return SCM ( playerid , — 1 , «У вас не достаточно денег» );
PlayerInfo [ playerid ][ pCarc ] = 522 ;
SCM ( playerid , — 1 , «Вы успешно приобрели <42aaff>NRG-500 за 20.000 рублей» );
>
if( strval ( inputtext ) == 3 )
<
if( PlayerInfo [ playerid ][ pCash ] 30000 ) return SCM ( playerid , — 1 , «У вас не достаточно денег» );
PlayerInfo [ playerid ][ pCarc ] = 521 ;
SCM ( playerid , — 1 , «Вы успешно приобрели <42aaff>FCR-900 за 30.000 рублей» );
>
if( strval ( inputtext ) == 4 )
<
if( PlayerInfo [ playerid ][ pCash ] 40000 ) return SCM ( playerid , — 1 , «У вас не достаточно денег» );
PlayerInfo [ playerid ][ pCarc ] = 560 ;
SCM ( playerid , — 1 , «Вы успешно приобрели <42aaff>SULTAN за 40.000 рублей» );
>
if( strval ( inputtext ) == 5 )
<
if( PlayerInfo [ playerid ][ pCash ] 50000 ) return SCM ( playerid , — 1 , «У вас не достаточно денег» );
PlayerInfo [ playerid ][ pCarc ] = 477 ;
SCM ( playerid , — 1 , «Вы успешно приобрели <42aaff>ZR-350 за 50.000 рублей» );
>
>
else return 1 ;
>

case CAR_INFO :
<
if(! response ) return 1 ;
switch( listitem )
<
case 0 :
<
if( PlayerInfo [ playerid ][ pCarc ] == 0 ) return SCM ( playerid ,- 1 , «У вас нет автомобиля» );
new ttext [ 10 ];
switch( PlayerInfo [ playerid ][ pCarc ])
<
case 411 : ttext = «10.000$» ;
case 522 : ttext = «20.000$» ;
case 521 : ttext = «30.000$» ;
case 560 : ttext = «40.000$» ;
case 477 : ttext = «50.000$» ;
>
new string [ 1044 ], text [ 256 ];
format ( text , sizeof ( text ), «<42aaff>CТАТИСТИКА:\n\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «Номер модели авто: %d\n» , PlayerInfo [ playerid ][ pCarc ]), strcat ( string , text );
format ( text , sizeof ( text ), «Гос. стоимость: %s » , ttext ), strcat ( string , text );
ShowPlayerDialog ( playerid , 1488 , DIALOG_STYLE_MSGBOX , «Информация» , string , «Закрыть» , «» );
>
case 1 :
<
new string [ 1044 ], text [ 256 ];
format ( text , sizeof ( text ), «Для покупки нового автомобиля вам нужно\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «ввести номер присвоенный к данной модели транспорта\n\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «№ 1 — Infernus\t |\t10.000 рублей\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «№ 2 — NRG — 500 |\t20.000 рублей\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «№ 3 — FCR — 900 |\t30.000 рублей\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «№ 4 — Sultan\t |\t40.000 рублей\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «№ 5 — ZR-350\t |\t50.000 рублей\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «Чтобы выбрать один из автомобилей просто введите\n» ), strcat ( string , text );
format ( text , sizeof ( text ), «его номер в строку ниже <7fff00>например «1» или «2»\n» ), strcat ( string , text );
ShowPlayerDialog ( playerid , CAR_INFO + 1 , DIALOG_STYLE_INPUT , «Покупка автомобиля» , string , «Купить» , «Закрыть» );
>
case 2 :
<
new Float : Xx , Float : Yy , Float : Zz ;
GetPlayerPos ( playerid , Xx , Yy , Zz );
LichCar [ createdvehs ] = CreateVehicle ( PlayerInfo [ playerid ][ pCarc ], Xx , Yy , Zz , 0.0 , 1 , 2 , 60000 );
CarInfo [ playerid ] = 1 ;
PutPlayerInVehicle ( playerid , LichCar [ createdvehs ], 0 );
>
>
>

Источник статьи: http://sampawno.ru/viewtopic.php?t=336

Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!: Система личного автомобиля — Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Школа скриптинга
  • Уроки
  • Правила форума
  • Просмотр новых публикаций

  • Группа: Активные пользователи
  • Сообщений: 1 774
  • Регистрация: 28 декабря 15

В этом уроке мы на учимся привязывать автомобиль к игроку
Приступим:
Ко всем new добавим 1 переменную для автомобиля:

Дальше мы идём в OnGameModeInit() и добавим строку

0,0 это цвет кара
Дальше идём в public OnPlayerStateChange(playerid, newstate, oldstate)
И добавим следующие строки:

Функция проверки ника

В принципе всё кому не понятно пишите

Сообщение отредактировал Vitya: 05 января 2016 — 01:22

  • Группа: Vip
  • Сообщений: 5 581
  • Регистрация: 09 января 13

Vitya (05 января 2016 — 01:19) писал:

В этом уроке мы на учимся привязывать автомобиль к игроку
Приступим:
Ко всем new добавим 1 переменную для автомобиля:

Дальше мы идём в OnGameModeInit() и добавим строку

0,0 это цвет кара
Дальше идём в public OnPlayerStateChange(playerid, newstate, oldstate)
И добавим следующие строки:

Функция проверки ника

В принципе всё кому не понятно пишите

Но игрок же все равно сядет в авто на 1 сек. Это не по рп.

Сообщение отредактировал m1n1vv: 05 января 2016 — 01:25

Источник статьи: http://pawn-wiki.ru/index.php?/topic/29964-sistema-lichnogo-avtomobilja/

Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!: Система транспорта (+ авторынок) — Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Школа скриптинга
  • Готовые решения
  • Правила форума
  • Просмотр новых публикаций

  • (5 Страниц)
  • 1
  • 2
  • 3
  • >
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

  • Группа: Администраторы
  • Сообщений: 2 621
  • Регистрация: 13 октября 11

Простая система транспорта, предназначена для игровых режимов с 0. Система подойдет отлично для DM,TDM режимов, а может и для RPG.
Возможности администратора :
— Добавление транспорта из игры (при добавлении транспорта если указать цену равную 0, то транспорт будет доступен всем) = /acreateveh;
— Припарковать любой транспорт = /avpark;
Возможности игроков :
— Управление транспортом: завести / заглушить, включить / выключить фары, открыть / закрыть багаж, капот = /eng, /lights, /bonnet, /boot;
— Продажа транспорта = /vsell;
— Продажа транспорта другому игроку = /vsellto;
— Закрывать /открывать замки транспорта = /vlock;
— Парковка транспорта = /vpark;
— Возможность иметь неограниченное кол-во личного транспорта;

• Шаг 1 : ко всем define’s добавляем :

• Шаг 2 : в начало мода, ко всем переменным (new’s) добавляем :

• Шаг 3 : в конец мода добавьте функции :

• Шаг 4 : в OnPlayerCommandText :

• Шаг 5 : в OnPlayerDialogResponse :

• Шаг 6 : в OnPlayerStateChange добавляем :

• Шаг 7 : в OnGameModeInit :

• Шаг 8 : в OnPlayerSpawn :

• Шаг 9 : все необходимое для работы скрипта :

Для корректной работы скрипта вам понадобится плагин sscanf и библиотека mxINI:

(по поводу установки можете посмотреть в этом уроке: перейти)

Так же, в папку scriptfiles поставьте это (папку vehicles): vehicles.rar [193байт]
Не забудьте поставить проверки на администратора в нужных местах (я отметил комментариями), и, в OnDialogResponse используется switch, поэтому вместо if(dialogid==D_V_SELL_TO) стоит case D_V_SELL_TO. Возможно, что ид диалогов которые я указал в константах уже будут заняты в вашем моде, в этом случае стоит их изменить.

Источник статьи: http://pawn-wiki.ru/index.php?/topic/12671-sistema-transporta-avtorinok/

Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!: Система автомобилей — Форум Pawn-Wiki.Ru — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Первая помощь
  • Вопросы по скриптингу
  • Правила форума
  • Просмотр новых публикаций

  • Группа: Пользователи
  • Сообщений: 4
  • Регистрация: 18 февраля 20

Здраствуйте, пытался сделать систему личного авто, но что-то не выходит, вроде бы уже разобрался с сохранением в базу данных, но появляются новые проблемы: то координаты транспорта не сохраняются.
Вообщем я понял проблему: у меня не получается связать vehicleid и cId.
Вот все что получилось сделать

И часть кода которой я пытался сохранить последнюю позицию авто

  • Группа: Активные пользователи
  • Сообщений: 3 169
  • Регистрация: 14 марта 12

Тебе нужно сначала выгружать данные из БД во временные локальные переменные, после создавать автомобиль на основе этих данных, записывать его ID и уже этот ID использовать в качестве индекса для массива CarInfo.

Источник статьи: http://pawn-wiki.ru/index.php?/topic/49599-sistema-avtomobilei/

Тема: Система личного транспорта.

Опции темы
Поиск по теме

Система личного транспорта.

Всем привет. Пишу систему личного ТС с 0. (MqSql r34)
Я наслышан, что ТС лучше начинать от ID 1. Это так, к слову.
Всё было хорошо до того момента, когда игрок покупает транспорт.
Суть проблемы такова:
На сервере 3 машины (ID 1, ID 2, ID 3). Игрок покупает машину с ID 2, но после покупки, машина с ID 2 остается не проданной (3D-Text не меняется), а машина с ID 3 приобретает 3D-text купленной машины ID 2 (Владелец: Camelot\n ID: 2).
Не уверен, что вы меня поняли, но суть самой проблемы должна быть понятна. Я уже 3-й день не могу понять. Может вы мне поможете.

public OnGameModeInit ()
<
mysql_function_query ( cHandle , «SELECT * FROM `Cars`» , true , «BuyCarsLoad» , «» );
>

const MAX_BUYCARS = 3 ;
enum cInfo < veh , ID , Owner [ 20 ], Model , Level , Price , Clr1 , Clr2 , Float : X , Float : Y , Float : Z , Float : A , Float : Heal , Dmg1 , Dmg2 , Dmg3 , Dmg4 , PJob , Text3D : Text >
new carInfo [ MAX_BUYCARS ][ cInfo ], allCars ;
publics : BuyCarsLoad ()
<
new timewe = GetTickCount ();
cache_get_data ( rows , fields );
if(! rows ) return print( «Error: Личный транспорт — Таблица пуста» );
for(new car ; car != rows ; car ++)
<
carInfo [ car ][ ID ] = getint ( car , «ID» );
carInfo [ car ][ Model ] = getint ( car , «Model» );
carInfo [ car ][ Level ] = getint ( car , «Level» );
carInfo [ car ][ Price ] = getint ( car , «Price» );
carInfo [ car ][ Clr1 ] = getint ( car , «Clr1» );
carInfo [ car ][ Clr2 ] = getint ( car , «Clr2» );
carInfo [ car ][ X ] = getpos ( car , «X» );
carInfo [ car ][ Y ] = getpos ( car , «Y» );
carInfo [ car ][ Z ] = getpos ( car , «Z» );
carInfo [ car ][ A ] = getpos ( car , «A» );
carInfo [ car ][ Heal ] = getpos ( car , «Heal» );
carInfo [ car ][ Dmg1 ] = getint ( car , «Dmg1» );
carInfo [ car ][ Dmg2 ] = getint ( car , «Dmg2» );
carInfo [ car ][ Dmg3 ] = getint ( car , «Dmg3» );
carInfo [ car ][ Dmg4 ] = getint ( car , «Dmg4» );
carInfo [ car ][ PJob ] = getint ( car , «PJob» );
getstr ( car , «Owner» , carInfo [ car ][ Owner ], MAX_PLAYER_NAME );
BuyCarsCreate ( car ), allCars ++;
>
return printf ( «Загружено личных машин: %i. Времени затрачено: (%i мс)» , allCars , GetTickCount ()- timewe );
>
stock BuyCarsCreate ( car )
<
carInfo [ car ][ veh ] = CreateVehicle ( carInfo [ car ][ Model ], carInfo [ car ][ X ], carInfo [ car ][ Y ], carInfo [ car ][ Z ], carInfo [ car ][ A ], carInfo [ car ][ Clr1 ], carInfo [ car ][ Clr2 ], 0 );
UpdateVehicleDamageStatus ( carInfo [ car ][ veh ], carInfo [ car ][ Dmg1 ], carInfo [ car ][ Dmg2 ], carInfo [ car ][ Dmg3 ], carInfo [ car ][ Dmg4 ]);
SetVehicleHealth ( carInfo [ car ][ veh ], carInfo [ car ][ Heal ]);
static const
fmt1 [] = ««Стоимость: %d $» \n«Уровень: %d»\nID: %d» ,
fmt2 [] = «Владелец: %s\nID: %d» ;
new msg [ sizeof ( fmt2 ) — 2 + MAX_PLAYER_NAME — 2 + 4 ];
if( carInfo [ car ][ PJob ] > 0 ) ChangeVehiclePaintjob ( carInfo [ car ][ veh ], carInfo [ car ][ PJob ]- 1 );
else if(! strcmp ( carInfo [ car ][ Owner ], «No Name» )) format ( msg , sizeof ( msg ), fmt1 , carInfo [ car ][ Price ], carInfo [ car ][ Level ], carInfo [ car ][ ID ]);
else format ( msg , sizeof ( msg ), fmt2 , carInfo [ car ][ Owner ], carInfo [ car ][ ID ]);
carInfo [ car ][ Text ] = Create3DTextLabel ( msg , 0xFF0000FF , 0 , 0 , 0.6 , 15 , 0 , 1 );
return Attach3DTextLabelToVehicle ( carInfo [ car ][ Text ], carInfo [ car ][ veh ], 0 , 0 , 0.6 );
>

Редактировать пост почему-то нельзя. Опечатка там. MySql r34.
Сонный я уже. Не подумал о том, что вам будет сложно читать. Сократил код для читабельности.

Источник статьи: http://pro-pawn.ru/showthread.php?9929-%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B3%D0%BE-%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%B0

Читайте также:  По каким признакам выбрать автомобиль
Оцените статью