Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 3 из 7 ПерваяПервая 1 2 3 4 5 ... ПоследняяПоследняя
Показано с 21 по 30 из 66
  1. #21
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Может из за того что тестирую на 0.3е
    Срабатывает один раз, но разница спавна от кол-ва нажатия есть, проверь.
    Возможно. Я на 0.3.7 проверял и разницы от того, сколько раз нажал F4, нет.


    Цитата Сообщение от vovandolg Посмотреть сообщение
    Вот ещё попробуй умереть в машине, там непонятки с этим, камера не садиться или не понятно что..
    А вот за это спасибо.
    В OnPlayerStateChange вставь
    PHP код:
    if((oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) && newstate == PLAYER_STATE_WASTEDOnPlayerExitVehicle(playeridGetPlayerVehicleID(playerid)); 
    Должно помочь
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  2. Пользователь сказал cпасибо:
    vovandolg (25.02.2016)
  3. #22
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    У меня такое ощущение что паблик вызывается когда мы выходим,
    но когда мы не выходим и вызываем паблик для выхода это как то не правильно,
    вообщем помог вариант спавна из инклуда fixes.inc от ziggi,
    там есть такая фитча когда игрок в машине спавнится начинает такая же шелуха происходит
    я этот код вместо вызова паблика сунул, выглядит чуток не очень что он из машины вышвырнут тпшкой,
    но зато не будет больше бага!
    Вот в общем что должно быть:
    PHP код:
    if((oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) && newstate == PLAYER_STATE_WASTED)
    {
        new 
    vid GetPlayerVehicleID(playerid);
        if(
    vid)
        {
            new 
    Float:xFloat:yFloat:z;
            
    GetVehiclePos(vidxyz),
            
    SetPlayerPos(playeridxyz);
        }

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

    Так же, если кому не лень, можете попробовать этот же код использовать с InterpolateCameraPos и отписаться по поводу того, как всё будет работать
    Проверил полёт нормальный)
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  4. Пользователь сказал cпасибо:
    DeimoS (26.02.2016)
  5. #23
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    У меня такое ощущение что паблик вызывается когда мы выходим,
    но когда мы не выходим и вызываем паблик для выхода это как то не правильно,
    Эмм, посмотри макросы. Он вызывается когда игрок умирает или переходит к выбору скина, при этом находится в автомобиле.
    У тебя этот вариант не работает?
    UPD: И правда. Видимо, я что-то упустил :с Сейчас найду недочёт

    UPD2: Опытным путём было выяснено, что если поиграться с таймерами на спавн (не спавнить так быстро), сей баг исчезает. Но этот костыль довольно хрупок и может вызвать сторонние баги в виде спавна под текстурами во время работы таймера на респавн и т.п. (я не особо разбирался с чем это связано. Просто быстро проверил идею по поводу того, что баг происходит из-за быстрого респавна). Ближе к вечеру опять попробую посидеть над системой.
    Последний раз редактировалось DeimoS; 25.02.2016 в 13:06.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. #24
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Опять же, за идею спасибо Alexey_Nikiforov. Баг со смертью в авто с F4 фиксится вот так:

    PHP код:
    public OnPlayerRequestClass(playeridclassid)
    {
        
    SetSpawnInfo(playerid11100.00.00.00.0243300000);
        if(
    GetPlayerVehicleID(playerid)) SetPlayerHealth(playerid0.0);// Вот фикс
        
    SetPVarInt(playerid"OnPlayerRequestClassFix"1);
        
    SpawnPlayer(playerid);
        return 
    1;

    Обновил предыдущие посты
    Последний раз редактировалось DeimoS; 26.02.2016 в 18:45.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #25
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    if(IsPlayerInAnyVehicle(playerid)) SetPlayerHealth(playerid0.0);// Вот фикс 
    С виду так должно решить проблему, но нет на 0.3е это не помогает..
    В общем останусь на своём предлоге фикса спавна от Y_Less

    UPD: Паблик спавна вызывается когда игрок спавнится,
    а баг начинается перед спавном, вот и надо применять до спавна,
    то есть во время смерти игрока выталиквать из авто.
    Последний раз редактировалось vovandolg; 26.02.2016 в 18:58.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  8. Пользователь сказал cпасибо:
    DeimoS (26.02.2016)
  9. #26
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    С виду так должно решить проблему, но нет на 0.3е это не помогает..
    В общем останусь на своём предлоге фикса спавна от Y_Less

    UPD: Паблик спавна вызывается когда игрок спавнится,
    а баг начинается перед спавном, вот и надо применять до спавна,
    то есть во время смерти игрока выталиквать из авто.
    Я обновил предыдущий пост, ибо IsPlayerInAnyVehicle не всегда срабатывала. C GetPlayerVehicleID дела, вроде, обстоят лучше, хоть и стоит протестировать лучше
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. #27
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я обновил предыдущий пост, ибо IsPlayerInAnyVehicle не всегда срабатывала. C GetPlayerVehicleID дела, вроде, обстоят лучше, хоть и стоит протестировать лучше
    Тут уже лучше, но всё равно один раз сигара проскочила, и смертей 1/3 бывала когда зареспался...
    уже 50 на 50 что юзать не знаю)
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  11. Пользователь сказал cпасибо:
    DeimoS (26.02.2016)
  12. #28
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Тут уже лучше, но всё равно один раз сигара проскочила, и смертей 1/3 бывала когда зареспался...
    уже 50 на 50 что юзать не знаю)
    Я уже даже не знаю стоит ли продолжать этим заниматься... Одним костылём исправляешь один баг и на его месте появляется 10 других =(
    А первый вариант не пробовал? Там вообще проблем с автомобилем нет
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  13. #29
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Вот такой код я юзать буду в общем, в первый раз помирает и очень редко что то там видно в руке,
    но это с нажатием F4 и один раз и то я на втором акке не заметил такого, значит уже не страшно.
    Минус только в том что из авто сразу спавнить будет, не будет не каких помиралок полежалок у кара.
    Ну что поехали..
      Открыть/закрыть
    PHP код:
    #include <a_samp>
    //#include <fixes>
        
    main()
    {
        print(
    "\n----------------------------------");
        print(
    " Blank Gamemode by your name here");
        print(
    "----------------------------------\n");
    }

    public 
    OnGameModeInit()
    {
        
    // Don't use these lines if it's a filterscript
        
    SetGameModeText("Blank Script");
        
    AddPlayerClass(01958.37831343.157215.3746269.1425000000);
        
    AddStaticVehicle(560,1958.3876,2163.6729,10.5250,259.9205,9,39); // car
        
    return 1;
    }

    public 
    OnGameModeExit()
    {
        return 
    1;
    }

    public 
    OnPlayerConnect(playerid)
    {
        
    TogglePlayerSpectating(playeridtrue);
        
    SetTimerEx("SetPlayerCameraPosForReqClass"1000"i"playerid);
        return 
    1;
    }

    forward SetPlayerCameraPosForReqClass(playerid);
    public 
    SetPlayerCameraPosForReqClass(playerid)
    {
        
    SetPlayerCameraPos(playerid2026.77041343.639410.8203);
        
    SetPlayerCameraLookAt(playerid2027.77041343.639410.8203);
        
    ShowPlayerDialog(playerid1111DIALOG_STYLE_MSGBOX"Привет. Как дела?""Познать истину?""Да""Нет (Да)");
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
        
    SetSpawnInfo(playerid11100.00.00.00.0243300000);
        
    SetPVarInt(playerid"OnPlayerRequestClassFix"1);
        
    FIXES_SpawnPlayer(playerid);//Вот с этого места началась бодяга тут мы с ней и покончим
        
    return 1;
    }

    forward DoublePlayerSpawn(playerid);
    public 
    DoublePlayerSpawn(playeridSpawnPlayer(playerid);

    public 
    OnPlayerSpawn(playerid)
    {
        if(
    GetPVarInt(playerid"OnPlayerRequestClassFix"))
        {
            
    SetPlayerPos(playerid0.00.00.0);
            
    SetTimerEx("DoublePlayerSpawn"500"i"playerid);
            
    DeletePVar(playerid"OnPlayerRequestClassFix");
            return 
    1;
        }
        
    SetPlayerPos(playerid1957.2458,2169.8950,10.8203);
        return 
    1;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[])
    {
        if (!
    strcmp("/kill"cmdtexttrue))
        {
            
    SetPlayerHealth(playerid'\0');
            
    SendClientMessage(playerid, -1"Сдох");
            return 
    1;
        }
        else if (!
    strcmp("/spawn"cmdtexttrue))
        {
            
    SpawnPlayer(playerid);
            
    SendClientMessage(playerid, -1"Ушуршал");
            return 
    1;
        }
        else if (!
    strcmp("/spawnkill"cmdtexttrue))
        {
            
    SpawnPlayer(playerid);
            
    SetPlayerHealth(playerid'\0');
            
    SendClientMessage(playerid, -1"Ушуршал и сдох");
            return 
    1;
        }
        else if (!
    strcmp("/gmx"cmdtexttrue))
        {
            
    SendRconCommand("gmx");
            
    SendClientMessage(playerid, -1"Рестарто");
            return 
    1;
        }
        return 
    0;
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    dialogid == 1111)
        {
            
    TogglePlayerSpectating(playeridfalse);
        }
        return 
    1;
    }

    //Взял из fixes.inc спасибо "ziggi" за то что сделал такой прекрасный сборник фиксов,
    //которые не всегда знаешь где искать
    //и ещё одно спасибо тому кто изобрёл этот фикс "Y_Less"
    stock FIXES_SpawnPlayer(playerid)
    {
        new 
    vid GetPlayerVehicleID(playerid);
        if(
    vid)
        {
            new 
    Float:xFloat:yFloat:z;
            
    GetVehiclePos(vidxyz),
            
    SetPlayerPos(playeridxyz);
        }
        return 
    SpawnPlayer(playerid);



    Смерти тестировал по разному, разбивал авто,
    стрелял со всего оружия по другому игроку,
    в общем фулл садо-мазо с F4 и без))
    Последний раз редактировалось vovandolg; 26.02.2016 в 21:37.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  14. Пользователь сказал cпасибо:
    DeimoS (26.02.2016)
  15. #30
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Вот такой код я юзать буду в общем, в первый раз помирает и очень редко что то там видно в руке,
    но это с нажатием F4 и один раз и то я на втором акке не заметил такого, значит уже не страшно.
    Минус только в том что из авто сразу спавнить будет, не будет не каких помиралок полежалок у кара.
    Ну что поехали..
      Открыть/закрыть
    PHP код:
    #include <a_samp>
    //#include <fixes>
        
    main()
    {
        print(
    "\n----------------------------------");
        print(
    " Blank Gamemode by your name here");
        print(
    "----------------------------------\n");
    }

    public 
    OnGameModeInit()
    {
        
    // Don't use these lines if it's a filterscript
        
    SetGameModeText("Blank Script");
        
    AddPlayerClass(01958.37831343.157215.3746269.1425000000);
        
    AddStaticVehicle(560,1958.3876,2163.6729,10.5250,259.9205,9,39); // car
        
    return 1;
    }

    public 
    OnGameModeExit()
    {
        return 
    1;
    }

    public 
    OnPlayerConnect(playerid)
    {
        
    TogglePlayerSpectating(playeridtrue);
        
    SetTimerEx("SetPlayerCameraPosForReqClass"1000"i"playerid);
        return 
    1;
    }

    forward SetPlayerCameraPosForReqClass(playerid);
    public 
    SetPlayerCameraPosForReqClass(playerid)
    {
        
    SetPlayerCameraPos(playerid2026.77041343.639410.8203);
        
    SetPlayerCameraLookAt(playerid2027.77041343.639410.8203);
        
    ShowPlayerDialog(playerid1111DIALOG_STYLE_MSGBOX"Привет. Как дела?""Познать истину?""Да""Нет (Да)");
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
        
    SetSpawnInfo(playerid11100.00.00.00.0243300000);
        
    SetPVarInt(playerid"OnPlayerRequestClassFix"1);
        
    FIXES_SpawnPlayer(playerid);//Вот с этого места началась бодяга тут мы с ней и покончим
        
    return 1;
    }

    forward DoublePlayerSpawn(playerid);
    public 
    DoublePlayerSpawn(playeridSpawnPlayer(playerid);

    public 
    OnPlayerSpawn(playerid)
    {
        if(
    GetPVarInt(playerid"OnPlayerRequestClassFix"))
        {
            
    SetPlayerPos(playerid0.00.00.0);
            
    SetTimerEx("DoublePlayerSpawn"500"i"playerid);
            
    DeletePVar(playerid"OnPlayerRequestClassFix");
            return 
    1;
        }
        
    SetPlayerPos(playerid1957.2458,2169.8950,10.8203);
        return 
    1;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[])
    {
        if (!
    strcmp("/kill"cmdtexttrue))
        {
            
    SetPlayerHealth(playerid'\0');
            
    SendClientMessage(playerid, -1"Сдох");
            return 
    1;
        }
        else if (!
    strcmp("/spawn"cmdtexttrue))
        {
            
    SpawnPlayer(playerid);
            
    SendClientMessage(playerid, -1"Ушуршал");
            return 
    1;
        }
        else if (!
    strcmp("/spawnkill"cmdtexttrue))
        {
            
    SpawnPlayer(playerid);
            
    SetPlayerHealth(playerid'\0');
            
    SendClientMessage(playerid, -1"Ушуршал и сдох");
            return 
    1;
        }
        else if (!
    strcmp("/gmx"cmdtexttrue))
        {
            
    SendRconCommand("gmx");
            
    SendClientMessage(playerid, -1"Рестарто");
            return 
    1;
        }
        return 
    0;
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    dialogid == 1111)
        {
            
    TogglePlayerSpectating(playeridfalse);
        }
        return 
    1;
    }

    //Взял из fixes.inc спасибо "ziggi" за то что сделал такой прекрасный сборник фиксов,
    //которые не всегда знаешь где искать
    //и ещё одно спасибо тому кто изобрёл этот фикс "Y_Less"
    stock FIXES_SpawnPlayer(playerid)
    {
        new 
    vid GetPlayerVehicleID(playerid);
        if(
    vid)
        {
            new 
    Float:xFloat:yFloat:z;
            
    GetVehiclePos(vidxyz),
            
    SetPlayerPos(playeridxyz);
        }
        return 
    SpawnPlayer(playerid);



    Смерти тестировал по разному, разбивал авто,
    стрелял со всего оружия по другому игроку,
    в общем фулл садо-мазо с F4 и без))
    Можешь то же самое проверить на первом варианте реализации? Уж очень интересно как он себя поведёт.

    Я, в идеале, хочу найти минимальное время, на которое требуется помещать игрока в режим слежки для того, чтоб бутылка не появлялась (скорее всего формула будет выглядеть, примерно, так: "пинг игрока+число", хотя, в то же время, я сомневаюсь, что пинг тут играет какую-то роль) + это всё можно обыграть каким-нибудь текстдравом или же перемещать камеру на убийцу/труп, например (хотя тогда надо будет увеличить время нахождения в режиме слежки...).

    В общем, первый вариант, как по мне, удачнее, ибо с ним можно создать больше всего интересного в промежутке между смертью и спавном (и, собственно, контролировать время, после которого игрока зареспит) + в нём нет бага с автомобилем и F4 (ну, по крайней мере, если убивать себя серверной командой/взрывом авто)

    P.S. Спасибо за помощь
    Последний раз редактировалось DeimoS; 26.02.2016 в 22:55.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 3 из 7 ПерваяПервая 1 2 3 4 5 ... ПоследняяПоследняя

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

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

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

Ваши права

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