 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[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%
Статус: 
| ёлки-палки,да ты сегодня в ударе Дал бы ещё +,но 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, это гаражи, на данный момент функций кроме открыть/закрыть, войти/выйти они не имеют В скорем времени добавлю еще возможностей. Если бы на серверах было бы нормальное РП с машинами, я думаю без гаражей бы люди не ушли никуда. V1ce, что есть, то есть
Требуются модераторы/публикаторы на сайты 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%
Статус: 
| ого хорошая идея возьмуДобавлено (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] помогите 
:)
|
| |
|
|
| Fus1 | Дата: Четверг, 25.03.2010, 11:56 | Сообщение # 14 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Quote (paka22) ServerGivePlayerMoney это заменяй на стандартные деньги ну или через что у тебя деньги идут, посмотри допустим в /buy замени на OnPlayerUpdate(i);
|
| |
|
|
| paka223 | Дата: Четверг, 25.03.2010, 12:41 | Сообщение # 15 |
|
Новенький
Группа:
Пользователи
Сообщений: 53
Награды: 1
Город: Лиепая
Репутация: 14
Замечания: 20%
Статус: 
| Fus1, O_o спасибо
:)
|
| |
|
|
|
 |
|
 | |
| |
|