1. Molen10.05.2024 в 00:43от
Загрузка...

[Мануал] Рыбалка

Тема в разделе "Grand Theft Auto", создана пользователем DronTurbo, 04.03.2014.

  1. DronTurbo

    DronTurbo

    Статус:
    Оффлайн
    Регистрация:
    16.11.13
    Сообщения:
    24
    Репутация:
    2 +/-
    Ко всем new добавляем:

    PHP:
    new RodObject;
    new 
    FishMarketIcon;
    new 
    FishInfoIcon;
    new 
    FRod[MAX_PLAYERS];
    new 
    Fishing[MAX_PLAYERS];
    new 
    Bait[MAX_PLAYERS];
    new 
    FLine[MAX_PLAYERS];
    Ко всем forward добавляем:

    PHP:
    forward VaildFishPlace(playerid);
    forward FishTimer(playerid);
    forward AnimFixer(playerid);
    forward LeavePosition(playerid);
    Далее в
    PHP:
    public OnPlayerConnect
    добавляем:

    PHP:
    SetPlayerMapIconplayerid0377.1194,-2121.7058,-0.532890MAPICON_LOCAL );
    После добавляем в
    PHP:
    public OnGameModeInit()
    PHP:
        Create3DTextLabel("{FFA500}Информация: {00BFFF}Рыбалка",0xFFFFDD,382.4216,-2080.1860,7.8359,20.0,0,1);
        
    FishInfoIcon CreatePickup(12392382.4216,-2080.1860,7.8359, -1);
        
    Create3DTextLabel("{FFA500}Магазин: {00BFFF}Рыбный рынок",0xFFFFDD,359.3295,-2032.0739,7.8359,20.0,0,1);
        
    FishMarketIcon CreatePickup(13182359.3295,-2032.0739,7.8359, -1);
    Далее идём в
    PHP:
    public OnPlayerCommandText(
    и добавляем

    PHP:
        if (strcmp("/fishinfo"cmdtexttrue10) == 0)
        {
             
    SendClientMessage(playerid,0xFFFFFFFF"Рыбалка:");
             
    SendClientMessage(playerid,0xFFFFFFFF"{C0C0C0}/fish {FFFFFF}- начать рыбалку");
             
    SendClientMessage(playerid,0xFFFFFFFF"{C0C0C0}/fishend {FFFFFF}- остановить рыбалку");
             
    SendClientMessage(playerid,0xFFFFFFFF"{C0C0C0}/+rod {FFFFFF}- взять удочку");
             
    SendClientMessage(playerid,0xFFFFFFFF"{C0C0C0}/-rod {FFFFFF}- убрать удочку");
            return 
    1;
        }
        if (
    strcmp("/+rod"cmdtexttrue10) == 0)
        {
            if(
    FRod[playerid] == 1)
            {
                
    FRod[playerid] = 2;
                
    RodObject SetPlayerAttachedObject(playerid0,18632,6,0.079376,0.037070,0.007706,181.482910,0.000000,0.000000,1.000000,1.000000,1.000000);
            }
            else
              {
              
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} У Вас нет удочки!");
            }
            return 
    1;
        }
        if (
    strcmp("/-rod"cmdtexttrue10) == 0)
        {
            if(
    FRod[playerid] == || FRod[playerid] == || Fishing[playerid] == 0)
            {
                
    FRod[playerid] = 1;
                
    RemovePlayerAttachedObject(playerid,0);
                
    RemovePlayerAttachedObject(playerid,RodObject);
            }
            else
              {
              
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} У Вас нет ни чего, чем можно ловить рыбу!");
            }
            return 
    1;
        }
        if (
    strcmp("/fishend"cmdtexttrue10) == 0)
        {
            if(
    Fishing[playerid] == 1)
            {
                
    Fishing[playerid] = 0;
                
    TogglePlayerControllable(playerid1);
                
    ApplyAnimation(playerid"CARRY""crry_prtial"2.000000);
                
    SendClientMessage(playerid,0xFFFFFFFF,"{FF0000}x{FFFFFF} Рыбалка остановлена");
                
    GameTextForPlayer(playerid,"~w~fishing ~r~stopped"30003);
            }
            else
              {
              
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} Рыбалка не была начата!");
            }
            return 
    1;
        }
        if (
    strcmp("/fish"cmdtexttrue10) == 0)
        {
            if(
    VaildFishPlace(playerid) && !IsPlayerInAnyVehicle(playerid))
            {
                if(
    Bait[playerid] > 0)
                {
                    if(
    FLine[playerid] > 0)
                    {
                        if(
    FRod[playerid] == 2)
                        {
                            if(
    Fishing[playerid] == 0)
                            {
                            
    TogglePlayerControllable(playerid0);
                            
    ApplyAnimation(playerid,"SWORD","sword_block",50.0,0,1,0,1,1);
                            
    Fishing[playerid] = 1;
                            
    SetTimerEx("FishTimer"50000false"i"playerid);
                            
    SetTimerEx("LeavePosition"40000false"i"playerid);
                            
    SetTimerEx("AnimFixer"1000false"i"playerid);
                            
    SendClientMessage(playerid,0xFFFFFFFF"{00FF00}х {FFFFFF}Вы начали рыбачить!");
                            
    GameTextForPlayer(playerid,"~w~fishing ~g~started"490003);
                            }
                            else
                            {
                            
    SendClientMessage(playerid,0xCD0000FF"{FF0000}x{FFFFFF} Вы уже ловили!");
                            }
                            return 
    1;
                        }
                        return 
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} Возмите удочку в руки!");
                    }
                    return 
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} У Вас нет лесок в запасе!");
                   }
                   return 
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} У Вас нет приманок в запасе!");
            }
            return 
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} В этом месте запрещена рыбалка!");
        }
    После ищем
    PHP:
    public OnPlayerPickUpPickup(playeridpickupid)
    и вставляем

    PHP:
    if(pickupid == FishMarketIcon)
        {
        
    ShowPlayerDialog(playerid1DIALOG_STYLE_LIST"Рыбный рынок""Удочка (50$)\nПриманка (35$)\nЛеска (15$)\nПолный комплект (100$)""Купить""Отмена");
        return 
    1;
        }
        if(
    pickupid == FishInfoIcon)
        {
                 
    SendClientMessage(playerid0xFFFFFFFF"х {C0C0C0}=================[ {FFFFFF}Рыбалка{C0C0C0} ]================");
                
    SendClientMessage(playerid0xFFFFFFFF"х {C0C0C0}/+rod {FFFFFF}- взять удочку");
                 
    SendClientMessage(playerid0xFFFFFFFF"х {C0C0C0}/-rod {FFFFFF}- убрать удочку");
                 
    SendClientMessage(playerid0xFFFFFFFF"х {C0C0C0}/fish {FFFFFF}- начать рыбалку");
                 
    SendClientMessage(playerid0xFFFFFFFF"х {C0C0C0}/fishend {FFFFFF}- остановить рыбалку");
        }
    Далее ищем
    PHP:
    public OnDialogResponse
    и вставляем

    PHP:
    case 1:
                {
                    if(!
    response) return SendClientMessage(playerid0xFFFFFFFF,"Вы закончили покупки");
                    switch(
    listitem)
                {
                    case 
    0:
                    {
            if(
    IsPlayerInRangeOfPoint(playerid2359.3295,-2032.0739,7.8359) && GetPlayerMoney(playerid) >= 50)
            {
                if(
    FRod[playerid] == 0)
                {
                
    FRod[playerid] = 1;
                
    SendClientMessage(playerid,0xFFFFFFFF"{00FF00}x{FFFFFF} Удочка куплена!");
                
    GameTextForPlayer(playerid,"~r~-50$"12001);
                
    GivePlayerMoney(playerid,-50);
                }
                else
                {
                   
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} Вы уже купили удочку!");
                }
                return 
    1;
               }
                    }
                    case 
    1:
                    {
            if(
    IsPlayerInRangeOfPoint(playerid2359.3295,-2032.0739,7.8359) && GetPlayerMoney(playerid) >= 35)
            {
                if(
    Bait[playerid] == 0)
                {
                
    Bait[playerid] = 1;
                
    SendClientMessage(playerid,0xFFFFFFFF"{00FF00}x{FFFFFF} Приманка куплена!");
                
    GameTextForPlayer(playerid,"~r~-35$"12001);
                
    GivePlayerMoney(playerid,-35);
                }
                else
                {
                   
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} Вы уже купили приманку!");
                }
                return 
    1;
            }
                    }
                    case 
    2:
                    {
            if(
    IsPlayerInRangeOfPoint(playerid2359.3295,-2032.0739,7.8359) && GetPlayerMoney(playerid) >= 15)
              {
                if(
    FLine[playerid] == 0)
                {
                
    FLine[playerid] = 1;
                
    SendClientMessage(playerid,0xFFFFFFFF"{00FF00}x{FFFFFF} Леска куплена!");
                
    GameTextForPlayer(playerid,"~r~-15$"12001);
                
    GivePlayerMoney(playerid,-15);
                }
                else
                {
                   
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} Вы уже купили леску!");
                }
                return 
    1;
               }
                    }
                    case 
    3:
                    {
            if(
    IsPlayerInRangeOfPoint(playerid2359.3295,-2032.0739,7.8359) && GetPlayerMoney(playerid) >= 100)
              {
                if(
    FLine[playerid] == 0)
                if(
    Bait[playerid] == 0)
                if(
    FRod[playerid] == 0)
                {
                
    FLine[playerid] = 1;
                
    Bait[playerid] = 1;
                
    FRod[playerid] = 1;
                
    SendClientMessage(playerid,0xFFFFFFFF"{00FF00}x{FFFFFF} Удочка, приманка и леска куплены!");
                
    GameTextForPlayer(playerid,"~r~-100$"12001);
                
    GivePlayerMoney(playerid,-100);
                }
                else
                {
                   
    SendClientMessage(playerid,0xFFFFFFFF"{FF0000}x{FFFFFF} Вы уже купили удочку, приманку и леску!");
                }
                return 
    1;
               }
                    }
                }
                    return 
    true;
                }
        }
    В самом конце мы вставляем это:

    PHP:
    public VaildFishPlace(playerid)
    {
        if(
    IsPlayerConnected(playerid))
        {
            if(
    IsPlayerInRangeOfPoint(playerid4,403.8266,-2088.7598,7.8359) || IsPlayerInRangeOfPoint(playerid4,398.7553,-2088.7490,7.8359))
            {
                return 
    1;
            }
            else if(
    IsPlayerInRangeOfPoint(playerid4,396.2197,-2088.6692,7.8359) || IsPlayerInRangeOfPoint(playerid4,391.1094,-2088.7976,7.8359))
            {
                return 
    1;
            }
            else if(
    IsPlayerInRangeOfPoint(playerid4,383.4157,-2088.7849,7.8359) || IsPlayerInRangeOfPoint(playerid4,374.9598,-2088.7979,7.8359))
            {
                return 
    1;
            }
            else if(
    IsPlayerInRangeOfPoint(playerid4,369.8107,-2088.7927,7.8359) || IsPlayerInRangeOfPoint(playerid4,367.3637,-2088.7925,7.8359))
            {
                return 
    1;
            }
            else if(
    IsPlayerInRangeOfPoint(playerid4,362.2244,-2088.7981,7.8359) || IsPlayerInRangeOfPoint(playerid4,354.5382,-2088.7979,7.8359))
            {
                return 
    1;
            }
        }
        return 
    0;
    }

    public 
    FishTimer(playerid)
    {
        if(
    VaildFishPlace(playerid))
        {
            if(
    Fishing[playerid] == 1)
            {
                 new 
    fish random(10);
                new 
    fishname[100];
                new 
    string[256];
                if(
    fish == 1) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Ерша {FFFFFF}и продали на рынке за {88AA88}1 вирт{FFFFFF}!"; }
                else if(
    fish == 2) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Окуня {FFFFFF}и продали на рынке за {88AA88}3 вирта{FFFFFF}!"; }
                else if(
    fish == 3) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Карася {FFFFFF}и продали на рынке за {88AA88}5 вирт{FFFFFF}!"; }
                else if(
    fish == 4) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Щуку {FFFFFF}и продали на рынке за {88AA88}8 вирт{FFFFFF}!"; }
                else if(
    fish == 5) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Белугу {FFFFFF}и продали на рынке за {88AA88}10 вирт{FFFFFF}!"; }
                else if(
    fish == 6) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Кету {FFFFFF}и продали на рынке за {88AA88}13 вирт{FFFFFF}!"; }
                else if(
    fish == 7) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Горбушу {FFFFFF}и продали на рынке за {88AA88}15 вирт{FFFFFF}!"; }
                else if(
    fish == 8) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Семгу {FFFFFF}и продали на рынке за {88AA88}18 вирт{FFFFFF}!"; }
                else if(
    fish == 9) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Нерку {FFFFFF}и продали на рынке за {88AA88}20 вирт{FFFFFF}!"; }
                else if(
    fish == 10) { fishname "{00FF00}х {FFFFFF}Вы поймали {88AA88}Лосося {FFFFFF}и продали на рынке за {88AA88}25 вирт{FFFFFF}!"; }
                else { 
    fishname "{FF0000}x {FFFFFF}Рыба сорвалась и порвала леску!"; }
                
    format(stringsizeof(string), "%s"fishname);
                
    SendClientMessage(playerid,0xFFFFFFFFstring);
                if(
    fish == 1) { fishname "1"; }
                else if(
    fish == 2) { fishname "3"; }
                else if(
    fish == 3) { fishname "5"; }
                else if(
    fish == 4) { fishname "8"; }
                else if(
    fish == 5) { fishname "10"; }
                else if(
    fish == 6) { fishname "13"; }
                else if(
    fish == 7) { fishname "15"; }
                else if(
    fish == 8) { fishname "18"; }
                else if(
    fish == 9) { fishname "20"; }
                else if(
    fish == 10) { fishname "25"; }
                else { 
    fishname "{FF0000}х {FFFFFF}Рыба сорвалась!"; }
                
    format(stringsizeof(string), "~g~+%s$"fishname);
                
    GameTextForPlayer(playeridstring12001);
                if(
    fish == 1) { GivePlayerMoney(playerid,1); }
                else if(
    fish == 2) { GivePlayerMoney(playerid,3); }
                else if(
    fish == 3) { GivePlayerMoney(playerid,5); }
                else if(
    fish == 4) { GivePlayerMoney(playerid,8); }
                else if(
    fish == 5) { GivePlayerMoney(playerid,10); }
                else if(
    fish == 6) { GivePlayerMoney(playerid,13); }
                else if(
    fish == 7) { GivePlayerMoney(playerid,15); }
                else if(
    fish == 8) { GivePlayerMoney(playerid,18); }
                else if(
    fish == 9) { GivePlayerMoney(playerid,20); }
                else if(
    fish == 10) { GivePlayerMoney(playerid,25); }
                else { 
    FLine[playerid] = 0; }
                
    Fishing[playerid] = 0;
                
    TogglePlayerControllable(playerid1);
                
    ApplyAnimation(playerid"CARRY""crry_prtial"2.000000);
            }
        }
    }

    public 
    AnimFixer(playerid)
    {
        if(
    VaildFishPlace(playerid))
        {
            if(
    Fishing[playerid] == 1)
            {
            
    SetCameraBehindPlayer(playerid);
               
    ApplyAnimation(playerid,"SWORD","sword_block",50.0,0,1,0,1,1);
            }
        }
    }
    public 
    LeavePosition(playerid)
    {
        if(!
    VaildFishPlace(playerid))
        {
            if(
    Fishing[playerid] == 1)
            {
            
    Fishing[playerid] = 0;
            
    SetCameraBehindPlayer(playerid);
               
    ApplyAnimation(playerid"CARRY""crry_prtial"2.000000);
            }
        }
    }
    Вот и всё.[hr][/hr]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    Автор вырезки Dron_Turbo :)
     
  2. CrazY DemoN

    CrazY DemoN

    Статус:
    Оффлайн
    Регистрация:
    30.03.14
    Сообщения:
    108
    Репутация:
    14 +/-
  3. РобкаБобка

    РобкаБобка

    Статус:
    Оффлайн
    Регистрация:
    29.04.14
    Сообщения:
    101
    Репутация:
    111 +/-
    Спасибо!!)
     
  4. ZENK

    ZENK

    Статус:
    Оффлайн
    Регистрация:
    22.09.13
    Сообщения:
    263
    Репутация:
    120 +/-
    спасибо
     
  5. TamplieR

    Зарабатываю покером
    TamplieR

    Статус:
    Оффлайн
    Регистрация:
    16.12.13
    Сообщения:
    178
    Репутация:
    43 +/-
    Буду юзать, спасибо.
     
  6. bend37

    bend37

    Статус:
    Оффлайн
    Регистрация:
    16.01.14
    Сообщения:
    270
    Репутация:
    291 +/-
    Спасибо