Pankajpegu07 commited on
Commit
fb4d801
·
verified ·
1 Parent(s): aee213a

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +310 -19
index.html CHANGED
@@ -1,19 +1,310 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Free Fire Max Auto Headshot Config Generator</title>
7
+ <script src="https://cdn.jsdelivr.net/npm/react@18.0.0/umd/react.development.js"></script>
8
+ <script src="https://cdn.jsdelivr.net/npm/react-dom@18.0.0/umd/react-dom.development.js"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/@babel/standalone/babel.js"></script>
10
+ <script src="https://cdn.tailwindcss.com"></script>
11
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
12
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
13
+ <style>
14
+ body {
15
+ font-family: 'Inter', sans-serif;
16
+ }
17
+ .gradient-bg {
18
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
19
+ }
20
+ .glass-effect {
21
+ background: rgba(255, 255, 255, 0.1);
22
+ backdrop-filter: blur(10px);
23
+ border: 1px solid rgba(255, 255, 255, 0.2);
24
+ }
25
+ .binary-display {
26
+ font-family: 'Courier New', monospace;
27
+ letter-spacing: 2px;
28
+ }
29
+ .custom-scrollbar::-webkit-scrollbar {
30
+ width: 6px;
31
+ }
32
+ .custom-scrollbar::-webkit-scrollbar-track {
33
+ background: #f1f1f1;
34
+ border-radius: 10px;
35
+ }
36
+ .custom-scrollbar::-webkit-scrollbar-thumb {
37
+ background: #888;
38
+ border-radius: 10px;
39
+ }
40
+ .custom-scrollbar::-webkit-scrollbar-thumb:hover {
41
+ background: #555;
42
+ }
43
+ </style>
44
+ </head>
45
+ <body>
46
+ <div id="root"></div>
47
+
48
+ <script type="text/babel">
49
+ const { useState, useEffect } = React;
50
+
51
+ function App() {
52
+ const [characterName, setCharacterName] = useState('');
53
+ const [headBoneId, setHeadBoneId] = useState('');
54
+ const [binaryOutput, setBinaryOutput] = useState('');
55
+ const [configFile, setConfigFile] = useState('');
56
+ const [selectedCharacter, setSelectedCharacter] = useState('');
57
+ const [showSuccess, setShowSuccess] = useState(false);
58
+
59
+ const characterDatabase = {
60
+ 'Adam': { headBoneId: '123', bodyBoneId: '456' },
61
+ 'Alok': { headBoneId: '234', bodyBoneId: '567' },
62
+ 'Andrew': { headBoneId: '345', bodyBoneId: '678' },
63
+ 'Antonio': { headBoneId: '456', bodyBoneId: '789' },
64
+ 'Bella': { headBoneId: '567', bodyBoneId: '890' },
65
+ 'Brooklyn': { headBoneId: '678', bodyBoneId: '901' },
66
+ 'Carlo': { headBoneId: '789', bodyBoneId: '012' },
67
+ 'Clu': { headBoneId: '890', bodyBoneId: '123' },
68
+ 'Dasha': { headBoneId: '901', bodyBoneId: '234' },
69
+ 'Dj Alok': { headBoneId: '012', bodyBoneId: '345' },
70
+ 'Elio': { headBoneId: '123', bodyBoneId: '456' },
71
+ 'El Primo': { headBoneId: '234', bodyBoneId: '567' },
72
+ 'Fernando': { headBoneId: '345', bodyBoneId: '678' },
73
+ 'Franko': { headBoneId: '456', bodyBoneId: '789' },
74
+ 'Garena': { headBoneId: '567', bodyBoneId: '890' },
75
+ 'Hayato': { headBoneId: '678', bodyBoneId: '901' },
76
+ 'Jai': { headBoneId: '789', bodyBoneId: '012' },
77
+ 'Jessica': { headBoneId: '890', bodyBoneId: '123' },
78
+ 'K': { headBoneId: '901', bodyBoneId: '234' },
79
+ 'Kelly': { headBoneId: '012', bodyBoneId: '345' },
80
+ 'Kla': { headBoneId: '123', bodyBoneId: '456' },
81
+ 'Lara': { headBoneId: '234', bodyBoneId: '567' },
82
+ 'Lesley': { headBoneId: '345', bodyBoneId: '678' },
83
+ 'Ling': { headBoneId: '456', bodyBoneId: '789' },
84
+ 'Luna': { headBoneId: '567', bodyBoneId: '890' },
85
+ 'Moco': { headBoneId: '678', bodyBoneId: '901' },
86
+ 'Nana': { headBoneId: '789', bodyBoneId: '012' },
87
+ 'Natalie': { headBoneId: '890', bodyBoneId: '123' },
88
+ 'Omar': { headBoneId: '901', bodyBoneId: '234' },
89
+ 'P': { headBoneId: '012', bodyBoneId: '345' },
90
+ 'Paloma': { headBoneId: '123', bodyBoneId: '456' },
91
+ 'Penny': { headBoneId: '234', bodyBoneId: '567' },
92
+ 'Phoveus': { headBoneId: '345', bodyBoneId: '678' },
93
+ 'Rafaela': { headBoneId: '456', bodyBoneId: '789' },
94
+ 'R-T': { headBoneId: '567', bodyBoneId: '890' },
95
+ 'S': { headBoneId: '678', bodyBoneId: '901' },
96
+ 'Saber': { headBoneId: '789', bodyBoneId: '012' },
97
+ 'Sandy': { headBoneId: '890', bodyBoneId: '123' },
98
+ 'Shani': { headBoneId: '901', bodyBoneId: '234' },
99
+ 'Skye': { headBoneId: '012', bodyBoneId: '345' },
100
+ 'Slayer': { headBoneId: '123', bodyBoneId: '456' },
101
+ 'Smile': { headBoneId: '234', bodyBoneId: '567' },
102
+ 'Spectra': { headBoneId: '345', bodyBoneId: '678' },
103
+ 'T': { headBoneId: '456', bodyBoneId: '789' },
104
+ 'Tara': { headBoneId: '567', bodyBoneId: '890' },
105
+ 'Thunde': { headBoneId: '678', bodyBoneId: '901' },
106
+ 'W': { headBoneId: '789', bodyBoneId: '012' },
107
+ 'Wanwan': { headBoneId: '890', bodyBoneId: '123' },
108
+ 'Yin': { headBoneId: '901', bodyBoneId: '234' },
109
+ 'Yve': { headBoneId: '012', bodyBoneId: '345' },
110
+ 'Zilong': { headBoneId: '123', bodyBoneId: '456' }
111
+ };
112
+
113
+ const convertToBinary = (decimal) => {
114
+ if (!decimal) return '';
115
+ const num = parseInt(decimal);
116
+ if (isNaN(num)) return '';
117
+ return num.toString(2).padStart(16, '0');
118
+ };
119
+
120
+ const generateConfig = () => {
121
+ if (!headBoneId) {
122
+ alert('Please enter a valid head bone ID');
123
+ return;
124
+ }
125
+
126
+ const binary = convertToBinary(headBoneId);
127
+ setBinaryOutput(binary);
128
+
129
+ const config = `# Free Fire Max Auto Headshot Configuration
130
+ # Character: ${characterName || 'Custom'}
131
+ # Head Bone ID: ${headBoneId}
132
+ # Binary: ${binary}
133
+
134
+ [AutoAim]
135
+ Enabled=1
136
+ BoneTarget=Head
137
+ BoneID=${headBoneId}
138
+ BinaryTarget=${binary}
139
+ Priority=High
140
+ Accuracy=95
141
+ ReactionTime=0.1
142
+ SmoothAim=1
143
+ FOV=90
144
+ `;
145
+
146
+ setConfigFile(config);
147
+ setShowSuccess(true);
148
+ setTimeout(() => setShowSuccess(false), 3000);
149
+ };
150
+
151
+ const downloadConfig = () => {
152
+ if (!configFile) return;
153
+
154
+ const blob = new Blob([configFile], { type: 'text/plain' });
155
+ const url = window.URL.createObjectURL(blob);
156
+ const a = document.createElement('a');
157
+ a.href = url;
158
+ a.download = `ffmax_headshot_${characterName || 'custom'}_${Date.now()}.cfg`;
159
+ document.body.appendChild(a);
160
+ a.click();
161
+ document.body.removeChild(a);
162
+ window.URL.revokeObjectURL(url);
163
+ };
164
+
165
+ const selectCharacter = (charName) => {
166
+ const charData = characterDatabase[charName];
167
+ if (charData) {
168
+ setCharacterName(charName);
169
+ setHeadBoneId(charData.headBoneId);
170
+ setSelectedCharacter(charName);
171
+ }
172
+ };
173
+
174
+ return (
175
+ <div className="min-h-screen gradient-bg">
176
+ <div className="container mx-auto px-4 py-8">
177
+ {/* Header */}
178
+ <div className="text-center mb-8">
179
+ <h1 className="text-4xl font-bold text-white mb-2">Free Fire Max Auto Headshot Config Generator</h1>
180
+ <p className="text-white/80">Create optimized headshot configuration files using bone IDs</p>
181
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" className="text-white underline mt-2 inline-block">Built with anycoder</a>
182
+ </div>
183
+
184
+ {/* Main Content */}
185
+ <div className="max-w-6xl mx-auto">
186
+ <div className="grid lg:grid-cols-2 gap-8">
187
+ {/* Left Panel - Input */}
188
+ <div className="glass-effect rounded-2xl p-6">
189
+ <h2 className="text-2xl font-semibold text-white mb-6">Configuration Settings</h2>
190
+
191
+ {/* Character Selection */}
192
+ <div className="mb-6">
193
+ <label className="block text-white/90 mb-2 font-medium">Select Character</label>
194
+ <div className="grid grid-cols-3 gap-2">
195
+ {Object.keys(characterDatabase).map(char => (
196
+ <button
197
+ key={char}
198
+ onClick={() => selectCharacter(char)}
199
+ className={`px-3 py-2 rounded-lg text-sm font-medium transition-all ${
200
+ selectedCharacter === char
201
+ ? 'bg-white/20 text-white'
202
+ : 'bg-white/10 text-white/70 hover:bg-white/15'
203
+ }`}
204
+ >
205
+ {char}
206
+ </button>
207
+ ))}
208
+ </div>
209
+ </div>
210
+
211
+ {/* Custom Character Input */}
212
+ <div className="mb-6">
213
+ <label className="block text-white/90 mb-2 font-medium">Custom Character Name</label>
214
+ <input
215
+ type="text"
216
+ value={characterName}
217
+ onChange={(e) => setCharacterName(e.target.value)}
218
+ placeholder="Enter character name"
219
+ className="w-full px-4 py-2 rounded-lg bg-white/10 text-white placeholder-white/50 border border-white/20 focus:outline-none focus:border-white/40"
220
+ />
221
+ </div>
222
+
223
+ {/* Head Bone ID */}
224
+ <div className="mb-6">
225
+ <label className="block text-white/90 mb-2 font-medium">Head Bone ID (Decimal)</label>
226
+ <input
227
+ type="text"
228
+ value={headBoneId}
229
+ onChange={(e) => setHeadBoneId(e.target.value)}
230
+ placeholder="Enter head bone ID (e.g., 123)"
231
+ className="w-full px-4 py-2 rounded-lg bg-white/10 text-white placeholder-white/50 border border-white/20 focus:outline-none focus:border-white/40"
232
+ />
233
+ <p className="text-white/60 text-sm mt-1">Enter the decimal value of the head bone ID</p>
234
+ </div>
235
+
236
+ {/* Generate Button */}
237
+ <button
238
+ onClick={generateConfig}
239
+ className="w-full bg-gradient-to-r from-purple-500 to-pink-500 text-white font-semibold py-3 rounded-lg hover:from-purple-600 hover:to-pink-600 transition-all transform hover:scale-105"
240
+ >
241
+ Generate Configuration
242
+ </button>
243
+
244
+ {/* Success Message */}
245
+ {showSuccess && (
246
+ <div className="mt-4 p-3 bg-green-500/20 border border-green-500/50 rounded-lg">
247
+ <p className="text-green-300 text-center">✓ Configuration generated successfully!</p>
248
+ </div>
249
+ )}
250
+ </div>
251
+
252
+ {/* Right Panel - Output */}
253
+ <div className="glass-effect rounded-2xl p-6">
254
+ <h2 className="text-2xl font-semibold text-white mb-6">Generated Output</h2>
255
+
256
+ {/* Binary Display */}
257
+ <div className="mb-6">
258
+ <h3 className="text-white/90 font-medium mb-2">Binary Representation</h3>
259
+ <div className="bg-black/30 rounded-lg p-4">
260
+ <pre className="binary-display text-green-400 text-lg">
261
+ {binaryOutput || 'Binary will appear here...'}
262
+ </pre>
263
+ </div>
264
+ </div>
265
+
266
+ {/* Configuration File */}
267
+ <div className="mb-6">
268
+ <div className="flex justify-between items-center mb-2">
269
+ <h3 className="text-white/90 font-medium">Configuration File</h3>
270
+ <button
271
+ onClick={downloadConfig}
272
+ className="px-4 py-1 bg-blue-500/20 text-blue-300 rounded-lg hover:bg-blue-500/30 transition-all text-sm"
273
+ >
274
+ Download
275
+ </button>
276
+ </div>
277
+ <div className="bg-black/30 rounded-lg p-4 h-64 overflow-y-auto custom-scrollbar">
278
+ <pre className="text-white/80 text-sm">
279
+ {configFile || '// Configuration will appear here...'}
280
+ </pre>
281
+ </div>
282
+ </div>
283
+
284
+ {/* Info Panel */}
285
+ <div className="bg-white/10 rounded-lg p-4">
286
+ <h3 className="text-white/90 font-medium mb-2">How It Works</h3>
287
+ <ul className="text-white/70 text-sm space-y-1">
288
+ <li>• Enter the character's head bone ID in decimal format</li>
289
+ <li>• The tool converts it to 16-bit binary representation</li>
290
+ <li>• Generates a configuration file for auto-aim targeting</li>
291
+ <li>• Download the .cfg file for your game mod</li>
292
+ </ul>
293
+ </div>
294
+ </div>
295
+ </div>
296
+
297
+ {/* Footer */}
298
+ <div className="mt-8 text-center text-white/60 text-sm">
299
+ <p>For educational purposes only. Use responsibly and in accordance with game terms of service.</p>
300
+ </div>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ );
305
+ }
306
+
307
+ ReactDOM.render(<App />, document.getElementById('root'));
308
+ </script>
309
+ </body>
310
+ </html>