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

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    154
    Репутация:
    1 ±

    удаление PlayerText

    Здравствуйте столкнулся с проблемой с PlayerText когда капт окончен текстдрав удаляется только у меня а у других игроков он не удаляется как такое возможно может я проверку не правильно сделал или что не понимаю...
    PHP код:
    forward CaptureTime();
    public 
    CaptureTime()
    {
        for(new 
    gzid 0gzid MAX_GANGZONEgzid++)
        {
            for(new 
    0GetPlayerPoolSize(); <= ji++)
            {
                if(
    GangZoneCapt[gzid] == 1)
                {
                    static const 
    tdcapta[] = "~y~kills~n~~n~~g~%s:~w~ %i~n~~n~~r~%s:~w~ %i~n~~g~Time: %d";
                    static 
    string[sizeof(tdcapta) + (-6) + (-30) + (-30)];
                    
    format(stringsizeof(string), tdcaptaGetGangName(GangZone[gzid][gZahvat]), TotalSkill[GangZone[gzid][gZahvat]],
                    
    GetGangName(GangZone[gzid][gZachita]), TotalSkill[GangZone[gzid][gZachita]], GangZone[gzid][gTime]);
                    
    PlayerTextDrawSetString(iGangCaptLabel[i], string);
                    
    PlayerTextDrawShow(iGangCaptLabel[i]);
                }
                
    GangZone[gzid][gTime]--;
                if(
    GangZone[gzid][gTime] == 300)
                {
                    
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"До захвата терреторию осталось 5 минут!");
                    
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"До захвата терреторию осталось 5 минут!");
                }
                if(
    GangZone[gzid][gTime] == 120)
                {
                    
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"До захвата терреторию осталось 2 минуты!");
                    
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"До захвата терреторию осталось 2 минуты!");
                }
                if(
    GangZone[gzid][gTime] == 0)
                {
                    if(
    TotalSkill[GangZone[gzid][gZachita]] == TotalSkill[GangZone[gzid][gZahvat]])
                    {
                        
    GangZone[gzid][gTime] = 30;
                        
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"Ничья... добавляю 30 секунд!");
                        
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"Ничья... добавляю 30 секунд");
                        return 
    1;
                    }
                    if(
    TotalSkill[GangZone[gzid][gZachita]] > TotalSkill[GangZone[gzid][gZahvat]])//Если у защиты больше убийств чем у нападавщих то...
                    
    {
                        
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"Вам удалось защитить свою территорию!");
                        
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"Вам не удалось захватить новую территорию!");
                        
    SaveGZ(GangZone[gzid][gZachita]);
                    }
                    else
                    {
                        
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"Вам удалось захватить новую территорию!");
                        
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"Вам не удалось защитить свою территорию!");
                        
    GangZone[gzid][gZachita] = GangZone[gzid][gZahvat];
                        
    SaveGZ(GangZone[gzid][gZahvat]);
                    }
                    
    GangZone[gzid][gTime] = 0;
                    
    GangZoneCapt[gzid] = 0;
                    
    GangZoneStopFlashForAll(GangZone[gzid][gID]);
                    
    GangZoneHideForAll(GangZone[gzid][gID]);
                    
    GangZoneShowForAll(GangZone[gzid][gID], GetGangZoneColor(gzid));
                    if(
    PlayerInfo[i][pMember] == GangZone[gzid][gZahvat] || PlayerInfo[i][pMember] == GangZone[gzid][gZachita])
                    {
                        
    PlayerTextDrawHide(iGangCaptLabel[i]);
                    }
                }
            }
        }
        return 
    1;

    получается вот когда война идет например Ballas / Vagos у меня Баллас скрывается у Vagos нет :(
    Последний раз редактировалось Dima_Tushin; 08.10.2019 в 01:52.
    Разрабатываю свой собственный мод State RolePlay Mysql R38

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    В вашем случае проблема со скрытием ТД - только вершина айсберга. По-хорошему, нужно едва ли не всю функцию CaptureTime переделывать, т.к. логика захвата территорий (которая по идее должна выполняться один раз) почему-то находится внутри цикла по всем игрокам, со всеми вытекающими (например, флуд из SendFamilyMessage() - впрочем, это можно и не заметить, если тестировать только одним игроком).
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. #3
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от Dima_Tushin Посмотреть сообщение
    PHP код:
    forward CaptureTime();
    public 
    CaptureTime()
    {
        for(new 
    gzid 0gzid MAX_GANGZONEgzid++)
        {
            for(new 
    0GetPlayerPoolSize(); <= ji++)
            {
                if(
    GangZoneCapt[gzid] == 1)
                {
                    static const 
    tdcapta[] = "~y~kills~n~~n~~g~%s:~w~ %i~n~~n~~r~%s:~w~ %i~n~~g~Time: %d";
                    static 
    string[sizeof(tdcapta) + (-6) + (-30) + (-30)];
                    
    format(stringsizeof(string), tdcaptaGetGangName(GangZone[gzid][gZahvat]), TotalSkill[GangZone[gzid][gZahvat]],
                    
    GetGangName(GangZone[gzid][gZachita]), TotalSkill[GangZone[gzid][gZachita]], GangZone[gzid][gTime]);
                    
    PlayerTextDrawSetString(iGangCaptLabel[i], string);
                    
    PlayerTextDrawShow(iGangCaptLabel[i]);
                }
                
    GangZone[gzid][gTime]--;
                if(
    GangZone[gzid][gTime] == 300)
                {
                    
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"До захвата терреторию осталось 5 минут!");
                    
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"До захвата терреторию осталось 5 минут!");
                }
                if(
    GangZone[gzid][gTime] == 120)
                {
                    
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"До захвата терреторию осталось 2 минуты!");
                    
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"До захвата терреторию осталось 2 минуты!");
                }
                if(
    GangZone[gzid][gTime] == 0)
                {
                    if(
    TotalSkill[GangZone[gzid][gZachita]] == TotalSkill[GangZone[gzid][gZahvat]])
                    {
                        
    GangZone[gzid][gTime] = 30;
                        
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"Ничья... добавляю 30 секунд!");
                        
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"Ничья... добавляю 30 секунд");
                        return 
    1;
                    }
                    if(
    TotalSkill[GangZone[gzid][gZachita]] > TotalSkill[GangZone[gzid][gZahvat]])//Если у защиты больше убийств чем у нападавщих то...
                    
    {
                        
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"Вам удалось защитить свою территорию!");
                        
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"Вам не удалось захватить новую территорию!");
                        
    SaveGZ(GangZone[gzid][gZachita]);
                    }
                    else
                    {
                        
    SendFamilyMessage(GangZone[gzid][gZahvat], COLOR_GREEN"Вам удалось захватить новую территорию!");
                        
    SendFamilyMessage(GangZone[gzid][gZachita], COLOR_GREEN"Вам не удалось защитить свою территорию!");
                        
    GangZone[gzid][gZachita] = GangZone[gzid][gZahvat];
                        
    SaveGZ(GangZone[gzid][gZahvat]);
                    }
                    
    GangZone[gzid][gTime] = 0;
                    
    GangZoneCapt[gzid] = 0;
                    
    GangZoneStopFlashForAll(GangZone[gzid][gID]);
                    
    GangZoneHideForAll(GangZone[gzid][gID]);
                    
    GangZoneShowForAll(GangZone[gzid][gID], GetGangZoneColor(gzid));
                    if(
    PlayerInfo[i][pMember] == GangZone[gzid][gZahvat] || PlayerInfo[i][pMember] == GangZone[gzid][gZachita])
                    {
                        
    PlayerTextDrawHide(iGangCaptLabel[i]);
                    }
                }
            }
        }
        return 
    1;

    Апхахпхапхахпа "До захвата терреторию осталось 5 минут!") Вообще вот: тема, в которой черным по белому (или белым по черному в Dark стиле сайта) написано, что для названий переменных/констант/массивов и т.п. не стоит использовать транслит (tdcapta, gZahvat, gZachita), а если проблемы с английским - с пониманием ЯП будут большие проблемы.
    Цитирую:
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Не стоит писать названия переменных, констант и функций на транслите. Это должно быть очевидно, как убого выглядит код, написанный на транслите или на ломанном английском.
    Если же у вас проблемы с иностранными языками - учите английский. Либо завязывайте со скриптингом, потому что знание английского - неотъемлимая часть в обучении программированию.
    Последний раз редактировалось SteveStage; 01.12.2019 в 01:56.

 

 

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

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

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

Ваши права

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