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

 



 
          





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





Последние Файлы 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 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Alcoholik  
[Tutorial] Создание гаражей
Thirty_thirdДата: Суббота, 20.03.2010, 16:40 | Сообщение # 1
Уверенный в себе
Группа: Пользователи
Сообщений: 250
Награды: 6
Город: Empire bay
Репутация: 318
Замечания: 100%
Статус:
Итак, мы начинаем наш урок

Ctrl+f => new SBizzInfo

Ниже вставляем

Code
enum GarageInfo
  {
  gOwned,
  gOwner[64],
  Float:gEntranceX,
  Float:gEntranceY,
  Float:gEntranceZ,
  Float:gExitX,
  Float:gExitY,
  Float:gExitZ,
  gPrice,
  gLock,
  gCarin,
  };
  new Garages[644][GarageInfo];

Ctrl+f => public LoadSBizz()

После данного "паблика" (public) вставляем:

Code
forward LoadGarage();
public LoadGarage()
{
  new arrCoords[11][64];
  new strFromFile2[256];
  new File: file = fopen("garage.cfg", io_read);
  if (file)
  {
  new idx;
  while (idx < sizeof(Garages))
  {
  fread(file, strFromFile2);
  split(strFromFile2, arrCoords, '|');
  Garages[idx][gOwned] = strval(arrCoords[0]);
  strmid(Garages[idx][gOwner], arrCoords[1], 0, strlen(arrCoords[1]), 255);
  Garages[idx][gEntranceX] = floatstr(arrCoords[2]);
  Garages[idx][gEntranceY] = floatstr(arrCoords[3]);
  Garages[idx][gEntranceZ] = floatstr(arrCoords[4]);
  Garages[idx][gExitX] = floatstr(arrCoords[5]);
  Garages[idx][gExitY] = floatstr(arrCoords[6]);
  Garages[idx][gExitZ] = floatstr(arrCoords[7]);
  Garages[idx][gPrice] = strval(arrCoords[8]);
  Garages[idx][gLock] = strval(arrCoords[9]);
  Garages[idx][gCarin] = strval(arrCoords[10]);
  idx++;
  }
  fclose(file);
  }
  return 1;
}

Вставляем в public OnGameModeInit

Code
LoadGarage();
  CreateObject(14798, 808.20452880859, 34.788818359375, 9.5595703125, 0.000000, 0.000000, 0.000000); //Сам гараж
  CreateObject(14797, 809.88421630859, 34.816730499268, 9.6204814910889, 0.000000, 0.000000, 0.000000); //
  CreateObject(16773, 801.01934814453, 35.459674835205, 12.355661392212, 0.000000, 0.000000, 270.02026367188); //
  CreateObject(2007, 804.056640625, 40.417610168457, 8.3639659881592, 0.000000, 0.000000, 0.000000); //
  CreateObject(2007, 805.03289794922, 40.412582397461, 8.3639659881592, 0.000000, 0.000000, 0.000000); //
  CreateObject(2007, 806.02478027344, 40.404388427734, 8.3639659881592, 0.000000, 0.000000, 0.000000); //
  CreateObject(2063, 806.56414794922, 31.784990310669, 9.2653980255127, 0.000000, 0.000000, 181.62072753906); //
  for(new h = 0; h < sizeof(Garages); h++)
  {
  new txt[999];
  if(Garages[h][gOwned] == 0)
  {
  AddStaticPickup(1272, 2, Garages[h][gEntranceX], Garages[h][gEntranceY], Garages[h][gEntranceZ]);
  pickups++;
  format(txt, sizeof(txt), "|___Гараж___|\n(( Стоимость гаража: %d ))\n (( Для покупки введите /buygarage ))", Garages[h][gPrice]);
  }
  if(Garages[h][gOwned] == 1)
  {
  //AddStaticPickup(1318, 1, Garages[h][gEntranceX], Garages[h][gEntranceY], Garages[h][gEntranceZ]);
  //pickups++;
  format(txt, sizeof(txt), "|___Гараж___|\n(( Хозяин: %s ))", Garages[h][gOwner]);
  }
  Create3DTextLabel(txt,0x008080FF,Garages[h][gEntranceX], Garages[h][gEntranceY], Garages[h][gEntranceZ]+0.5,40.0,0,1);
  }

Ctrl+f => public OnPropUpdate()

Вставляем

