(FS) Кусты дурман-травы

Описание: Готовые решения скриптов, filterScript
Модератор: SJplayer

Aleksandr M
Автор темы, Модератор
Модератор
Аватара
Aleksandr M
Автор темы, Модератор
Модератор
Сообщения: 55
Зарегистрирован: 4 июня 2013
С нами: 10 лет 9 месяцев

#1 Aleksandr » 9 июля 2013, 18:43

(FS) Кусты дурман-травы
Автор: St1muL

Суть скрипта:
Каждую(ые) %d минут(ы) на каждом кусте вырастает +1 грамм. Если забыли сорвать с куста, то он может перезреть и испортиться.

Код

Код: Выделить всё

/*
Автор: St1muL
Skype: mihan.45rus
*/

#include <a_samp>

#define MAX_KUST_GRAM 5 //Максимум грамм на кусте
#define MAX_KUST 7 //Максимальное число кустов
#define KEYKUST KEY_CROUCH // Кнопка для посадки/сбора
#define TimeGRAM 5 //Время добавления грамм (МИН)
forward KustUpdate();

enum Info
{
    
Float:Pos[3],
    
Gram,
    
Posad,
};
new 
K_Info[MAX_KUST][Info];

new 
Text3D:    Kust3d[MAX_KUST];
new 
KustObject[MAX_KUST];

new 
Float:KustPos[MAX_KUST][3] =
{
    {
2467.9519,-1718.3346,13.4984},
    {
2468.8625,-1712.3462,13.4992},
    {
2462.8533,-1711.6302,13.5106},
    {
2461.9358,-1716.5924,13.5205},
    {
2456.7532,-1717.4873,13.5908},
    {
2455.2607,-1710.7610,13.6103},
    {
2451.0374,-1713.4070,13.6708}
};

public 
OnFilterScriptInit()
{
    new 
string[214];
    for(new 
kuku<MAX_KUSTku++)
    {
        for(new 
i3i++)
        {
            
K_Info[ku][Pos][i] = KustPos[ku][i];
        }
        
K_Info[ku][Gram] = 0;
        
K_Info[ku][Posad] = 1;
        
format(string,sizeof(string),"Куст {FFCB77}№%d\nСостояние: %d/%d грамм",ku,K_Info[ku][Gram],MAX_KUST_GRAM);
        
Kust3d[ku] = Create3DTextLabel(string,0x66ffaaFFK_Info[ku][Pos][0], K_Info[ku][Pos][1], K_Info[ku][Pos][2], 20.00true);
        
KustObject[ku] = CreateObject(801,K_Info[ku][Pos][0], K_Info[ku][Pos][1], K_Info[ku][Pos][2]-1.0,0.0,0.0,0.0,100);
    }
    
SetTimer("KustUpdate"TimeGRAM*60*1000true);
    return 
1;
}

public 
KustUpdate()
{
    for(new 
kuku<MAX_KUSTku++)
    {
        new 
string[214];
        switch(
K_Info[ku][Gram])
        {
            case 
0..MAX_KUST_GRAM-1:
            {
                
K_Info[ku][Gram]++;
            }
            case 
MAX_KUST_GRAM:
            {
                
K_Info[ku][Gram] = 0;
                
K_Info[ku][Posad] = 0;
                
DestroyObject(KustObject[ku]);
            }
        }
        if(
K_Info[ku][Gram] < MAX_KUST_GRAMformat(string,sizeof(string),"Куст {FFCB77}№%d\nСостояние: %d/%d грамм",ku,K_Info[ku][Gram],MAX_KUST_GRAM);
        if(
K_Info[ku][Gram] == MAX_KUST_GRAMformat(string,sizeof(string),"Куст {FFCB77}№%d\nСостояние: Семена созрели",ku);
        if(
K_Info[ku][Posad] == 0format(string,sizeof(string),"Куст {FFCB77}№%d\nСостояние: Куст не посажен",ku);

        
Update3DTextLabelText(Kust3d[ku], 0x66ffaaFF,string);
    }
}

public 
OnFilterScriptExit()
{
    for(new 
kuku<MAX_KUSTku++)
    {
        
Delete3DTextLabel(Kust3d[ku]);
        
DestroyObject(KustObject[ku]);
    }
    return 
1;
}

public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    new 
string[256];
    if(
newkeys == KEYKUST)
    {
        for(new 
kuku<MAX_KUSTku++)
        {
            if(
IsPlayerInRangeOfPoint(playerid,1,K_Info[ku][Pos][0], K_Info[ku][Pos][1], K_Info[ku][Pos][2]))
            {
                if(
K_Info[ku][Posad] == 1)
                {
                    
K_Info[ku][Posad] = 0;
                    
format(string,sizeof(string),"Вы сорвали с куста {FFCB77}№%d %d грамм{66ffaa}.",ku,K_Info[ku][Gram]);
                    
SendClientMessage(playerid0x66ffaaAAstring);
                    
format(string,sizeof(string),"Куст {FFCB77}№%d\nСостояние: Куст не посажен",ku);
                    
Update3DTextLabelText(Kust3d[ku], 0x66ffaaFF,string);
                    
format(string,sizeof(string), "%s собирает дурман-траву",GN(playerid));
                    
DestroyObject(KustObject[ku]);
                }
                else
                {
                    
K_Info[ku][Posad] = 1;
                    
format(string,sizeof(string),"Куст {FFCB77}№%d\nСостояние: %d/%d грамм",ku,K_Info[ku][Gram],MAX_KUST_GRAM);
                    
Update3DTextLabelText(Kust3d[ku], 0x66ffaaFF,string);
                    
format(string,sizeof(string), "%s садит дурман-траву",GN(playerid));
                    
KustObject[ku] = CreateObject(801,K_Info[ku][Pos][0], K_Info[ku][Pos][1], K_Info[ku][Pos][2]-1.0,0.0,0.0,0.0,100);
                }
                
ApplyAnimation(playerid"COP_AMBIENT""null"0.0 ,00000);
                
ApplyAnimation(playerid"BOMBER""BOM_Plant"4.000000);
                
SetPlayerChatBubble(playerid,string,0xC2A2DAAA,20.0,5*1000);
                
K_Info[ku][Gram] = 0;
            }
        }
    }
    return 
1;
}

stock GN(playerid)
{
    new 
pName[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof pName);
    return 
pName;


Дим M
Администратор
Администратор
Аватара
Дим M
Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#2 Дим » 9 июля 2013, 21:38

Когда то на основе этого скрипта, сделал систему конопли
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Скрипты / FS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 7 гостей