SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian > Релизы/Releases

Reply
 
Thread Tools Display Modes
Old 30/01/2010, 07:56 PM   #31
CrunkBankS
Huge Clucker
 
CrunkBankS's Avatar
 
Join Date: Feb 2009
Location: Novorossiysk
Posts: 471
Reputation: 9
Default Re: [INC] Money Anticheat

ZiGGi, a ResetPlayerMoneyZ есть?
еще проблема
Quote:
warning 209: function "AntiMoneyCheat" should return a value
__________________

Music Producer

CrunkBankS is offline   Reply With Quote
Old 30/01/2010, 08:30 PM   #32
kAND
Little Clucker
 
Join Date: Jan 2010
Posts: 9
Reputation: 0
Default Re: [INC] Money Anticheat

Quote:
Originally Posted by CrunkBankS
ZiGGi, a ResetPlayerMoneyZ есть?
еще проблема
Quote:
warning 209: function "AntiMoneyCheat" should return a value
добавь return 1; перед закрывающей скобкой фкнкции AntiMoneyCheat
насчет ResetPlayerMoneyZ, можной обойтись SetPlayerMoneyZ, но если уж сильно надо, то как-то так:
Code:
stock ResetPlayerMoneyZ(playerid)
{
    PlayerInfo[playerid][pMoney] = 0;
	ResetPlayerMoney(playerid);
	return 1;
}
kAND is offline   Reply With Quote
Old 30/01/2010, 11:40 PM   #33
[Saint]
Gangsta
 
Join Date: Sep 2009
Posts: 769
Reputation: 23
Default Re: [INC] Money Anticheat

ZiGGi, незнаю может я конечно и нуб, но при компиляции вот этого кода:

Code:
#include <a_samp>
#include <a_players>

new PlayerInfo[MAX_PLAYERS][pMoney];

public OnPlayerUpdate(playerid)
{
	AntiMoneyCheat(playerid);
}

stock GivePlayerMoneyZ(playerid, money)
{
	PlayerInfo[playerid][pMoney] += money;
	return SetPlayerMoneyZ(playerid, PlayerInfo[playerid][pMoney]);
}

stock SetPlayerMoneyZ(playerid, money)
{
	PlayerInfo[playerid][pMoney] = money;
	ResetPlayerMoney(playerid);
	return GivePlayerMoney(playerid,money);
}

stock GetPlayerMoneyZ(playerid)
{
	return PlayerInfo[playerid][pMoney];
}

stock AntiMoneyCheat(playerid)
{
	new clientmoney = GetPlayerMoney(playerid);
	if(clientmoney < 0) return SetPlayerMoneyZ(playerid,0);
	if(clientmoney == PlayerInfo[playerid][pMoney]) return 1;
	if(clientmoney < PlayerInfo[playerid][pMoney]) return SetPlayerMoneyZ(playerid,clientmoney);
	if(clientmoney > PlayerInfo[playerid][pMoney]) return SetPlayerMoneyZ(playerid,PlayerInfo[playerid][pMoney]);
	return 1;
}
мне выдаёт вот это:

Code:
(3) : error 017: undefined symbol "pMoney"
(3) : error 009: invalid array size (negative, zero or out of bounds)
(18) : error 017: undefined symbol "pMoney"
(32) : error 017: undefined symbol "pMoney"
(33) : error 017: undefined symbol "pMoney"
(34) : error 017: undefined symbol "pMoney"
(34) : error 017: undefined symbol "pMoney"

Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


7 Errors.
[Saint] is offline   Reply With Quote
Old 31/01/2010, 07:02 AM   #34
kAND
Little Clucker
 
Join Date: Jan 2010
Posts: 9
Reputation: 0
Default Re: [INC] Money Anticheat

[Saint], добавь после инклудов вот это:
enum p_info
{
pMoney
}

а вместо new PlayerInfo[MAX_PLAYERS][pMoney];
это: new PlayerInfo[MAX_PLAYERS][p_info];

должно работать...
kAND is offline   Reply With Quote
Old 01/02/2010, 04:27 AM   #35
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: [INC] Money Anticheat

я ошибся чуть-чуть
ZiGGi is offline   Reply With Quote
Old 01/02/2010, 01:45 PM   #36
[Saint]
Gangsta
 
Join Date: Sep 2009
Posts: 769
Reputation: 23
Default Re: [INC] Money Anticheat

Да норм, всем спасибо большое, вчера тестировал его, работает отлично...
конфликтов с уменьшением игровых денег вроде нету (Бургеры, пиццерии, тюнинг, автоматы с газировкой)

за место ResetPlayerMoney можно использовать SetPlayerMoneyZ(playerid, 0);
[Saint] is offline   Reply With Quote
Old 01/02/2010, 03:41 PM   #37
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: [INC] Money Anticheat