Code
while (idx < sizeof(Garages))
  {
  new coordsstring[256];
  format(coordsstring, sizeof(coordsstring), "%d|%s|%f|%f|%f|%f|%f|%f|%d|%d|%d\n",
  Garages[idx][gOwned],
  Garages[idx][gOwner],
  Garages[idx][gEntranceX],
  Garages[idx][gEntranceY],
  Garages[idx][gEntranceZ],
  Garages[idx][gExitX],
  Garages[idx][gExitY],
  Garages[idx][gExitZ],
  Garages[idx][gPrice],
  Garages[idx][gLock],
  Garages[idx][gCarin]);
  if(idx == 0)
  {
  file2 = fopen("garage.cfg", io_write);
  }
  else
  {
  file2 = fopen("garage.cfg", io_append);
  }
  fwrite(file2, coordsstring);
  idx++;
  fclose(file2);
  }
  idx = 0;

В public OnPlayerCommandText добавляем следущие команды:

Code
//====================================================[Garages by 33]=================================================
  if(strcmp(cmd, "/buygarage", true) == 0)
  {
  if(IsPlayerConnected(playerid))
  {
  new Float:oldposx, Float:oldposy, Float:oldposz;
  GetPlayerName(playerid, playername, sizeof(playername));
  GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  for(new b = 0; b < sizeof(Garages); b++)
  {
  if(PlayerToPoint(2.0, playerid, Garages[b][gEntranceX], Garages[b][gEntranceY], Garages[b][gEntranceZ]) && Garages[b][gOwned] == 0)
  {
  if(GetPlayerMoney(playerid) > Garages[b][gPrice])
  {
  Garages[b][gOwned] = 1;
  GetPlayerName(playerid, sendername, sizeof(sendername));
  strmid(Garages[b][gOwner], sendername, 0, strlen(sendername), 255);
  ServerGivePlayerMoney(playerid,-Garages[b][gPrice]);
  PlayerPlayMusic(playerid);
  SendClientMessage(playerid, COLOR_WHITE, "Поздравляем вас с приобретением!");
  DateProp(playerid);
  OnPropUpdate();
  SavePlayer(playerid);
  return 1;
  }
  else
  {
  SendClientMessage(playerid, COLOR_WHITE, "У вас не хватит денег на это!");
  return 1;
  }
  }
  }
  }
  return 1;
  }
  if(strcmp(cmd, "/sellgarage", true) == 0)
  {
  if(IsPlayerConnected(playerid))
  {
  new Float:oldposx, Float:oldposy, Float:oldposz;
  GetPlayerName(playerid, playername, sizeof(playername));
  GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  for(new b = 0; b < sizeof(Garages); b++)
  {
  if(PlayerToPoint(3.0, playerid, Garages[b][gEntranceX], Garages[b][gEntranceY], Garages[b][gEntranceZ]))
  {
  if(b == sizeof(Garages)) { SendClientMessage(playerid, COLOR_WHITE, "Bы должны быть у своего гаража."); }
  if(strcmp(Garages[b][gOwner],playername, true ) == 0)
  {
  Garages[b][gOwned] = 0;
  Garages[b][gLock] = 1;
  strmid(Garages[b][gOwner], "No-one", 0, strlen("No-one"), 255);
  ServerGivePlayerMoney(playerid,Garages[b][gPrice]);
  PlayerPlayMusic(playerid);
  SendClientMessage(playerid, COLOR_WHITE, "Bы продали свой гараж.");
  DateProp(playerid);
  OnPropUpdate();
  SavePlayer(playerid);
  return 1;
  }
  else
  {
  SendClientMessage(playerid, COLOR_WHITE, "Bы не можете продать этот гараж.");
  return 1;
  }
  }
  }
  }
  return 1;
  }

Ctrl+f => if(strcmp(cmd, "/open", true) == 0)

Добавляем

Code
for(new i = 0; i < sizeof(Garages); i++)
  {
  if (PlayerToPoint(3, playerid,Garages[i][gEntranceX], Garages[i][gEntranceY], Garages[i][gEntranceZ]) || PlayerToPoint(3, playerid,Garages[i][gExitX], Garages[i][gExitY], Garages[i][gExitZ]))
  {
  new pnick[MAX_PLAYER_NAME];
  GetPlayerName(playerid, pnick, sizeof(pnick));
  if(strcmp(pnick, Garages[i][gOwner], true) == 0)
  {
  if(Garages[i][gLock] == 1)
  {
  Garages[i][gLock] = 0;
  GameTextForPlayer(playerid, "~g~OЏKP‘ЏO", 5000, 6);
  PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  return 1;
  }
  if(Garages[i][gLock] == 0)
  {
  Garages[i][gLock] = 1;
  GameTextForPlayer(playerid, "~r~€AKP‘ЏO", 5000, 6);
  PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
  return 1;
  }
  }
  else
  {
  GameTextForPlayer(playerid, "~r~You Dont Have A Key", 5000, 6);
  return 1;
  }
  }
  }

Ctrl+f => if(strcmp(cmd, "/enter", true) == 0)

Вставляем

Code
for(new i = 0; i < sizeof(Garages); i++)
  {
  if (PlayerToPoint(3, playerid,Garages[i][gEntranceX], Garages[i][gEntranceY], Garages[i][gEntranceZ]))
  {
  if(Garages[i][gLock] == 1)
  {
  GameTextForPlayer(playerid, "~r~€AKP‘ЏO", 5000, 1);
  return 1;
  }
  new pnick[MAX_PLAYER_NAME];
  GetPlayerName(playerid, pnick, sizeof(pnick));
  if(strcmp(pnick, Garages[i][gOwner], true) == 0)
  {
  if (GetPlayerState(playerid) == 2)
  {
  if(Garages[i][gCarin] == 1 && GetPlayerState(playerid) == 2)
  {
  GameTextForPlayer(playerid, "~r~HET MECTA", 5000, 1);
  return 1;
  }
  new tmpcar = GetPlayerVehicleID(playerid);
  SetVehiclePos(tmpcar, Garages[i][gExitX], Garages[i][gExitY], Garages[i][gExitZ]);
  SetVehicleVirtualWorld(tmpcar, i);
  LinkVehicleToInterior(tmpcar, 1);
  SetVehicleZAngle(tmpcar, 0);
  Garages[i][gCarin] = 1;
  }
  else { SetPlayerPos(playerid, Garages[i][gExitX], Garages[i][gExitY], Garages[i][gExitZ]); }
  SetPlayerInterior(playerid, 1);
  SetPlayerVirtualWorld(playerid, i);
  OnPropUpdate();
  }
  }
  }

Ctrl+F => if(strcmp(cmd, "/exit", true) == 0)

Добавляем

Code
for(new i = 0; i < sizeof(Garages); i++)
  {
  if (PlayerToPoint(3, playerid,Garages[i][gExitX], Garages[i][gExitY], Garages[i][gExitZ]))
  {
  if(GetPlayerVirtualWorld(playerid) == i)
  {
  if (GetPlayerState(playerid) == 2)
  {
  new tmpcar = GetPlayerVehicleID(playerid);
  SetVehiclePos(tmpcar, Garages[i][gEntranceX],Garages[i][gEntranceY],Garages[i][gEntranceZ]);
  SetVehicleVirtualWorld(tmpcar, 0);
  LinkVehicleToInterior(tmpcar, 0);
  Garages[i][gCarin] = 0;
  }
  else { SetPlayerPos(playerid,Garages[i][gEntranceX],Garages[i][gEntranceY],Garages[i][gEntranceZ]); }
  SetPlayerInterior(playerid,0);
  SetPlayerVirtualWorld(playerid,0);
  PlayerInfo[playerid][pInt] = 0;
  PlayerInfo[playerid][pLocal] = 255;
  }
  }
  }

В комплекте даю файл с гаражами по всем 3м городам (всего 644 гаража).

Прошу первых проверивших отписатсья о возможных багах/недостатках, хоть лично и проверил, но мог допустить ошибку при копировании.


Требуются модераторы/публикаторы на сайты mafia2mp.ru и iv-online.ru


___________________________________________________

Создание UCP для вашего сервера, а так же перевод мода на MySQL.
___________________________________________________

Помогаю с созданием сайтов/форумов. Нуждающимся - писать в ICQ
___________________________________________________

Продается мод для IV:MP - LC-RP (ver. 0.1) - отличная основа для РП мода.

AlcoholikДата: Суббота, 20.03.2010, 16:44 | Сообщение # 2
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
Чё это такое то? И зачем надо?


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


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
V1ceДата: Суббота, 20.03.2010, 16:44 | Сообщение # 3
Группа: Пользователи
Сообщений: 294
Награды: 21
Город: 4'K.
Репутация: 324
Замечания: 100%
Статус:
ёлки-палки,да ты сегодня в ударе :D Дал бы ещё +,но 24/часа ;)
XotttabДата: Суббота, 20.03.2010, 16:58 | Сообщение # 4
Уверенный в себе
Группа: Пользователи
Сообщений: 293
Награды: 11
Город: Чаны
Репутация: 64
Замечания: 60%
Статус:
а у меня нет команды /exit и /enter отому что у меня все полностью на кнопках


Diamond Media RP Server[0.3a]
Address: 92.63.196.25:7780
ExtraRP 59356 lines
Thirty_thirdДата: Суббота, 20.03.2010, 17:04 | Сообщение # 5
Уверенный в себе
Группа: Пользователи
Сообщений: 250
Награды: 6
Город: Empire bay
Репутация: 318
Замечания: 100%
Статус:
RoACh, это гаражи, на данный момент функций кроме открыть/закрыть, войти/выйти они не имеют :D В скорем времени добавлю еще возможностей. Если бы на серверах было бы нормальное РП с машинами, я думаю без гаражей бы люди не ушли никуда.
V1ce, что есть, то есть :D



