freeroam один из самых лучших модов
скачать вы его сможете здесь
Отредактировано Magnus (2006-10-21 10:57:37)
Всё о скриптинге в Sa-Mp |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Всё о скриптинге в Sa-Mp » Учимся делать скрипты » Готовые моды
freeroam один из самых лучших модов
скачать вы его сможете здесь
Отредактировано Magnus (2006-10-21 10:57:37)
Mаgnus можешь дать от него dubd.ini?
А то компилить не хочет.
И мне плиз!
Стучись в аську дам. 288584510
Расскажите плз как поставить скрипт спидометра и дуэли!
Вот "Топливная система с Спидометром" Код: #include <a_samp> #include <core> #include <file> #include <float> //-------------------------------------------------- 1 часть -------------------------------------------------- #define CP_STATION1 0 #define CP_STATION2 1 #define CP_STATION3 2 #define CP_STATION4 3 #define CP_STATION5 4 #define CP_STATION6 5 #define CP_STATION7 6 #define CP_STATION8 7 #define CP_STATION9 8 #define CP_STATION10 9 #define CP_STATION11 10 #define CP_STATION12 11 #define CP_STATION13 12 #define CP_STATION14 13 #define CP_STATION15 14 #define CP_STATION16 15 #define MAX_POINTS 16 #define AMOUNT 100 #define MAX_CARS 200 #define SLOTS MAX_PLAYERS enum SavePlayerPosEnum { Float:LastX, Float:LastY, Float:LastZ } new Float:SpeedX; new Float:SpeedY; new Float:SpeedZ; new Float:distance; new SavePlayerPos[MAX_PLAYERS][SavePlayerPosEnum]; new UpdateSeconds = 1; new gvalue; new playerCheckpoint[MAX_PLAYERS]; new Petrol[MAX_CARS]; new Float:checkCoords[MAX_POINTS][4] = { {2098.1316,901.7380,2137.7456,963.0146}, {2617.5967,1062.8710,2656.6526,1142.5109}, {501.7475,1626.7821,653.2095,1774.1093}, {-1351.2833,2638.8943,-1265.1661,2738.6450}, {-2450.3767,949.5080,-2400.8530,1069.8329}, {-1715.5112,349.5567,-1658.8451,458.3686}, {-2265.3027,-2586.3762,-2219.1868,-2558.2539}, {-1657.4102,-2763.3518,-1501.5303,-2666.7454}, {1903.7450,-1795.7990,1955.5667,-1759.5187}, {-135.2077,-1199.8291,-43.7008,-1134.7999}, {1336.7378,454.7961,1430.0760,483.9776}, {648.2494,-592.9003,670.9278,-540.8264}, {-1494.2593,1854.1290,-1449.4076,1885.2032}, {2097.0452,2708.1218,2172.7161,2762.7495}, {2187.6587,2462.8057,2215.5042,2495.0332}, {1577.7729,2182.5112,1616.5842,2242.3628} }; new Float:checkpoints[MAX_POINTS][4] = { {2109.2126,917.5845,10.8203,5.0}, {2640.1831,1103.9224,10.8203,5.0}, {611.8934,1694.7921,6.7193,5.0}, {-1327.5398,2682.9771,49.7896,5.0}, {-2413.7427,975.9317,45.0031,5.0}, {-1672.3597,414.2950,6.8866,5.0}, {-2244.1365,-2560.6294,31.6276,5.0}, {-1603.0166,-2709.3589,48.2419,5.0}, {1939.3275,-1767.6813,13.2787,5.0}, {-94.7651,-1174.8079,1.9979,5.0}, {1381.6699,462.6467,19.8540,5.0}, {657.8167,-559.6507,16.0630,5.0}, {-1478.2916,1862.8318,32.3617,5.0}, {2147.3054,2744.9377,10.5263,5.0}, {2204.9602,2480.3494,10.5278,5.0}, {1590.9493,2202.2637,10.5247,5.0} }; new checkpointType[MAX_POINTS] = { CP_STATION1, CP_STATION2, CP_STATION3, CP_STATION4, CP_STATION5, CP_STATION6, CP_STATION7, CP_STATION8, CP_STATION9, CP_STATION10, CP_STATION11, CP_STATION12, CP_STATION13, CP_STATION14, CP_STATION15, CP_STATION16 }; //-------------------------------------------------- 2 часть -------------------------------------------------- public getCheckpointType(playerID) { return checkpointType[playerCheckpoint[playerID]]; } public isPlayerInArea(playerID, Float:data[4]) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerID, X, Y, Z); if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) { return 1; } return 0; } public checkpointUpdate() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { for(new j=0; j < MAX_POINTS; j++) { if(isPlayerInArea(i, checkCoords[j])) { if(playerCheckpoint[i]!=j) { DisablePlayerCheckpoint(i); SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2); playerCheckpoint[i] = j; } } else { if(playerCheckpoint[i]==j) { DisablePlayerCheckpoint(i); playerCheckpoint[i] = 999; } } } } } } public UpdateSpeed(playerid) { for(new i=0; i<SLOTS; i++){ if(IsPlayerConnected(i)){ if(IsPlayerInAnyVehicle(i)) { GetPlayerPos(i, SpeedX, SpeedY, SpeedZ); distance=floatsqroot(floatpower(floatabs(floatsub(SpeedX,SavePlayerPos[i][LastX])),2) +floatpower(floatabs(floatsub(SpeedY,SavePlayerPos[i][LastY])),2) +floatpower(floatabs(floatsub(SpeedZ,SavePlayerPos[i][LastZ])),2)); gvalue = floatround(distance * 3600); if(UpdateSeconds > 1) { gvalue = floatround(gvalue / UpdateSeconds); } SavePlayerPos[i][LastX] = SpeedX; SavePlayerPos[i][LastY] = SpeedY; SavePlayerPos[i][LastZ] = SpeedZ; } } } } //Fuel check function public CheckFuel(playerid) { new Ptmess[62]; for(new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerConnected(i) == 1 && IsPlayerInAnyVehicle(i) == 1) { if(GetPlayerState(i) == 2) { new Vi; Vi = GetPlayerVehicleID(i); Petrol[Vi]--; if(Petrol[Vi] >= 5) { format(Ptmess, sizeof(Ptmess), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~~r~Fuel: %d/100 L~n~%d Km/H", Petrol[Vi], gvalue/1000); GameTextForPlayer(i, Ptmess, 1000, 5); } else { RemovePlayerFromVehicle(i); SendClientMessage(i, COLOR_RED, "* У твоей машины закончился бензин!"); if(Petrol[Vi] < 0) { Petrol[Vi] = 0; } } if(Petrol[i] >= 50) { format(Ptmess, sizeof(Ptmess), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~~y~Fuel: %d/100 L~n~%d Km/H", Petrol[Vi], gvalue/1000); GameTextForPlayer(i, Ptmess, 1000, 5); } } } } } //Refill fuel function public FuelRefill(playerid) { new VID; VID = GetPlayerVehicleID(playerid); if(Petrol[VID] < AMOUNT) { new FillUp; FillUp = AMOUNT - Petrol[VID]; if(GetPlayerMoney(playerid) >= FillUp) { Petrol[VID] +=FillUp; new mess[64]; format(mess, sizeof(mess), "* Ты пополнил %d литров топлива! ", FillUp); SendClientMessage(playerid, COLOR_WHITE, mess); GivePlayerMoney(playerid, -FillUp); return 1; } else { SendClientMessage(playerid, COLOR_RED, "* У тедя недостаточно денег"); return 1; } } else { SendClientMessage(playerid, COLOR_RED, "* У машины полный бак бензина!"); return 1; } return 1; } //-------------------------------------------------- 3 часть ---------------------------------------------------------- public OnGameModeInit() { for(new c=0;c<MAX_CARS;c++) { Petrol[c] = AMOUNT; } //ТАЧКИ SetTimer("CheckFuel", 3000, 1); SetTimer("checkpointUpdate", 1100, 1); SetTimer("UpdateSpeed", 1000, 1); return 1; } //-------------------------------------------------- 4 часть -------------------------------------------------- public OnPlayerEnterCheckpoint(playerid) { printf("OnPlayerEnterCheckpoint(%d)", playerid); //(The next 13 lines (the return should always be at the end) is Relevant code!) if(getCheckpointType(playerid)>= 0 && getCheckpointType(playerid)<= 15) { if(IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid,COLOR_WHITE,"* Остановись в зоне чекпоинта чтобы пополнить запас бензина!"); FuelRefill(playerid); } else { SendClientMessage(playerid, COLOR_RED, "* Ты не в машине!"); } return 1; } return 1; }
Отредактировано Spawn (2006-11-09 15:05:09)
Дуэль... Читай тут http://vacrew.5bb.ru/viewtopic.php?id=45&p=7
Чё нужно вставлять в эти строки
new Float:checkCoords[MAX_POINTS][4] = {
new Float:checkpoints[MAX_POINTS][4] = {
(я хочу вставить новые здания для покупки)
new Float:checkCoords - это область появления на радаре чекпоинтов,
тоесть подъезжаешь или входишь в них и на радаре появляется красный
квадратик чекпоинта.
new Float:checkpoints - это сами чекпоинты (Тоесть красная сфера при входе в которую
происходит действие которое вы прописали в своём скрипте).
Как определить область появления чекпоинтов? Это тоже самое что и
определение SetPlayerWorldBounds(playerid,Xmax,Xmin,Ymax,Ymin);.
Подробнее об определении читай тут: http://samp.4bb.ru/viewtopic.php?pid=88#p88
А напиши чекпоит у аэропорта лас вентураса
Всмысли у new Float:checkCoords и у new Float:checkpoints
new Float:checkCoords[MAX_POINTS][4] = {
{1631.2246,1319.9592,1815.6743,1549.8381} //LV_AIRPORT
};
new Float:checkpoints[MAX_POINTS][3] = {
{1677.3966,1447.7908,10.7758}
};
спасибо
Вот блин. А я эт сам разбирал по частям. А здесь все подсказывают оказывается.
Вот "Топливная система с Спидометром"
Код:
#include <a_samp>
#include <core>
#include <file>
#include <float>//-------------------------------------------------- 1 часть --------------------------------------------------
#define CP_STATION1 0
#define CP_STATION2 1
#define CP_STATION3 2
#define CP_STATION4 3
#define CP_STATION5 4
#define CP_STATION6 5
#define CP_STATION7 6
#define CP_STATION8 7
#define CP_STATION9 8
#define CP_STATION10 9
#define CP_STATION11 10
#define CP_STATION12 11
#define CP_STATION13 12
#define CP_STATION14 13
#define CP_STATION15 14
#define CP_STATION16 15#define MAX_POINTS 16
#define AMOUNT 100
#define MAX_CARS 200
#define SLOTS MAX_PLAYERSenum SavePlayerPosEnum
{
Float:LastX,
Float:LastY,
Float:LastZ
}
new Float:SpeedX;
new Float:SpeedY;
new Float:SpeedZ;
new Float:distance;
new SavePlayerPos[MAX_PLAYERS][SavePlayerPosEnum];
new UpdateSeconds = 1;
new gvalue;
new playerCheckpoint[MAX_PLAYERS];
new Petrol[MAX_CARS];new Float:checkCoords[MAX_POINTS][4] = {
{2098.1316,901.7380,2137.7456,963.0146},
{2617.5967,1062.8710,2656.6526,1142.5109},
{501.7475,1626.7821,653.2095,1774.1093},
{-1351.2833,2638.8943,-1265.1661,2738.6450},
{-2450.3767,949.5080,-2400.8530,1069.8329},
{-1715.5112,349.5567,-1658.8451,458.3686},
{-2265.3027,-2586.3762,-2219.1868,-2558.2539},
{-1657.4102,-2763.3518,-1501.5303,-2666.7454},
{1903.7450,-1795.7990,1955.5667,-1759.5187},
{-135.2077,-1199.8291,-43.7008,-1134.7999},
{1336.7378,454.7961,1430.0760,483.9776},
{648.2494,-592.9003,670.9278,-540.8264},
{-1494.2593,1854.1290,-1449.4076,1885.2032},
{2097.0452,2708.1218,2172.7161,2762.7495},
{2187.6587,2462.8057,2215.5042,2495.0332},
{1577.7729,2182.5112,1616.5842,2242.3628}
};new Float:checkpoints[MAX_POINTS][4] = {
{2109.2126,917.5845,10.8203,5.0},
{2640.1831,1103.9224,10.8203,5.0},
{611.8934,1694.7921,6.7193,5.0},
{-1327.5398,2682.9771,49.7896,5.0},
{-2413.7427,975.9317,45.0031,5.0},
{-1672.3597,414.2950,6.8866,5.0},
{-2244.1365,-2560.6294,31.6276,5.0},
{-1603.0166,-2709.3589,48.2419,5.0},
{1939.3275,-1767.6813,13.2787,5.0},
{-94.7651,-1174.8079,1.9979,5.0},
{1381.6699,462.6467,19.8540,5.0},
{657.8167,-559.6507,16.0630,5.0},
{-1478.2916,1862.8318,32.3617,5.0},
{2147.3054,2744.9377,10.5263,5.0},
{2204.9602,2480.3494,10.5278,5.0},
{1590.9493,2202.2637,10.5247,5.0}
};new checkpointType[MAX_POINTS] = {
CP_STATION1,
CP_STATION2,
CP_STATION3,
CP_STATION4,
CP_STATION5,
CP_STATION6,
CP_STATION7,
CP_STATION8,
CP_STATION9,
CP_STATION10,
CP_STATION11,
CP_STATION12,
CP_STATION13,
CP_STATION14,
CP_STATION15,
CP_STATION16
};//-------------------------------------------------- 2 часть --------------------------------------------------
public getCheckpointType(playerID) {
return checkpointType[playerCheckpoint[playerID]];
}
public isPlayerInArea(playerID, Float:data[4])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerID, X, Y, Z);
if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3])
{
return 1;
}
return 0;
}public checkpointUpdate()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)) {
for(new j=0; j < MAX_POINTS; j++) {
if(isPlayerInArea(i, checkCoords[j])) {
if(playerCheckpoint[i]!=j) {
DisablePlayerCheckpoint(i);
SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2);
playerCheckpoint[i] = j;
}
} else {
if(playerCheckpoint[i]==j) {
DisablePlayerCheckpoint(i);
playerCheckpoint[i] = 999;
}
}
}
}
}
}
public UpdateSpeed(playerid)
{
for(new i=0; i<SLOTS; i++){
if(IsPlayerConnected(i)){
if(IsPlayerInAnyVehicle(i)) {
GetPlayerPos(i, SpeedX, SpeedY, SpeedZ);
distance=floatsqroot(floatpower(floatabs(floatsub(SpeedX,SavePlayerPos[i][LastX])),2)
+floatpower(floatabs(floatsub(SpeedY,SavePlayerPos[i][LastY])),2)
+floatpower(floatabs(floatsub(SpeedZ,SavePlayerPos[i][LastZ])),2));
gvalue = floatround(distance * 3600);
if(UpdateSeconds > 1)
{
gvalue = floatround(gvalue / UpdateSeconds);
}
SavePlayerPos[i][LastX] = SpeedX;
SavePlayerPos[i][LastY] = SpeedY;
SavePlayerPos[i][LastZ] = SpeedZ;
}
}
}
}
//Fuel check function
public CheckFuel(playerid)
{
new Ptmess[62];
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) == 1 && IsPlayerInAnyVehicle(i) == 1)
{
if(GetPlayerState(i) == 2)
{
new Vi;
Vi = GetPlayerVehicleID(i);
Petrol[Vi]--;if(Petrol[Vi] >= 5)
{
format(Ptmess, sizeof(Ptmess), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~~r~Fuel: %d/100 L~n~%d Km/H", Petrol[Vi], gvalue/1000);
GameTextForPlayer(i, Ptmess, 1000, 5);
}
else
{
RemovePlayerFromVehicle(i);
SendClientMessage(i, COLOR_RED, "* У твоей машины закончился бензин!");
if(Petrol[Vi] < 0)
{
Petrol[Vi] = 0;
}
}if(Petrol[i] >= 50)
{
format(Ptmess, sizeof(Ptmess), " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~~y~Fuel: %d/100 L~n~%d Km/H", Petrol[Vi], gvalue/1000);
GameTextForPlayer(i, Ptmess, 1000, 5);
}}
}
}
}//Refill fuel function
public FuelRefill(playerid)
{
new VID;
VID = GetPlayerVehicleID(playerid);
if(Petrol[VID] < AMOUNT)
{
new FillUp;
FillUp = AMOUNT - Petrol[VID];
if(GetPlayerMoney(playerid) >= FillUp)
{
Petrol[VID] +=FillUp;
new mess[64];
format(mess, sizeof(mess), "* Ты пополнил %d литров топлива! ", FillUp);
SendClientMessage(playerid, COLOR_WHITE, mess);
GivePlayerMoney(playerid, -FillUp);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, "* У тедя недостаточно денег");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "* У машины полный бак бензина!");
return 1;
}
return 1;
}//-------------------------------------------------- 3 часть ----------------------------------------------------------
public OnGameModeInit()
{
for(new c=0;c<MAX_CARS;c++)
{
Petrol[c] = AMOUNT;
}
//ТАЧКИSetTimer("CheckFuel", 3000, 1);
SetTimer("checkpointUpdate", 1100, 1);
SetTimer("UpdateSpeed", 1000, 1);
return 1;
}//-------------------------------------------------- 4 часть --------------------------------------------------
public OnPlayerEnterCheckpoint(playerid)
{
printf("OnPlayerEnterCheckpoint(%d)", playerid);
//(The next 13 lines (the return should always be at the end) is Relevant code!)
if(getCheckpointType(playerid)>= 0 && getCheckpointType(playerid)<= 15)
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_WHITE,"* Остановись в зоне чекпоинта чтобы пополнить запас бензина!");
FuelRefill(playerid);
}
else
{
SendClientMessage(playerid, COLOR_RED, "* Ты не в машине!");
}
return 1;
}
return 1;
}
Если не сложно расскжите подробней что куда прописывать
Отредактировано roter (2006-12-28 13:19:18)
Мдя.Народ а не проще самим делать,а?
Я скрипты наерно лучше всех тут знаю
Учителя и знакомые просто хорошие
[UzI]Neorim
Говориш лутше всех???дык делись давай знаниямито!!!
Народ а у кого нить есть список тачек какой номер машина за какую тачку отвечает хочу добавить гилру чтоб полетать а номне не знаю если нада у меня есть номера всех оружий какие есть в гта(может всех точно ненаю)!!!!!!
Список тачек с idшниками нашел, вот терь интересно как узнавать координаты куда можно воткнуть тачку или ствол, как их определять????? Может мод есть который интегрируется в гта и показывает координаты главное то тока X и Y!!! Подскажите пожалуйста!!!!!
Народ а подскажите, никак нельзя зделать чтобы время плавно менялось как в самой гта на прохождение??? Если у кого есть скрипт дайте плиззз, а лучше в фильтерскрипте
извините за тупые вопросы но я только сегодня создал сервер и хочу узнать:
1)скажите как добовлять скрипты например на спидометр и куда ?
2) скачал мод freeroam и как его поставить ?
Икак писать код? А точнее куда? Нужно его писать после всего в конце? или в какоето другое место.
И еще вопрос надо так и писать чтоле часть 1, часть 2, часть 3 и т.д.?????
Как делать мод ?? | Учимся делать скрипты | 2008-03-14 |
Как создать собственный сервер для gta sa-mp? | Учимся делать скрипты | 2011-08-21 |
HELP | Учимся делать скрипты | 2008-04-16 |
Вы здесь » Всё о скриптинге в Sa-Mp » Учимся делать скрипты » Готовые моды