Quote:
Originally Posted by [Saint
]
Да норм, всем спасибо большое, вчера тестировал его, работает отлично...
конфликтов с уменьшением игровых денег вроде нету (Бургеры, пиццерии, тюнинг, автоматы с газировкой)

за место ResetPlayerMoney можно использовать SetPlayerMoneyZ(playerid, 0);
в том то и плюс этого способа, + он не пробиваемый... конечно если у вас есть функции передачи денег и банк, то в них могут быть весёлые дыры, типо /givecash 0 -1000.... ну это так, на всякий случай
ZiGGi is offline   Reply With Quote
Old 04/02/2010, 09:43 PM   #38
[Saint]
Gangsta
 
Join Date: Sep 2009
Posts: 769
Reputation: 23
Default Re: [INC] Money Anticheat

Quote:
Originally Posted by ZiGGi
конечно если у вас есть функции передачи денег и банк, то в них могут быть весёлые дыры, типо /givecash 0 -1000.... ну это так, на всякий случай
можно по подробнее на счёт этого?
с чем это связано?, как этого избежать?
не лучше ли запускать анти чит по таймеру а не в OnPlayerUpdate ?
нужно ли обновлять переменную при коннекте и дисконнекте игрока?

вообщем когда тестировал всё было ок, а вот щас как раз возникла проблема с "Банком" когда игрок снимает деньги со счёта...
например когда я снимаю со счёта $1000 всё норм, а когда $50000 то анти чит их просто уничтожает,
со счёта cнимаются а игроку не даются

[Saint] is offline   Reply With Quote
Old 05/02/2010, 12:06 AM   #39
dimonml
Gangsta
 
dimonml's Avatar
 
Join Date: Oct 2008
Location: Russia, Moscow
Posts: 688
Reputation: 28
Default Re: [INC] Money Anticheat

Нужно учитывать время не передачу сигнала от сервера игроку и обратно.
Чтобы вы поняли, с деньгами может происходить так:
У игрока исходно 100 баксов. Вы скриптом дали ему еще 500 баков. Тут же считали сумму денег у него - вам вернуло 600 баксов. Потом приходит новое обновление от игрока - а там старая сумма денег. Если в этот момент проверить деньги у игрока, вам вернет 100 баксов. Потом информация от сервера доходит до игрока и у него выставляется 600 баксов. В это время павн вам будет выдавать все еще 100 баксов, так как на сервере еще старые данные. Потом от игрока придут обновленные данные и уже тогда сервер станет возвращать вам 600 баксов у игрока.

Безусловно, все описанное тут может произойти очень быстро и вы не получите промежуточное значение. Но такие ситуации в реальных условиях случаются часто. Еще, если игрок в паузе был и ему давали деньги, то по выходу из паузы там могут быть и все промежуточные варианты. + Еще необходимо учитывать, что игрок в этот момент может сам что-то делать с деньгами (например, пить газировку).

Надеюсь это может кому то помочь в понимании проблемы денег в сампе
__________________
dimonml is offline   Reply With Quote
Old 06/02/2010, 11:57 AM   #40
ZiGGi
Banned
 
Join Date: Sep 2008
Location: Russia
Posts: 1,659
Reputation: 356
Default Re: [INC] Money Anticheat

Quote:
Originally Posted by [Saint
]
Quote:
Originally Posted by ZiGGi
конечно если у вас есть функции передачи денег и банк, то в них могут быть весёлые дыры, типо /givecash 0 -1000.... ну это так, на всякий случай
можно по подробнее на счёт этого?
с чем это связано?, как этого избежать?
не лучше ли запускать анти чит по таймеру а не в OnPlayerUpdate ?
нужно ли обновлять переменную при коннекте и дисконнекте игрока?

вообщем когда тестировал всё было ок, а вот щас как раз возникла проблема с "Банком" когда игрок снимает деньги со счёта...
например когда я снимаю со счёта $1000 всё норм, а когда $50000 то анти чит их просто уничтожает,
со счёта cнимаются а игроку не даются
кидай код снятия денег
ZiGGi is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Include] Server-sided Money - Stop money hackers! NEW RELEASE(v6) x-cutter Includes 107 30/08/2011 08:56 PM
[FilterScript] [FS] Money Cheat Detector || Stop money cheaters! Luka P. Filterscripts 22 05/09/2010 01:22 AM
[Include] [INC] Money Protect v1.1 (Anti Money Hack) ashiuashiu Includes 13 15/03/2010 03:37 AM
AntiCheat problem (money) Fen1x Help Archive 2 19/02/2009 04:34 PM


All times are GMT. The time now is 11:38 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.