Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Сис-ма рыбалки. (mxINI)

Статус
В этой теме нельзя размещать новые ответы.

BlackWolf4278

Умник
Здраствуйте увж. пользователи Павно Инфо, вот написал сис-му рыбалки с 0 для мода на mxINI решил поделится с вами.

Вот суть рыбалки: Вы идёте в магазин покупаете удочку и нажыку, так как без удочки вы несможите ловить рыбы да и без нажывки тоже, как только вы прописали /fish тоесть начали ловить рыбу, у вас стает на 1 меньше нажывки даже если вы словите или нет рыбу. Удочка у вас остается всегда. Дальше вы идете к корабликам садитесь и арендуете кораблик(бага с арендой нет) и едете к указаному вам чекпоинту(рандом) после того как вы приехали ловите рыбу командой /fish если словили тогда вам дадут +1 рыбу и -1 нажывки, а рыбу вы сможите сёсть и вам даст +20хп, но если у вас больше 90хп вам ничего не даст вы просто несможите сёсть рыбу, но если вы не словили рыбу то вам даст +0 рыбы :D и коенчно же -1 нажывки.

Автор системы: BlackWolf4278 (тоесть я)

Вот скрины:

Сам мануал:

Ко всем new:

PHP:
new fishingshop1, fishingshop2;
В паблик OnPlayerPickUpPickup:

PHP:
else if(pickupid == fishingshop1) //Óëèöà
	{

		SetPlayerInterior(playerid, 0);
		SetPPos(playerid,356.1742,-2074.2048,10.2663);
		SetPlayerFacingAngle(playerid, 180.7410);
	}
	else if(pickupid == fishingshop2) //Èíò

	{

		SetPlayerInterior(playerid, 6);
		SetPPos(playerid,-2237.8811,136.8535,1035.4141);
		SetPlayerFacingAngle(playerid, 92.4441);
	}
В паблик OnGameModeInit:

PHP:
fishingshop1 = CreatePickup(19197,23,-2240.6428,137.1731,1035.4141); // на улицу
fishingshop2 = CreatePickup(19197,23,356.0586,-2071.4338,10.6953); // в инт
Ко всем new:

PHP:
new fishingboat[5];
В паблик OnPlayerStateChange:

PHP:
if(newcar >= fishingboat[0] && newcar <= fishingboat[4])
        {
         if(PlayerInfo[playerid][pYdochka] == 1)
            {
               if(GetPlayerVehicleID(playerid) != GetPVarInt(playerid,"ArendaCar"))
               {
                    ShowPlayerDialog(playerid,9127,DIALOG_STYLE_MSGBOX, "Аренда кора***", "Вы хотите арендовать корабль для рыбалки за 1000 вирт?", "Снять", "Отмена");
                    TogglePlayerControllable(playerid, 0);
				}
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "У вас нет удочки. Купите тогда приходите опять.");
                RemoveVehicle(playerid);
            }
        }
В паблик CreateVehicles:

PHP:
	//---------------------------------[ boats ]-----------------------------------------
	fishingboat[0] = AddStaticVehicleEx(453,404.4855,-2102.2783,-0.5115,268.5013,1,1,1550); // boat 1
        fishingboat[1] = AddStaticVehicleEx(453,390.1325,-2102.1594,-0.1642,269.2771,1,1,1550); // boat 2
	fishingboat[2] = AddStaticVehicleEx(453,376.2626,-2102.7754,-0.2722,268.2941,1,1,1550); // boat 3
	fishingboat[3] = AddStaticVehicleEx(453,364.8602,-2102.7263,-0.1090,267.3876,1,1,1550); // boat 4
	fishingboat[4] = AddStaticVehicleEx(453,346.3792,-2100.5354,-0.5108,177.9939,1,1,1550); // boat 5
Ко всем case:

PHP:
  case 9127:
        {
            if(response)
            {
                if(PlayerInfo[playerid][pCash] <= 1000)
                {
                    SendClientMessage(playerid, COLOR_GREY, "Недостаточно денег");
                    RemoveVehicle(playerid);
                    TogglePlayerControllable(playerid, 1);
                    return true;
                }
                PlayerInfo[playerid][pCash] -= 1000;
                SetPVarInt(playerid,"ArendaCar", GetPlayerVehicleID(playerid));
                TogglePlayerControllable(playerid, 1);
                format(string, sizeof(string), "~w~YOU HAVE HIRED A BOAT~n~GOD LUCK ON FISHING");
                GameTextForPlayer(playerid, string, 5000, 3);
                FishPlace(playerid);
                SendClientMessage(playerid, COLOR_GREEN, "Вы арендовали корабль");
				SendClientMessage(playerid, COLOR_GREEN, "Ваш кквадрат ловли рыбы отмечен на карте.");
                return true;
            }
            else
            {
                RemoveVehicle(playerid);
                TogglePlayerControllable(playerid, 1);
                return true;
            }
        }
В конец мода:

PHP:
stock FishPlace(playerid)
{ switch(random(5))// данное число должно равняться последнему case.
       { case 0: SetPlayerCheckpoint(playerid,510.0920,-2339.9844,1.0611,6); case 1: SetPlayerCheckpoint(playerid,385.6881,-2423.7810,0.5722,6);
         case 2: SetPlayerCheckpoint(playerid,301.6492,-2331.4458,0.4600,6); case 3: SetPlayerCheckpoint(playerid,198.0347,-2219.9585,0.7775,6); case 4: SetPlayerCheckpoint(playerid,119.0307,-2321.1106,1.0210,6); } }
В паблик OnPlayerConnect:


PHP:
////////////////////////fishing//////////////////////
	RemoveBuildingForPlayer(playerid, 1280, 378.84305, -2083.22949, 7.23096, 0.25);
    RemoveBuildingForPlayer(playerid, 1280, 369.25702, -2083.0686, 7.45957, 0.25);
    RemoveBuildingForPlayer(playerid, 1280, 390.50394, -2083.11499, 7.23096, 0.25);
    RemoveBuildingForPlayer(playerid, 1215, 379.80112, -2087.10156, 7.50588, 0.25);
    RemoveBuildingForPlayer(playerid, 1215, 380.8143, -2071.01855, 7.28761, 0.25);
    RemoveBuildingForPlayer(playerid, 1215, 386.54303, -2062.17212, 7.01966, 0.25);
    RemoveBuildingForPlayer(playerid, 1215, 379.63293, -2055.36084, 7.22506, 0.25);
    RemoveBuildingForPlayer(playerid, 1215, 386.48962, -2049.55469, 7.31517, 0.25);
    RemoveBuildingForPlayer(playerid, 6466, 374.69531, -2054.88281, 8.70313, 0.25);
В паблик CreateObjects:

PHP:
////////////////Fishing////////////////
	CreateObject(3406, 406.29999, -2098.5, 0, 0, 0, 0); // ?????? 0