Требуются модераторы/публикаторы на сайты mafia2mp.ru и iv-online.ru


___________________________________________________

Создание UCP для вашего сервера, а так же перевод мода на MySQL.
___________________________________________________

Помогаю с созданием сайтов/форумов. Нуждающимся - писать в ICQ
___________________________________________________

Продается мод для IV:MP - LC-RP (ver. 0.1) - отличная основа для РП мода.

EakwarpДата: Суббота, 20.03.2010, 17:05 | Сообщение # 6
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
Quote (RoACh)
Чё это такое то? И зачем надо?

+1



More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
PrinceHugoДата: Суббота, 20.03.2010, 18:22 | Сообщение # 7
Постоялец
Группа: Продвинутые
Сообщений: 347
Награды: 3
Репутация: 64
Замечания: 20%
Статус:
Багов вроде нет :)
Спасибо

Thirty_thirdДата: Суббота, 20.03.2010, 18:33 | Сообщение # 8
Уверенный в себе
Группа: Пользователи
Сообщений: 250
Награды: 6
Город: Empire bay
Репутация: 318
Замечания: 100%
Статус:
Quote (Xotttab)
а у меня нет команды /exit и /enter отому что у меня все полностью на кнопках

по идее у тебя и на кнопках можно вставить условия такие



Требуются модераторы/публикаторы на сайты mafia2mp.ru и iv-online.ru


___________________________________________________

Создание UCP для вашего сервера, а так же перевод мода на MySQL.
___________________________________________________

Помогаю с созданием сайтов/форумов. Нуждающимся - писать в ICQ
___________________________________________________

Продается мод для IV:MP - LC-RP (ver. 0.1) - отличная основа для РП мода.

xSLiMxДата: Суббота, 20.03.2010, 18:44 | Сообщение # 9
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2163
Награды: 34
Город: Ростов - на - Дону
Репутация: 1429
Замечания: 80%
Статус:
Thirty_third, за старания +
SprunkДата: Суббота, 20.03.2010, 18:47 | Сообщение # 10
Хостинг-провайдер
Группа: Пользователи
Сообщений: 2451
Награды: 125
Город: Волгоград.
Репутация: 774
Замечания: 100%
Статус:
Thirty_third, Молодец,лови +


pawn.su - Аренда игровых серверов.

Игровой портал Game Entertainment (Game-Ent.ru)

VenSДата: Воскресенье, 21.03.2010, 16:57 | Сообщение # 11
Уверенный в себе
Группа: Продвинутые
Сообщений: 170
Награды: 4
Город: Moscow
Репутация: 131
Замечания: 20%
Статус:
Молодец Хорошая Вещьца Для Рпг
[RGS]JAGUARДата: Среда, 24.03.2010, 13:10 | Сообщение # 12
Советчик
Группа: Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус:
090808 ололол, какой рпг? Для рп! Класный код!


[/url]
Новая ICQ: 593922
paka223Дата: Четверг, 25.03.2010, 10:47 | Сообщение # 13
Новенький
Группа: Пользователи
Сообщений: 53
Награды: 1
Город: Лиепая
Репутация: 14
Замечания: 20%
Статус:
ого kiss хорошая идея :) возьму

Добавлено (25.03.2010, 10:47)
---------------------------------------------
[pwn]C:\Documents and Settings\Pawka\Ðàáî÷èé ñòîë\d\gamemodes\ufrp.pwn(13193) : error 017: undefined symbol "ServerGivePlayerMoney"
C:\Documents and Settings\Pawka\Ðàáî÷èé ñòîë\d\gamemodes\ufrp.pwn(13198) : error 017: undefined symbol "SavePlayer"
C:\Documents and Settings\Pawka\Ðàáî÷èé ñòîë\d\gamemodes\ufrp.pwn(13228) : error 017: undefined symbol "ServerGivePlayerMoney"
C:\Documents and Settings\Pawka\Ðàáî÷èé ñòîë\d\gamemodes\ufrp.pwn(13233) : error 017: undefined symbol "SavePlayer"[/pwn]

помогите bad


:)
Fus1Дата: Четверг, 25.03.2010, 11:56 | Сообщение # 14
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
Quote (paka22)
ServerGivePlayerMoney

это заменяй на стандартные деньги ну или через что у тебя деньги идут, посмотри допустим в /buy

Quote (paka22)
SavePlayer

замени на
OnPlayerUpdate(i);

paka223Дата: Четверг, 25.03.2010, 12:41 | Сообщение # 15
Новенький
Группа: Пользователи
Сообщений: 53
Награды: 1
Город: Лиепая
Репутация: 14
Замечания: 20%
Статус:
Fus1, O_o спасибо :)


:)
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:





 


 


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