-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathantiCheat.c
129 lines (127 loc) · 2.73 KB
/
antiCheat.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include "antiCheat.h"
int validMenu(ESTADO e){
return e.screen!=6;
}
int validNewLevel(ESTADO e){
POSICAO cima;
POSICAO direita;
POSICAO baixo;
POSICAO esquerda;
cima.x =e.jog.x; cima.y =e.jog.y-1;
direita.x =e.jog.x+1; direita.y =e.jog.y;
baixo.x =e.jog.x; baixo.y =e.jog.y+1;
esquerda.x =e.jog.x-1; esquerda.y =e.jog.y;
return e.screen==6
|| (e.screen==5 && e.hp>0
&& (com_saida(e,cima)
|| com_saida(e,direita)
|| com_saida(e,baixo)
|| com_saida(e,esquerda)));
}
int validMove(ESTADO e){
POSICAO tmp = calcularNovaPosicao(e.jog, e.action);
return e.screen==5 && e.hp>0
&& !outOfBounds(tmp)
&& !pos_ocupada(e,tmp)
&& !com_saida(e,tmp);
}
int validLesserTeleport(ESTADO e){
return e.screen==5 && e.hp>0
&& CAN_USE_LESSER_TELEPORT;
}
int validAtack(ESTADO e){
POSICAO tmp;
if(e.action>20){
tmp = calculaRangedAtackPos(e.jog,e.action);
}else{
tmp = calcularNovaPosicao(e.jog, e.action-10);
}
return e.screen==5 && e.hp>0
&& com_monstros(e,tmp);
}
int validItemPickup(ESTADO e){
POSICAO p = calcularNovaPosicao(e.jog,e.action-80);
return e.screen==5 && e.hp>0
&& !com_monstros(e,p)
&& com_droppedItem(e.droppedItems,p);
}
int validItemUse(ESTADO e){
return e.bag.inv[e.action-40]!=0
&& ((e.screen==5 && e.hp>0)
|| (e.screen==6
&& e.isDeletingItems));
}
int validOpenChest(ESTADO e){
POSICAO p = calcularNovaPosicao(e.jog,e.action-90);
return e.screen==5 && e.hp>0
&& !com_monstros(e,p)
&& com_chest(e,p);
}
int validBossAtack(ESTADO e){
return e.screen==5
&& e.hp>0
&& e.isInBossBattle;
}
int isInMenu(ESTADO e){
return e.screen==1;
}
int isInCharSelect(ESTADO e){
return e.screen==2;
}
int isInShop(ESTADO e){
return e.screen==6;
}
int validAction(ESTADO e){
if(ACT_GOTO_MENU){/* main menu */
return validMenu(e);
}
if(ACT_EXIT){/* saida */
return validNewLevel(e);
}
if(ACT_TOGGLE_INGAME_HELP){
return e.screen==5 && e.hp>0;
}
if(ASKING_FOR_INGAME_HELP){
return e.isInIngameHelp;
}
if(ACT_MOVE){/* mover jogador */
return validMove(e);
}
if(ACT_LESSER_TELEPORT){
return validLesserTeleport(e);
}
if(ACT_ATACK){/* ataque normal */
return validAtack(e);
}
if(ACT_PICK_UP_ITEM){
return validItemPickup(e);
}
if(ACT_USE_ITEM){
return validItemUse(e);
}
if(ACT_TOGGLE_ITEM_MODE){
return (e.screen==5 && e.hp>0) || e.screen==6;
}
if(PICKING_ITEM_TGT){
return e.complexItem.isBeingUsed==1;
}
if(ACT_OPEN_CHEST){
return validOpenChest(e);
}
if(ACT_BOSS_ATTACK){
return validBossAtack(e);
}
if(ACT_MENU_SCORE || ACT_MENU_PLAY){/* escolha do menu */
return isInMenu(e);
}
if(ACT_TOGGLE_SB_TYPE){
return e.screen==4;
}
if(ACT_CLASS_CHOICE){/* novo jogo */
return isInCharSelect(e);
}
if(ACT_SHOP_CHOICE){/* loja */
return isInShop(e);
}
return 0;
}