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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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,035
    Репутация:
    702 ±
    Убери вызов 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,360
    Репутация:
    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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Для чего эти бессмысленные проверки и обновления в таймере? Разве от вас убудет, если читер сможет на своей стороне увеличить число денег? Да пусть хоть бесконечными их сделает, вообще плевать должно быть. Весь "античит" пишется в 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 
    И не надо никаких таймеров или что-то ещё. Совершил игрок операцию с деньгами - обновили ему юзербар с деньгами, установив настоящее значение. А до этого момента пусть хоть что со своими деньгами делает
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

 

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

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

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

Ваши права

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