Дмитрий |
Дата: Пятница, 10.10.2014, 22:39 | Сообщение # 1 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Инструкция к применению: 1.Ставим этот урок себе в мод. 2.Запускаем серв и заходим на него. 3.Создаем самолет (shamal). 4.Нажимаем на G. 5.Попадаем в самолет. 6.Чтобы выйти жмём F. 7. The end
В define: Код #define objects_per_shamal 14 #define SETY_DE 5.87 #define SETZ_DE 0.75
В new: Код new InShamal[MAX_PLAYERS]; new Float:ShamalPos[MAX_VEHICLES][3]; new sExplode[MAX_VEHICLES]; new tCount[MAX_VEHICLES];
new Float:difc[][] = { {1.13, 0.05, 1.10, 0.0}, {1.13, 2.35, 1.10, 180.0}, {1.13, 4.65, 1.10, 180.0}, {1.13, 1.05, 1.10, 0.0}, {1.13, 3.45, 1.10, 180.0}, {1.13, 5.85, 1.10, 180.0}, {1.13, 0.39, 0.56, 0.0}, {1.13, 2.69, 0.56, 180.0}, {1.13, 4.99, 0.56, 180.0}, {1.13, 0.71, 0.56, 0.0}, {1.13, 3.79, 0.56, 180.0}, {1.13, 6.19, 0.56, 180.0}, {0.00, 0.30, 1.10, 0.0} };
В forward's: Код forward ExplodeShamal(vehicleid);
В конец мода: Код stock CreateShamalInt(vehicleid, Float:X, Float:Y, Float:Z) { CreateObject(14404, X, Y, Z, 0.0, 0.0, 0.0); CreateObject(1562, X+difc[0][0], Y+difc[0][1], Z-difc[0][2], 0.0, 0.0, difc[0][3]); CreateObject(1562, X+difc[1][0], Y-difc[1][1], Z-difc[1][2], 0.0, 0.0, difc[1][3]); CreateObject(1562, X+difc[2][0], Y-difc[2][1], Z-difc[2][2], 0.0, 0.0, difc[2][3]); CreateObject(1562, X-difc[3][0], Y-difc[3][1], Z-difc[3][2], 0.0, 0.0, difc[3][3]); CreateObject(1562, X-difc[4][0], Y-difc[4][1], Z-difc[4][2], 0.0, 0.0, difc[4][3]); CreateObject(1562, X-difc[5][0], Y-difc[5][1], Z-difc[5][2], 0.0, 0.0, difc[5][3]); CreateObject(1563, X+difc[6][0], Y+difc[6][1], Z-difc[6][2], 0.0, 0.0, difc[6][3]); CreateObject(1563, X+difc[7][0], Y-difc[7][1], Z-difc[7][2], 0.0, 0.0, difc[7][3]); CreateObject(1563, X+difc[8][0], Y-difc[8][1], Z-difc[8][2], 0.0, 0.0, difc[8][3]); CreateObject(1563, X-difc[9][0], Y-difc[9][1], Z-difc[9][2], 0.0, 0.0, difc[9][3]); CreateObject(1563, X-difc[10][0], Y-difc[10][1], Z-difc[10][2], 0.0, 0.0, difc[10][3]); CreateObject(1563, X-difc[11][0], Y-difc[11][1], Z-difc[11][2], 0.0, 0.0, difc[11][3]); CreateObject(14405, X, Y-difc[12][1], Z-difc[12][2], 0.0, 0.0, difc[12][3]); ShamalPos[vehicleid][0] = X, ShamalPos[vehicleid][1] = Y, ShamalPos[vehicleid][2] = Z; }
stock SetPlayerPosInShamal(playerid, shamalid) { SetPlayerPos(playerid, ShamalPos[shamalid][0], ShamalPos[shamalid][1]-SETY_DE, ShamalPos[shamalid][2]-SETZ_DE); SetPlayerFacingAngle(playerid, 0.0); SetCameraBehindPlayer(playerid); InShamal[playerid] = shamalid; }
stock ShamalExists(vehicleid) { if (floatsqroot(ShamalPos[vehicleid][0] + ShamalPos[vehicleid][1] + ShamalPos[vehicleid][2])) { return 1; } return 0; }
Float:randomEx(randval) { new rand1 = random(2), rand2; return float(rand1 == 0 ? rand2 - random(randval) : rand2 + random(randval)); }
В public OnPlayerConnect(playerid) Код InShamal[playerid] = 0;
В конец мода: Код stock get_available_objects() { new objects = 0; for (new i = 1; i <= MAX_OBJECTS; i++) { if (IsValidObject(i)) objects ++; } return MAX_OBJECTS-objects; }
В самый конец public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) Код if (ispassenger != 0) { if (GetVehicleModel(vehicleid) == 519) { if (ShamalExists(vehicleid) == 0) { if (get_available_objects() > (MAX_OBJECTS-objects_per_shamal)) return 1; CreateShamalInt(vehicleid, randomEx(3000), randomEx(3000), float(random(100)+800)); } SetPlayerPosInShamal(playerid, vehicleid); } } return 1; }
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) Код if (newkeys == 16 && InShamal[playerid] != 0) { new Float:X, Float:Y, Float:Z, Float:A; GetVehiclePos(InShamal[playerid], X, Y, Z); GetVehicleZAngle(InShamal[playerid], A); X += (5.0*floatsin(-(A-45.0), degrees)), Y += (5.0*floatcos(-(A-45.0), degrees)); SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, X, Y, Z-0.94); SetPlayerFacingAngle(playerid, A); InShamal[playerid] = 0; }
В public OnPlayerDeath(playerid, killerid, reason) Код InShamal[playerid] = 0;
Добавляем public OnVehicleDeath(vehicleid, killerid) Код public OnVehicleDeath(vehicleid, killerid) { if (GetVehicleModel(vehicleid) == 519 && ShamalExists(vehicleid) != 0) { CreateExplosion(ShamalPos[vehicleid][0], ShamalPos[vehicleid][1], ShamalPos[vehicleid][2], 2, 15.0); sExplode[vehicleid] = SetTimerEx("ExplodeShamal", 700, 0, "d", vehicleid); tCount[vehicleid] = true; } return 1; }
Добавляем 2-а паблика: Код public OnVehicleSpawn(vehicleid) { tCount[vehicleid] = false; for (new i = 0; i != MAX_PLAYERS; i++) { if (InShamal[i] == vehicleid) SetPlayerHealth(i, 0.0); } return 1; }
public ExplodeShamal(vehicleid) { KillTimer(sExplode[vehicleid]); if (tCount[vehicleid]) { CreateExplosion(ShamalPos[vehicleid][0], ShamalPos[vehicleid][1], ShamalPos[vehicleid][2], 2, 15.0); sExplode[vehicleid] = SetTimerEx("ExplodeShamal", random(1300) + 100, 0, "d", vehicleid); } }
Все,теперь можем создать Shamal,и перевозить пассажиров.
From Russia With Love!
|
|
|
|