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

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

    Проблема с деньгами

    Странная конечно проблема.

    Вычитаешь у игрока деньги, а они наоборот прибавляются.
    Вот убираем деньги - User[playerid][Cash] -= 250. Но в итоге они в + идут.

    В секундном таймере есть Античит на деньги.

    Код:
    foreach (new i : Player)
    	{
    		AntiMoney();
    А вот и сам паблик,

    Код:
    public AntiMoney()
    {
    	foreach (new i : Player)
    	{
    		if(User[i][Cash] != GetPlayerMoney(i)) ResetPlayerMoney(i), GivePlayerMoney(i, User[i][Cash]);
    	}
    	return;
    }
    В чем может быть проблема?

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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    PHP код:
        new 350;//цена за коробку конфет к примеру
        
    GivePlayerMoney(playerid, -i);
        
    pInfo[playerid][pCash] = EOS;//очищаем массив
        
    pInfo[playerid][pCash] = GetPlayerMoney(playerid);//загружаем деньги в массив 
    Как-то так.
    Последний раз редактировалось BadPawn; 06.03.2016 в 13:57.

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Убери вызов AntiMoney(); из таймера.

    Цитата Сообщение от BadPawn Посмотреть сообщение
    PHP код:
        new 350;//цена за коробку конфет к примеру
        
    GivePlayerMoney(playerid, -i);
        
    pInfo[playerid][pCash] = EOS;//очищаем массив
        
    pInfo[playerid][pCash] = GetPlayerMoney(playerid);//загружаем деньги в массив 
    Как-то так.
    Нет. Использование GivePlayerMoney с отрицательным значением нормально не работает. "Очищать массив" здесь не нужно. Записывать деньги напрямую от игрока - это приглашение читерам.

  4. Пользователь сказал cпасибо:
    BadPawn (06.03.2016)
  5. #4
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Пуух)
    PHP код:
    //Засунь меня в таймер^^
    new pMoney GetPlayerMoney(playerid);
    if(
    pInfo[playerid][pCash] < pMoney)
    {
        
    GivePlayerMoney(playeridpInfo[playerid][pCash]);
    }
    else 
    pInfo[playerid][pCash] = pMoney
    PHP код:
    //Теперь выдавай деньги так
    stock GiveMoney(playeridamount)
    {
        
    pInfo[playerid][pCash] += amount;
        
    GivePlayerMoney(playeridamount);

    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Для чего эти бессмысленные проверки и обновления в таймере? Разве от вас убудет, если читер сможет на своей стороне увеличить число денег? Да пусть хоть бесконечными их сделает, вообще плевать должно быть. Весь "античит" пишется в 3 строки, не считая перехвата функции.
    PHP код:
    stock ac_GivePlayerMoney(playeridmoney)
    {
        
    pInfo[playerid][pCash] += money;
        
    ResetPlayerMoney(playerid);
        return 
    GivePlayerMoney(playeridpInfo[playerid][pCash]);
    }
    #if defined _ALS_GivePlayerMoney
        #undef    GivePlayerMoney
    #else
        #define    _ALS_GivePlayerMoney
    #endif
    #define    GivePlayerMoney        ac_GivePlayerMoney 
    И не надо никаких таймеров или что-то ещё. Совершил игрок операцию с деньгами - обновили ему юзербар с деньгами, установив настоящее значение. А до этого момента пусть хоть что со своими деньгами делает
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    vovandolg (06.03.2016)
 

 

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

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

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

Ваши права

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