CreateObject(3406, 397.70001, -2098.5, 0, 0, 0, 0); // ?????? 1
CreateObject(3406, 389.10001, -2098.5, 0, 0, 0, 0); // ?????? 2
CreateObject(3406, 380.39999, -2098.5, 0, 0, 0, 0); // ?????? 3
CreateObject(3406, 371.70001, -2098.5, 0, 0, 0, 0); // ?????? 4
CreateObject(3406, 363, -2098.5, 0, 0, 0, 0); // ?????? 5
CreateObject(3406, 354.20001, -2098.5, 0, 0, 0, 0); // ?????? 6
CreateObject(982, 414.91797, -2061.05762, -28.16223, 0, 0, 0); // ?????? 7
CreateObject(982, 362.10001, -2097.80005, 2.8, 0, 0, 270); // ?????? 8
CreateObject(982, 397.39999, -2097.80005, 2.8, 0, 0, 270); // ?????? 9
CreateObject(983, 377.89999, -2097.80005, 2.8, 0, 0, 270); // ?????? 10
CreateObject(10244, 382.10001, -2091.80005, 3.3, 0, 0, 90); // ?????? 11
CreateObject(1624, 383.29999, -2097.69995, 1.42, 0, 0, 272); // ?????? 12
CreateObject(1624, 381.79999, -2097.69995, 1.42, 0, 0, 268); // ?????? 13
CreateObject(982, 362.39999, -2089.19995, 7.5, 0, 0, 90); // ?????? 14
CreateObject(982, 397.10001, -2089.1001, 7.5, 0, 0, 270); // ?????? 15
CreateObject(983, 376.60001, -2089.19995, 7.5, 0, 0, 270); // ?????? 16
CreateObject(1215, 378.89999, -2057, 7.4, 0, 0, 0); // ?????? 17
CreateObject(1215, 381.89999, -2057, 7.4, 0, 0, 0); // ?????? 18
CreateObject(1215, 383.5, -2057.1001, 7.4, 0, 0, 0); // ?????? 19
CreateObject(1215, 385.10001, -2057, 7.4, 0, 0, 0); // ?????? 20
CreateObject(1215, 386.5, -2057, 7.4, 0, 0, 0); // ?????? 21
CreateObject(1215, 380.39999, -2057, 7.4, 0, 0, 0); // ?????? 22
CreateObject(1215, 387.79999, -2057, 7.4, 0, 0, 0); // ?????? 23
CreateObject(1215, 389.20001, -2057, 7.4, 0, 0, 0); // ?????? 24
CreateObject(1215, 390.60001, -2057, 7.4, 0, 0, 0); // ?????? 25
CreateObject(1215, 391.89999, -2057, 7.4, 0, 0, 0); // ?????? 26
CreateObject(1215, 393.10001, -2058, 7.4, 0, 0, 0); // ?????? 27
CreateObject(1215, 393.70001, -2059.19995, 7.4, 0, 0, 0); // ?????? 28
CreateObject(1215, 355.79999, -2049.6001, 7.4, 0, 0, 0); // ?????? 29
CreateObject(1215, 355.79999, -2048.5, 7.4, 0, 0, 0); // ?????? 30
CreateObject(1215, 355.79999, -2047.40002, 7.4, 0, 0, 0); // ?????? 31
CreateObject(1215, 398.89999, -2047.09998, 7.4, 0, 0, 0); // ?????? 32
CreateObject(1215, 398.29999, -2047.59998, 7.4, 0, 0, 0); // ?????? 33
CreateObject(1215, 398.29999, -2048.3999, 7.4, 0, 0, 0); // ?????? 34
CreateObject(1215, 398.29999, -2049.30005, 7.4, 0, 0, 0); // ?????? 35
CreateObject(2946, 355.20001, -2070.62012, 9.7, 0, 0, 270); // ?????? 36
В паблик OnPlayerCommandText:

PHP:
	if(strcmp("/fish", cmdtext, true, 10) == 0)
    {
         if(VaildFishPlace(playerid) && !IsPlayerInAnyVehicle(playerid))
        {
            if(PlayerInfo[playerid][pYdochka] == 0) return SendClientMessage(playerid, COLOR_GREY, "{F70000}x{ADAEAD} У вас нету удочки");
            if(PlayerInfo[playerid][pNaguvka] == 0) return SendClientMessage(playerid, COLOR_GREY, "{F70000}x{ADAEAD} У вас нет нажывки");
            if(GetPVarInt(playerid, "Fishing") > 0) return SendClientMessage(playerid, COLOR_GREY, "{F70000}x{ADAEAD} Вы уже рыбачите");
             TogglePlayerControllable(playerid, 0);
            ApplyAnimation(playerid,"SWORD","sword_block",50.0,0,1,0,1,1);
            new randfish = 10 + random(19);
            SetPVarInt(playerid, "FishingTime", randfish);
            GameTextForPlayer(playerid,"~g~Waiting....", randfish*1000, 6);
            PlayerInfo[playerid][pNaguvka] -= 1;
            new object = SetPlayerAttachedObject(playerid, 0,18632,6,0.079376,0.037070,0.007706,181.482910,0.000000,0.000000,1.000000,1.000000,1.000000);
            SetPVarInt(playerid, "FishingObject", object);
            SetPVarInt(playerid, "Fishing", 1);
        }
        else SendClientMessage(playerid, COLOR_GREY, "{F70000}x{ADAEAD} Вы должны находится в своем квадрате!");
        return 1;
    }
    else if(strcmp(cmd, "/fbuy", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
				if (PlayerToPoint(5, playerid,-2237.1477,130.3749,1035.4141))
				{
                    ShowPlayerDialog(playerid, 7792, DIALOG_STYLE_LIST, "Рыбалка","1. Удочка [5000 вирт]\n2. Нажывка [100 вирт]", "Купить", "Отмена");
				}
		}
		return true;
	}
	else if(strcmp(cmd, "/eatfish", true) == 0)
	{
		if(PlayerInfo[playerid][Сюда переменную вашего HP] < 90)
		{
                    if(PlayerInfo[playerid][pRuba] < 1) return SendClientMessage(playerid, COLOR_WHITE, "{8080ff}Недостаточно рыбы.");
                    new Float:health;
					GetPlayerHealth(playerid,health);
					SetPlayerHealthAC(playerid, health + 20.0);
					PlayerInfo[playerid][Сюда переменную вашего HP] += 20;
					PlayerInfo[playerid][pRuba] -= 1;
 		            SendMes(playerid, COLOR_GREEN, "Вы сёли 1 рыбу, вам добавилось 20 хп.");
		}
		else
			{
				SendClientMessage(playerid, COLOR_RED, "Вы здоровы и ненуждаитесь в рыбе");
			}
		return true;
	}
В команде /eatfish измините:

PHP:
PlayerInfo[playerid][Сюда переменную вашего HP] += 20;  
и
if(PlayerInfo[playerid][Сюда переменную вашего HP] < 90)

так как у вас тут (pHP) считало что это BB код ))
В паблик Fresh:

PHP:
//---------------------fishing
		if(GetPVarInt(i, "FishingTime") > 0 && GetPVarInt(i, "Fishing") > 0)
        {
            SetPVarInt(i, "FishingTime", GetPVarInt(i, "FishingTime") - 1);
            if(GetPVarInt(i, "FishingTime") == 0)
            {
                new fish = random(10);
                if(fish == 0) SendClientMessage(i, COLOR_BLUE, "Вы ничего не поймали. Попробуйте еще раз");
                else if(fish == 1) { SendClientMessage(i, COLOR_WHITE, "Поздоровляем! Вы поймали рыбу. Теперь вы можите сёсть её. Используйте: /eatfish"); PlayerInfo[i][pRuba] += 1; }
                else if(fish == 2) SendClientMessage(i, COLOR_BLUE, "Вы ничего не поймали. Попробуйте еще раз");
                else if(fish == 3) { SendClientMessage(i, COLOR_WHITE, "Поздоровляем! Вы поймали рыбу. Теперь вы можите сёсть её. Используйте: /eatfish"); PlayerInfo[i][pRuba] += 1; }
                else if(fish == 4) SendClientMessage(i, COLOR_BLUE, "Вы ничего не поймали. Попробуйте еще раз");
                else if(fish == 5) { SendClientMessage(i, COLOR_WHITE, "Поздоровляем! Вы поймали рыбу. Теперь вы можите сёсть её. Используйте: /eatfish"); PlayerInfo[i][pRuba] += 1; }
                else if(fish == 6) SendClientMessage(i, COLOR_BLUE, "Вы ничего не поймали. Попробуйте еще раз");
                else if(fish == 7) { SendClientMessage(i, COLOR_WHITE, "Поздоровляем! Вы поймали рыбу. Теперь вы можите сёсть её. Используйте: /eatfish"); PlayerInfo[i][pRuba] += 1; }
                else if(fish == 8) SendClientMessage(i, COLOR_BLUE, "Вы ничего не поймали. Попробуйте еще раз");
                else if(fish == 9) { SendClientMessage(i, COLOR_WHITE, "Поздоровляем! Вы поймали рыбу. Теперь вы можите сёсть её. Используйте: /eatfish"); PlayerInfo[i][pRuba] += 1; }
                TogglePlayerControllable(i, 1);
                ApplyAnimation(i,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                DeletePVar(i, "FishingTime");
                DeletePVar(i, "Fishing");
                RemovePlayerAttachedObject(i,0);
                RemovePlayerAttachedObject(i,GetPVarInt(i, "FishingObject"));
                DeletePVar(i, "FishingObject");
            }
        }
Ко всем case:

PHP:
case 7792:
		{
				if(response)
				{
					if(listitem == 0)
					{
						if (PlayerToPoint(5, playerid,-2237.1477,130.3749,1035.4141))
						{
							if(PlayerInfo[playerid][pCash] < 5000) return SendClientMessage(playerid, COLOR_GREY, "Не достаточно денег");
                                                        if(PlayerInfo[playerid][pYdochka] > 1) return SendClientMessage(playerid, COLOR_GREY, "У вас уже есть удочка");
							PlayerInfo[playerid][pCash] -=5000;
							PlayerInfo[playerid][pYdochka] = 1;
							SendClientMessage(playerid, 0x6495EDFF,"Вы купили удочку теперь можите рыбачить.");
							return true;
						}
					}
					else if(listitem == 1)////////////////////////////////////////////////////////////////
					{
						if(PlayerToPoint(5, playerid,-2237.1477,130.3749,1035.4141))
						{
						    if(PlayerInfo[playerid][pCash] < 100) return SendClientMessage(playerid, COLOR_GREY, "Недостаточно денег");
							PlayerInfo[playerid][pCash] -=100;
							PlayerInfo[playerid][pNaguvka] += 10;
							SendClientMessage(playerid, 0x6495EDFF,"Вы купили банку нажывки, теперь вы можите 10 раз закинуть удочку");
							return true;
						}
					}
				}
				else
				{
					return true;
				}
		}
К enum pInfo:

PHP:
pYdochka,pNaguvka
В паблик OnPlayerConnect:

PHP:
	PlayerInfo[playerid][pYdochka] = 0;
	PlayerInfo[playerid][pNaguvka] = 0;
В паблик OnPlayerRegister:

PHP:
ini_setInteger(File,"Ydochka",PlayerInfo[playerid][pYdochka]);
ini_setInteger(File,"Naguvka",PlayerInfo[playerid][pNaguvka]);
В паблик OnPlayerSave:

PHP:
ini_setInteger(File,"Ydochka",PlayerInfo[playerid][pYdochka]);
ini_setInteger(File,"Naguvka",PlayerInfo[playerid][pNaguvka]);
В паблик OnPlayerLogin:

PHP:
ini_getInteger(File,"Ydochka",PlayerInfo[playerid][pYdochka]);
ini_getInteger(File,"Naguvka",PlayerInfo[playerid][pNaguvka]);
Ну вот и все. Если чего забыл пишите, данную систему писал для проекта Washington-Rp так как он распался выложил сюда.

Простите конечно код не супер, так как делал на скорую руку, но новичкам сойдет. И прошу прощения за чтоль ужасный маппинг, маппер из меня некудышний :D
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу