Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 7 из 7
  1. #1
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    301
    Репутация:
    33 ±

    Как окончательно забрать оружие у игрока

    Столкнулся с такой проблемой. Не получается окончательно забрать оружие у игрока.
    Сохранение:
    PHP код:
    for (new 013i++)
    {
        
    GetPlayerWeaponData(playeridipInfo[playerid][pWeapons][i], pInfo[playerid][pAmmo][i]);
        if (
    pInfo[playerid][pWeapons][i] != && pInfo[playerid][pAmmo][i] == 0)
            
    pInfo[playerid][pWeapons][i] = 0;    

    Но даже если это выполнится, положительный результат на отсутствие оружия будет после смерти или повторного входа на сервер.

    Сама проверка в инклуде:
    PHP код:
    new
        
    mn_player_weapons[7],
        
    mn_player_ammo[7];
    for (new 
    27i++)
    {
        
    GetPlayerWeaponData(playeridimn_player_weapons[i], mn_player_ammo[i]);
        if (
    mn_player_weapons[i] == mn_weaponid{playerid}) 
            return 
    SendClientMessage(playerid0xAA3333AA, !"У Вас уже есть это оружие");

    И если выполнить команду, то оружие появится на долю секунды.
    PHP код:
    CMD:d(playerid)
    {
        for (new 
    013i++)
        {
            
    GetPlayerWeaponData(playeridipInfo[playerid][pWeapons][i], pInfo[playerid][pAmmo][i]);
            
    GivePlayerWeapon(playeridpInfo[playerid][pWeapons][i], pInfo[playerid][pAmmo][i]);
        }
        return 
    1;

    С ResetPlayerWeapons(playerid) условие, что у игрока нет оружия, положительное, но это не выход из ситуации.

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,360
    Репутация:
    113 ±
    Может патронташ тоже стоит обнулять?

    PHP код:
    if (pInfo[playerid][pWeapons][i] > || pInfo[playerid][pAmmo][i] > 0)
            
    pInfo[playerid][pWeapons][i] = 0pInfo[playerid][pAmmo][i] = 0
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    301
    Репутация:
    33 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Может патронташ тоже стоит обнулять?

    PHP код:
    if (pInfo[playerid][pWeapons][i] > || pInfo[playerid][pAmmo][i] > 0)
            
    pInfo[playerid][pWeapons][i] = 0pInfo[playerid][pAmmo][i] = 0
    Не до конца понял. Мне нужно забрать 1 оружие, например AK-47.

    Когда я выдаю оружие, AK-47, и патроны, все записывается в бд. Но когда заканчиваются патроны, это оружие не приравнивается к 0. Поэтому такое условие:
    PHP код:
    if (pInfo[playerid][pWeapons][i] != && pInfo[playerid][pAmmo][i] == 0)
        
    pInfo[playerid][pWeapons][i] = 0
    Но почему когда у меня нет этого оружия, а GetPlayerWeaponData его находит я не понимаю.
    Последний раз редактировалось m1n1vv; 19.06.2016 в 01:21.

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,360
    Репутация:
    113 ±
    Да так и есть) поэтому следить за патронами надо
    Ибо как кроме сброса не чем ты там не аннулируешь.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    301
    Репутация:
    33 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Да так и есть) поэтому следить за патронами надо
    Ибо как кроме сброса не чем ты там не аннулируешь.
    Ну я же и онулирую через эту функцию. Если ид оружия не равен 0, а патроны на нуле, то тот ид приравнять к 0.
    PHP код:
    if (pInfo[playerid][pWeapons][i] != && pInfo[playerid][pAmmo][i] == 0)
        
    pInfo[playerid][pWeapons][i] = 0
    Последний раз редактировалось m1n1vv; 19.06.2016 в 02:22.

  6. #6
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,035
    Репутация:
    702 ±
    Можно просто изменить проверку, добавив в условие патроны:
    PHP код:
    new
        
    mn_player_weapons[7],
        
    mn_player_ammo[7];
    for (new 
    27i++)
    {
        
    GetPlayerWeaponData(playeridimn_player_weapons[i], mn_player_ammo[i]);
        if (
    mn_player_weapons[i] == mn_weaponid{playerid} && mn_player_ammo[i] != 0
            return 
    SendClientMessage(playerid0xAA3333AA, !"У Вас уже есть это оружие");

    или после сохранения производить эти действия, но это не оптимально:
    PHP код:
    ResetPlayerWeapons(playerid);

    for (new 
    013i++) {
        
    GivePlayerWeapon(playeridpInfo[playerid][pWeapons][i], pInfo[playerid][pAmmo][i]);


  7. Пользователь сказал cпасибо:
    m1n1vv (19.06.2016)
  8. #7
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    301
    Репутация:
    33 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Можно просто изменить проверку, добавив в условие патроны:
    PHP код:
    new
        
    mn_player_weapons[7],
        
    mn_player_ammo[7];
    for (new 
    27i++)
    {
        
    GetPlayerWeaponData(playeridimn_player_weapons[i], mn_player_ammo[i]);
        if (
    mn_player_weapons[i] == mn_weaponid{playerid} && mn_player_ammo[i] != 0
            return 
    SendClientMessage(playerid0xAA3333AA, !"У Вас уже есть это оружие");

    или после сохранения производить эти действия, но это не оптимально:
    PHP код:
    ResetPlayerWeapons(playerid);

    for (new 
    013i++) {
        
    GivePlayerWeapon(playeridpInfo[playerid][pWeapons][i], pInfo[playerid][pAmmo][i]);

    Первый вариант решил проблему. Спасибо.

 

 

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

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

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

Ваши права

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