Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±

    продажа фермы

    Здравствуйте у меня вопрос таков как сделать проверку чтобы нельзя было продать любые фермы.

    Вот есть у меня на сервере 2 фермы (1 ферма владелец я | 2 ферма владелец друг) и вот я владелец 1 фермы могу продать ферму друга как сделать проверку чтобы я не смогу чужую ферму продать вот сама команда
    PHP код:
           if(strcmp(cmd"/sellfarm"true) == 0)
           {
            if(
    PlayerInfo[playerid][pFarm] == 255)
                return 
    SendClientMessage(playeridCOLOR_WHITE"У вас нет бизнеса!");
               foreach(new 
    iiFermer)
               {
                   if(
    IsPlayerInRangeOfPoint(playerid15.0FermInfo[i][fmestoX], FermInfo[i][fmestoY], FermInfo[i][fmestoZ]))
                {
                    if(
    FermInfo[i][fOwned] == 0)
                        return 
    SendClientMessage(playeridCOLOR_WHITE"У фермы нет владельца!");
                    if(!
    strcmp(FermInfo[PlayerInfo[playerid][pFarm]][fOwner], PlayerInfo[playerid][pName]))
                    {
                         
    FermInfo[i][fOwned] = 0;//продается - не продается
                         
    strmid(FermInfo[i][fOwner], "None"0strlen("None"), 32);
                        
    FermInfo[i][fProdukt] = 0;//Хлем,нарко,картошка
                        
    FermInfo[i][bBalanc] = 0;//Баланс банка фермы
                        
    FermInfo[i][bLandTax] = 0;//Оплата фермы PayDay
                        
    FermInfo[i][bCenaZerno] = 50;//Цена за куст
                        
    FermInfo[i][bZernoZakup] = 0;//Стоимость зерна
                        
    FermInfo[i][bSernoZaseeno] = 0;//Засеено зерна 0/5000
                        
    FermInfo[i][bSkladSerna] = 0;//Склад зерна 0/10000
                        
    FermInfo[i][bSernaProdaza] = 0;//Продажа зерна
                        
    FermInfo[i][fLocked] = 0;
                        
    PlayerInfo[playerid][pFarm] = 255;
                        
    PlayerInfo[playerid][pBank] += FermInfo[i][bBuyFarm]/2;
                        
    SendClientMessage(playeridCOLOR_YELLOW"Вы продали ферму!");
                        
    SaveAccount(playerid);
                        
    SaveFerm(i);
                        return 
    1;
                    }
                    else
                    {
                        
    SendClientMessage(playeridCOLOR_WHITE"Бизнес вам не принадлежит!");
                        return 
    1;
                    }
                }
            }
            return 
    1;
           } 

  2. #2
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Вставьте команду и скиньте сюда логи из server.log:

    1. if (strcmp(cmd, "/sellfarm", true) == 0)
    2. {
    3. new farm_id = PlayerInfo[playerid][pFarm];
    4. if (farm_id == 255)
    5. {
    6. SendClientMessage(playerid, COLOR_WHITE, "У вас нет бизнеса!");
    7. return 0;
    8. }
    9. foreach (new i: iFermer)
    10. {
    11. if (IsPlayerInRangeOfPoint(playerid, 15.0, FermInfo[i][fmestoX], FermInfo[i][fmestoY], FermInfo[i][fmestoZ]) == 0)
    12. {
    13. SendClientMessage(playerid, COLOR_WHITE, "Бизнес вам не принадлежит!");
    14. break;
    15. }
    16. if (FermInfo[i][fOwned] == 0)
    17. {
    18. SendClientMessage(playerid, COLOR_WHITE, "У фермы нет владельца!");
    19. return 0;
    20. }
    21. if (strcmp(FermInfo[farm_id][fOwner], FermInfo[i][fOwner]) == 0)
    22. {
    23. FermInfo[i][fOwned] = 0;//продается - не продается
    24. strmid(FermInfo[i][fOwner], "None", 0, strlen("None"), 32);
    25. FermInfo[i][fProdukt] = 0;//Хлем,нарко,картошка
    26. FermInfo[i][bBalanc] = 0;//Баланс банка фермы
    27. FermInfo[i][bLandTax] = 0;//Оплата фермы PayDay
    28. FermInfo[i][bCenaZerno] = 50;//Цена за куст
    29. FermInfo[i][bZernoZakup] = 0;//Стоимость зерна
    30. FermInfo[i][bSernoZaseeno] = 0;//Засеено зерна 0/5000
    31. FermInfo[i][bSkladSerna] = 0;//Склад зерна 0/10000
    32. FermInfo[i][bSernaProdaza] = 0;//Продажа зерна
    33. FermInfo[i][fLocked] = 0;
    34. PlayerInfo[playerid][pFarm] = 255;
    35. PlayerInfo[playerid][pBank] += FermInfo[i][bBuyFarm]/2;
    36. SendClientMessage(playerid, COLOR_YELLOW, "Вы продали ферму!");
    37. SaveAccount(playerid);
    38. SaveFerm(i);
    39. break;
    40. }
    41. }
    42. return 1;
    43. }


    P.S: хотя, стоп. Я кажется нашел ошибку, где strcmp, там должно быть i, а не farm_id. Мы же обходим все фермы в радиусе, как раз нужный индекс фермы будет по i.
    Последний раз редактировалось tnc; 04.05.2020 в 22:14. Причина: Обновил, попробуйте так.

  3. Пользователь сказал cпасибо:
    Pawn.Dima (04.05.2020)
  4. #3
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±
    Хорошо сейчас скину

    - - - Добавлено - - -

    CMD:sellfarm | farm_id: 1 | FermInfo[farm_id][fOwner]: Maksim_Tushin | PlayerInfo[playerid][pName]: Maksim_Tushin

  5. #4
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Цитата Сообщение от Pawn.Dima Посмотреть сообщение
    Хорошо сейчас скину

    - - - Добавлено - - -

    CMD:sellfarm | farm_id: 1 | FermInfo[farm_id][fOwner]: Maksim_Tushin | PlayerInfo[playerid][pName]: Maksim_Tushin
    Я обновил пост, попробуйте так

  6. Пользователь сказал cпасибо:
    Pawn.Dima (04.05.2020)
  7. #5
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±
    а у 2 игрока ник Samyele_Mangana

    - - - Добавлено - - -

    Помогло.. спасибо

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •