[pwn]#include <a_samp> #define MAX_POINTS 3
#define GM_LS 0
#define GM_SF 1
#define GM_LV 2
#define COLOR_GREEN 0x33AA43AA
new playerCheckpoint[MAX_PLAYERS];
new Float:checkpoints[MAX_POINTS][3] = {
{1026.3391,-1923.1871,12.8086},
{-2134.4451,263.0450,38.9768},
{2001.1454,1538.6256,13.5859}
};
new checkpointType[MAX_POINTS] = {
GM_LS,
GM_SF,
GM_LV
};
forward CheckpointUpdate();
forward PirateShipScoreUpdate();
forward PayPlayerInArea(Float:radi, playerid, Float:x, Float:y, Float:z, cash);
public OnFilterScriptInit()
{
SetTimer("CheckpointUpdate",1000,1);//Чекпоинт апдейт
SetTimer("PirateShipScoreUpdate", 5000, 1);//А это таймер для того чтобы давать деньги 5000 это время в мили секундах
return 1;
}
public OnPlayerEnterCheckpoint(playerid) //а это если войдёшь в чекпоинт
{
if(getCheckpointType(playerid)==GM_LS)
{
SendClientMessage(playerid,COLOR_GREEN," Удерживай точку для получения 100$ каждые 5сек.");
}
if(getCheckpointType(playerid)==GM_SF)
{
SendClientMessage(playerid,COLOR_GREEN," Удерживай точку для получения 200$ каждые 5сек.");
}
if(getCheckpointType(playerid)==GM_LV)
{
SendClientMessage(playerid,COLOR_GREEN," Удерживай точку для получения 300$ каждые 5сек.");
}
return 1;
}
public CheckpointUpdate()//Паблик таймера для чеков
{
for(new i; i<MAX_PLAYERS; i++)
{
for(new j=0; j < 1; j++) {
if(PlayerToPoint(25,i,checkpoints[j][0],checkpoints[j][1],checkpoints[j][2])) {
if(playerCheckpoint[i]!=j) {
DisablePlayerCheckpoint(i);
SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],5);
playerCheckpoint[i] = j;
}
} else {
if(playerCheckpoint[i]==j) {
DisablePlayerCheckpoint(i);
playerCheckpoint[i] = 999;
}
}
}
}
}
public PirateShipScoreUpdate()//вот сам паблик. сюда пихать коорды.
{
for(new i=0; i<MAX_PLAYERS; i++)
{
PayPlayerInArea(15, i, checkpoints[0][0],checkpoints[0][1],checkpoints[0][2], 100);
PayPlayerInArea(15, i, checkpoints[1][0],checkpoints[1][1],checkpoints[1][2], 200);
PayPlayerInArea(15, i, checkpoints[2][0],checkpoints[2][1],checkpoints[2][2], 300);
}
}
//остальные функции
stock getCheckpointType(playerID) {
if(playerCheckpoint[playerID] != 999)
return checkpointType[playerCheckpoint[playerID]];
else return -1;
}
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
return 0;
}
public PayPlayerInArea(Float:radi, playerid, Float:x, Float:y, Float:z, cash)
{
if(IsPlayerConnected(playerid))
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z))
{
GivePlayerMoney(playerid, cash);
return 1;
}
}
return 0;
}[/pwn]
______________
Почему в игре ток первый чекпоинт есть, а остальных двух нету? 
Добавлено (25.03.2009, 19:47)
---------------------------------------------
______________________________________________________________
UP