• Страница 1 из 1
  • 1
Модератор форума: dr40  
Покупка машин
MoguчийДата: Четверг, 28.10.2010, 09:09 | Сообщение # 1
.::Offline::.
Новичок
Сообщений: 1
[ 0 ]
Награды: 0

Статус отсутствует
Скажите пожалуйста как сделать чтобы когда садишься в машину на ней нельзя было ехать пока не купишь к примеру в чат писалось: "это машина на продаже введите /buycar чтобы приобрести её". При вводе команды снималась часть денег и после этого ты можешь ехать, если не достаточно то " у вас недостаточно средств"
Ну вообщем что вам обьяснить, вы должны знать как это делается smile просто покупка машины
 
oleg_kastetДата: Вторник, 22.02.2011, 19:52 | Сообщение # 2
.::Offline::.
Разбойник
Сообщений: 41
[ 6 ]
Награды: 0

Статус отсутствует
Это авторынок или автопарк(синонимы вродь) говорят что это делают за деньги,но я нашол кое где вот это.Если получется но мне напиши,ото у меня некак

Добрый вечер. Сегодня я вам расскажу о том, как создать авторынок.
Для начала мы заведем новую переменную, для сохранения в аккаунт:
в enum pInfo
добавим

Code
pCarKey

Не надо напоминать, как делать сохранение в аккаунт. Посмотреть можете в уроке 18

Теперь создадим переменные для наших загружаемых машин:

Code
enum cInfo  
{  
cOwned,  
cModel  
};  
new CarInfo[1][cInfo];

Далее перейдем к загрузке машины.

Создадим функцию

Code
LoadCars()  
{  
new arrCoords[2][64];  
new strFromFile2[256];  
new File: file = fopen("cars.cfg", io_read);  
if (file)  
{  
new idx;  
while (idx < sizeof(CarInfo))  
{  
fread(file, strFromFile2);  
split(strFromFile2, arrCoords, '|');  
CarInfo[idx][cOwned] = strval(arrCoords[0]);  
CarInfo[idx][cModel] = strval(arrCoords[1]);  
idx++;  
}  
fclose(file);  
}  
return 1;  
}

Создадим файлик cars.cfg и закинем его в папку scriptfiles
внутри файлика пропишем
0|411

Это собственно наши переменные

Теперь создадим массив с координатами машин:

Code
new Float:BuyCarsSpawn[1][4]={  
{1111.3768,-1796.1268,16.5938,123.1231}  
};

где 1111.3768,-1796.1268,16.5938,123.1231 - координаты x,y,z,f машины (f - угол поворота)
И загрузим машины в мод:
Добавим в OnGameModeInit

LoadCars();
и сразу после этого

Code
for(new c = 0; c < sizeof(CarInfo); c++)  
{  
AddStaticVehicleEx(CarInfo[c][cModel], BuyCarsSpawn[c][0], BuyCarsSpawn[c][1], BuyCarsSpawn[c][2], BuyCarsSpawn[c][3], -1, -1, 600000);  
}

Вставьте этот код перед всеми вашими машинами.

Теперь мы разобрались с машинами.

Добавим в OnPlayerStateChange(playerid, newstate, oldstate), что бы выкидывало, когда игрок садиться

после if(newstate == PLAYER_STATE_DRIVER)

Code
if(newcar < sizeof(CarInfo)&&newcar!=0)  
    {  
     if(newcar!=PlayerInfo[playerid][pCarKey]&&CarInfo[newcar-1][cOwned]==1)  
     {  
      SendClientMessage(playerid, COLOR_GREY,"Ýòî íå âàøà ìàøèíà");  
         RemovePlayerFromVehicle(playerid);  
     }  
     else if(CarInfo[newcar-1][cOwned]==0)  
     {  
      SendClientMessage(playerid, COLOR_GREY,"Âû ìîæåòå êóïèòü ýòó ìàøèíó. Ââåäèòå /buycar");  
         TogglePlayerControllable(playerid, 0);  
     }  
     return 1;  
    }

Ну и сделаем покупку машины

Code
if(strcmp(cmd, "/buycar", true) == 0)  
   {  
    new newcar = GetPlayerVehicleID(playerid);  
    if(newcar!=0&&newcar < sizeof(CarInfo)&&CarInfo[newcar-1][cOwned]==0)  
    {  
     CarInfo[newcar-1][cOwned]=1;  
     PlayerInfo[playerid][pCarKey]=newcar;  
     SendClientMessage(playerid, COLOR_WHITE, "Âû êóïèëè ýòó ìàøèíó");  
     GivePlayerMoney(playerid, -20000);  
     TogglePlayerControllable(playerid, 1);  
    }  
   }

и продажу

Code
if(strcmp(cmd, "/sellcar", true) == 0)  
   {  
    CarInfo[PlayerInfo[playerid][pCarKey]-1][cOwned]=0;  
    PlayerInfo[playerid][pCarKey]=0;  
    SendClientMessage(playerid, COLOR_WHITE, "Âû ïðîäàëè ýòó ìàøèíó");  
    GivePlayerMoney(playerid, 20000);  
    RemovePlayerFromVehicle(playerid);  
    OnPropUpdate();  
   }

и добавим в OnPropUpdate, для сохранения информации в файл

Code
idx = 0;  
while (idx < sizeof(CarInfo))  
{  
new coordsstring[256];  
format(coordsstring, sizeof(coordsstring), "%i|%i\n",CarInfo[idx][cOwned],CarInfo[idx][cModel]);  
if(idx == 0) file2 = fopen("cars.cfg", io_write);  
else file2 = fopen("cars.cfg", io_append);  
fwrite(file2, coordsstring);  
idx++;  
fclose(file2);  
}

На этом всё. Удачи.


Ставь "+" за мои вопросы!))
 
LordDoorДата: Вторник, 22.02.2011, 21:06 | Сообщение # 3
.::Offline::.
Разбойник
Сообщений: 35
[ 0 ]
Награды: 0

Статус отсутствует
или вот фс happy

http://depositfiles.com/files/exbt75q3i

 
valychДата: Вторник, 22.02.2011, 23:10 | Сообщение # 4
.::Offline::.
Гангстер
Сообщений: 171
[ 205 ]
Награды: 15

Статус отсутствует
oleg_kastet, там почти всё правильно, только при перезаходе даже если игрок купил тачку, ключ не сохраниться, т.к. ещё нужно пару фигень в public OnPlayerLogin, OnplayerRegister, OnPlayerUpdate писать!!


Мои друзья на ST: [Tre9, UDAV, ZioHik,Seva008]
-=Чтоб добавится ко мне в друзья дайте мне + с сообщение "Хочу в друзья"=-

-=Те кто будут у меня в друзьях, тем будет делаться скидка на платные работы=-

Мои разработки:
[FS]Transmission 70%
[INC]Anti-Fly 50%
[INC]Anti-Cheat 95%

[FAQ]Ответы на часто задаваемые вопросы
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика