Всё о скриптинге в Sa-Mp

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Всё о скриптинге в Sa-Mp » Учимся делать скрипты » Готовые моды


Готовые моды

Сообщений 1 страница 21 из 21

1

freeroam один из самых лучших модов
скачать вы его сможете здесь

Отредактировано Magnus (2006-10-21 10:57:37)

0

2

Mаgnus можешь дать от него dubd.ini?
А то компилить не хочет.

0

3

И мне плиз!

0

4

Стучись в аську дам. 288584510

0

5

Расскажите плз как поставить скрипт спидометра и дуэли!

0

6

Код:
Вот "Топливная система с Спидометром" 
Код:
#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)

0

7

Дуэль... Читай тут http://vacrew.5bb.ru/viewtopic.php?id=45&p=7

0

8

Чё нужно вставлять в эти строки
new Float:checkCoords[MAX_POINTS][4] = {
new Float:checkpoints[MAX_POINTS][4] = {
(я хочу вставить новые здания для покупки)

0

9

new Float:checkCoords - это область появления на радаре чекпоинтов,
тоесть подъезжаешь или входишь в них и на радаре появляется красный
квадратик чекпоинта.
new Float:checkpoints - это сами чекпоинты (Тоесть красная сфера при входе в которую
происходит действие которое вы прописали в своём скрипте).
Как определить область появления чекпоинтов? Это тоже самое что и
определение SetPlayerWorldBounds(playerid,Xmax,Xmin,Ymax,Ymin);.
Подробнее об определении читай тут: http://samp.4bb.ru/viewtopic.php?pid=88#p88

0

10

А напиши чекпоит у аэропорта лас вентураса
Всмысли у new Float:checkCoords и у new Float:checkpoints

0

11

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}
};

0

12

спасибо

0

13

Вот блин. А я эт сам разбирал по частям. А здесь все подсказывают оказывается.

0

14

Spawn написал(а):

Вот "Топливная система с Спидометром"
Код:
#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;
}

Если не сложно расскжите подробней что куда прописывать

Отредактировано roter (2006-12-28 13:19:18)

0

15

Мдя.Народ а не проще самим делать,а?
Я скрипты наерно лучше всех тут знаю :D
Учителя и знакомые просто хорошие

0

16

[UzI]Neorim
Говориш лутше всех???дык делись давай знаниямито!!! :D

0

17

Народ а у кого нить есть список тачек какой номер машина за какую тачку отвечает хочу добавить гилру чтоб полетать а номне не знаю если нада у меня есть номера всех оружий какие есть в гта(может всех точно ненаю)!!!!!!

0

18

Список тачек с idшниками нашел, вот терь интересно как узнавать координаты куда можно воткнуть тачку или ствол, как их определять????? Может мод есть который интегрируется в гта и показывает координаты главное то тока X и Y!!! Подскажите пожалуйста!!!!!

0

19

Народ а подскажите, никак нельзя зделать чтобы время плавно менялось как в самой гта на прохождение??? Если у кого есть скрипт дайте плиззз, а лучше в фильтерскрипте :)

0

20

извините за тупые вопросы но я только сегодня создал сервер и хочу узнать: :D

1)скажите как добовлять скрипты например на спидометр и куда ?
2) скачал мод freeroam и как его поставить ?

0

21

Икак писать код? А точнее куда? Нужно его писать после всего в конце? или в какоето другое место.
И еще вопрос надо так и писать чтоле часть 1, часть 2, часть 3 и т.д.?????

0


Вы здесь » Всё о скриптинге в Sa-Mp » Учимся делать скрипты » Готовые моды