fvo123456 commited on
Commit
f72ec98
·
verified ·
1 Parent(s): b341817

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +526 -19
  3. prompts.txt +0 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Test1
3
- emoji: 📊
4
- colorFrom: yellow
5
- colorTo: pink
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: test1
3
+ emoji: 🐳
4
+ colorFrom: pink
5
+ colorTo: gray
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,526 @@
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>PUBG Recoil Control Macro</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .weapon-btn.active {
11
+ transform: scale(0.95);
12
+ box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
13
+ }
14
+ .recoil-pattern {
15
+ background-image: radial-gradient(circle, rgba(255,0,0,0.2) 1px, transparent 1px);
16
+ background-size: 20px 20px;
17
+ }
18
+ .macro-key {
19
+ transition: all 0.2s ease;
20
+ }
21
+ .macro-key.active {
22
+ transform: translateY(2px);
23
+ box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
24
+ }
25
+ </style>
26
+ </head>
27
+ <body class="bg-gray-900 text-gray-100 min-h-screen">
28
+ <div class="container mx-auto px-4 py-8">
29
+ <header class="mb-8 text-center">
30
+ <h1 class="text-4xl font-bold text-yellow-400 mb-2">
31
+ <i class="fas fa-crosshairs mr-2"></i>PUBG Recoil Macro
32
+ </h1>
33
+ <p class="text-gray-400">Advanced recoil control system for PUBG Battlegrounds</p>
34
+ <div class="mt-4 bg-gray-800 rounded-lg p-3 max-w-2xl mx-auto">
35
+ <p class="text-sm text-yellow-200"><i class="fas fa-exclamation-triangle mr-2"></i>Warning: Using macros may violate PUBG's terms of service. Use at your own risk.</p>
36
+ </div>
37
+ </header>
38
+
39
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
40
+ <!-- Weapon Selection -->
41
+ <div class="bg-gray-800 rounded-xl p-6 shadow-lg">
42
+ <h2 class="text-xl font-semibold mb-4 text-yellow-400">
43
+ <i class="fas fa-gun mr-2"></i>Weapon Profile
44
+ </h2>
45
+
46
+ <div class="grid grid-cols-2 gap-3 mb-6">
47
+ <button class="weapon-btn bg-gray-700 hover:bg-gray-600 py-3 rounded-lg transition-all flex flex-col items-center" data-weapon="m416">
48
+ <img src="https://via.placeholder.com/50/333/fff?text=M416" class="w-10 h-10 mb-1">
49
+ <span>M416</span>
50
+ </button>
51
+ <button class="weapon-btn bg-gray-700 hover:bg-gray-600 py-3 rounded-lg transition-all flex flex-col items-center" data-weapon="akm">
52
+ <img src="https://via.placeholder.com/50/333/fff?text=AKM" class="w-10 h-10 mb-1">
53
+ <span>AKM</span>
54
+ </button>
55
+ <button class="weapon-btn bg-gray-700 hover:bg-gray-600 py-3 rounded-lg transition-all flex flex-col items-center" data-weapon="scar">
56
+ <img src="https://via.placeholder.com/50/333/fff?text=SCAR" class="w-10 h-10 mb-1">
57
+ <span>SCAR-L</span>
58
+ </button>
59
+ <button class="weapon-btn bg-gray-700 hover:bg-gray-600 py-3 rounded-lg transition-all flex flex-col items-center" data-weapon="beryl">
60
+ <img src="https://via.placeholder.com/50/333/fff?text=Beryl" class="w-10 h-10 mb-1">
61
+ <span>Beryl</span>
62
+ </button>
63
+ </div>
64
+
65
+ <div class="mb-4">
66
+ <label class="block text-gray-400 mb-2">Vertical Recoil</label>
67
+ <input type="range" min="1" max="100" value="50" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="verticalSlider">
68
+ <div class="flex justify-between text-xs text-gray-400 mt-1">
69
+ <span>Low</span>
70
+ <span>Medium</span>
71
+ <span>High</span>
72
+ </div>
73
+ </div>
74
+
75
+ <div class="mb-4">
76
+ <label class="block text-gray-400 mb-2">Horizontal Recoil</label>
77
+ <input type="range" min="1" max="100" value="30" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="horizontalSlider">
78
+ <div class="flex justify-between text-xs text-gray-400 mt-1">
79
+ <span>Low</span>
80
+ <span>Medium</span>
81
+ <span>High</span>
82
+ </div>
83
+ </div>
84
+
85
+ <div class="mb-6">
86
+ <label class="block text-gray-400 mb-2">Fire Rate (ms delay)</label>
87
+ <input type="range" min="50" max="200" value="100" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="rateSlider">
88
+ <div class="flex justify-between text-xs text-gray-400 mt-1">
89
+ <span>Fast</span>
90
+ <span>Normal</span>
91
+ <span>Slow</span>
92
+ </div>
93
+ </div>
94
+
95
+ <button id="saveProfile" class="w-full bg-green-600 hover:bg-green-700 text-white py-2 rounded-lg font-medium transition">
96
+ <i class="fas fa-save mr-2"></i>Save Profile
97
+ </button>
98
+ </div>
99
+
100
+ <!-- Recoil Visualization -->
101
+ <div class="bg-gray-800 rounded-xl p-6 shadow-lg">
102
+ <h2 class="text-xl font-semibold mb-4 text-yellow-400">
103
+ <i class="fas fa-bullseye mr-2"></i>Recoil Pattern
104
+ </h2>
105
+
106
+ <div class="recoil-pattern bg-gray-900 rounded-lg h-64 mb-4 relative border border-gray-700">
107
+ <div id="recoilPath" class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-1 h-1 bg-red-500 rounded-full"></div>
108
+ <div id="recoilLine" class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-0.5 bg-red-500 opacity-70"></div>
109
+ </div>
110
+
111
+ <div class="grid grid-cols-2 gap-4 mb-6">
112
+ <div class="bg-gray-700 p-3 rounded-lg">
113
+ <div class="text-xs text-gray-400">Vertical</div>
114
+ <div id="verticalValue" class="text-lg font-mono">50</div>
115
+ </div>
116
+ <div class="bg-gray-700 p-3 rounded-lg">
117
+ <div class="text-xs text-gray-400">Horizontal</div>
118
+ <div id="horizontalValue" class="text-lg font-mono">30</div>
119
+ </div>
120
+ <div class="bg-gray-700 p-3 rounded-lg">
121
+ <div class="text-xs text-gray-400">Fire Rate</div>
122
+ <div id="rateValue" class="text-lg font-mono">100ms</div>
123
+ </div>
124
+ <div class="bg-gray-700 p-3 rounded-lg">
125
+ <div class="text-xs text-gray-400">Weapon</div>
126
+ <div id="weaponValue" class="text-lg">M416</div>
127
+ </div>
128
+ </div>
129
+
130
+ <button id="testRecoil" class="w-full bg-blue-600 hover:bg-blue-700 text-white py-2 rounded-lg font-medium transition mb-3">
131
+ <i class="fas fa-play mr-2"></i>Test Recoil
132
+ </button>
133
+ <button id="resetRecoil" class="w-full bg-gray-600 hover:bg-gray-700 text-white py-2 rounded-lg font-medium transition">
134
+ <i class="fas fa-undo mr-2"></i>Reset
135
+ </button>
136
+ </div>
137
+
138
+ <!-- Macro Configuration -->
139
+ <div class="bg-gray-800 rounded-xl p-6 shadow-lg">
140
+ <h2 class="text-xl font-semibold mb-4 text-yellow-400">
141
+ <i class="fas fa-keyboard mr-2"></i>Macro Settings
142
+ </h2>
143
+
144
+ <div class="mb-6">
145
+ <label class="block text-gray-400 mb-2">Activation Key</label>
146
+ <div class="grid grid-cols-3 gap-2">
147
+ <button class="macro-key bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-key="mouse4">
148
+ <i class="fas fa-mouse-pointer mr-1"></i> Mouse 4
149
+ </button>
150
+ <button class="macro-key bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-key="mouse5">
151
+ <i class="fas fa-mouse-pointer mr-1"></i> Mouse 5
152
+ </button>
153
+ <button class="macro-key bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-key="ctrl">
154
+ Ctrl
155
+ </button>
156
+ <button class="macro-key bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-key="shift">
157
+ Shift
158
+ </button>
159
+ <button class="macro-key bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-key="alt">
160
+ Alt
161
+ </button>
162
+ <button class="macro-key bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-key="space">
163
+ Space
164
+ </button>
165
+ </div>
166
+ </div>
167
+
168
+ <div class="mb-6">
169
+ <label class="block text-gray-400 mb-2">Fire Mode</label>
170
+ <div class="grid grid-cols-3 gap-2">
171
+ <button class="fire-mode bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-mode="auto">
172
+ Auto
173
+ </button>
174
+ <button class="fire-mode bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-mode="burst">
175
+ Burst (3)
176
+ </button>
177
+ <button class="fire-mode bg-gray-700 hover:bg-gray-600 py-3 rounded transition-all" data-mode="single">
178
+ Single
179
+ </button>
180
+ </div>
181
+ </div>
182
+
183
+ <div class="mb-6">
184
+ <label class="block text-gray-400 mb-2">Scope Sensitivity Multiplier</label>
185
+ <input type="range" min="50" max="200" value="100" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer" id="scopeSlider">
186
+ <div class="flex justify-between text-xs text-gray-400 mt-1">
187
+ <span>50%</span>
188
+ <span>100%</span>
189
+ <span>200%</span>
190
+ </div>
191
+ </div>
192
+
193
+ <div class="flex space-x-3">
194
+ <button id="exportConfig" class="flex-1 bg-purple-600 hover:bg-purple-700 text-white py-2 rounded-lg font-medium transition">
195
+ <i class="fas fa-file-export mr-2"></i>Export
196
+ </button>
197
+ <button id="importConfig" class="flex-1 bg-indigo-600 hover:bg-indigo-700 text-white py-2 rounded-lg font-medium transition">
198
+ <i class="fas fa-file-import mr-2"></i>Import
199
+ </button>
200
+ </div>
201
+ </div>
202
+ </div>
203
+
204
+ <!-- Script Output -->
205
+ <div class="mt-8 bg-gray-800 rounded-xl p-6 shadow-lg">
206
+ <h2 class="text-xl font-semibold mb-4 text-yellow-400">
207
+ <i class="fas fa-code mr-2"></i>Macro Script
208
+ </h2>
209
+ <div class="bg-gray-900 p-4 rounded-lg font-mono text-sm overflow-x-auto">
210
+ <pre id="scriptOutput">// Select a weapon and configure settings to generate script</pre>
211
+ </div>
212
+ <div class="mt-4 flex justify-end">
213
+ <button id="copyScript" class="bg-gray-700 hover:bg-gray-600 px-4 py-2 rounded-lg transition">
214
+ <i class="fas fa-copy mr-2"></i>Copy to Clipboard
215
+ </button>
216
+ </div>
217
+ </div>
218
+ </div>
219
+
220
+ <script>
221
+ // Current configuration
222
+ const config = {
223
+ weapon: 'm416',
224
+ vertical: 50,
225
+ horizontal: 30,
226
+ rate: 100,
227
+ key: 'mouse4',
228
+ mode: 'auto',
229
+ scope: 100
230
+ };
231
+
232
+ // Weapon profiles (recoil patterns)
233
+ const weaponProfiles = {
234
+ m416: { name: 'M416', verticalBase: 50, horizontalBase: 30 },
235
+ akm: { name: 'AKM', verticalBase: 70, horizontalBase: 40 },
236
+ scar: { name: 'SCAR-L', verticalBase: 45, horizontalBase: 25 },
237
+ beryl: { name: 'Beryl M762', verticalBase: 65, horizontalBase: 50 }
238
+ };
239
+
240
+ // DOM elements
241
+ const weaponBtns = document.querySelectorAll('.weapon-btn');
242
+ const macroKeys = document.querySelectorAll('.macro-key');
243
+ const fireModes = document.querySelectorAll('.fire-mode');
244
+ const verticalSlider = document.getElementById('verticalSlider');
245
+ const horizontalSlider = document.getElementById('horizontalSlider');
246
+ const rateSlider = document.getElementById('rateSlider');
247
+ const scopeSlider = document.getElementById('scopeSlider');
248
+ const verticalValue = document.getElementById('verticalValue');
249
+ const horizontalValue = document.getElementById('horizontalValue');
250
+ const rateValue = document.getElementById('rateValue');
251
+ const weaponValue = document.getElementById('weaponValue');
252
+ const recoilPath = document.getElementById('recoilPath');
253
+ const recoilLine = document.getElementById('recoilLine');
254
+ const testRecoilBtn = document.getElementById('testRecoil');
255
+ const resetRecoilBtn = document.getElementById('resetRecoil');
256
+ const saveProfileBtn = document.getElementById('saveProfile');
257
+ const exportConfigBtn = document.getElementById('exportConfig');
258
+ const importConfigBtn = document.getElementById('importConfig');
259
+ const copyScriptBtn = document.getElementById('copyScript');
260
+ const scriptOutput = document.getElementById('scriptOutput');
261
+
262
+ // Initialize UI
263
+ function initUI() {
264
+ // Set weapon
265
+ document.querySelector(`.weapon-btn[data-weapon="${config.weapon}"]`).classList.add('active');
266
+ weaponValue.textContent = weaponProfiles[config.weapon].name;
267
+
268
+ // Set sliders
269
+ verticalSlider.value = config.vertical;
270
+ horizontalSlider.value = config.horizontal;
271
+ rateSlider.value = config.rate;
272
+ scopeSlider.value = config.scope;
273
+
274
+ // Set key
275
+ document.querySelector(`.macro-key[data-key="${config.key}"]`).classList.add('active');
276
+
277
+ // Set fire mode
278
+ document.querySelector(`.fire-mode[data-mode="${config.mode}"]`).classList.add('active');
279
+
280
+ // Update displayed values
281
+ updateValues();
282
+ generateScript();
283
+ }
284
+
285
+ // Update displayed values
286
+ function updateValues() {
287
+ verticalValue.textContent = config.vertical;
288
+ horizontalValue.textContent = config.horizontal;
289
+ rateValue.textContent = `${config.rate}ms`;
290
+ }
291
+
292
+ // Weapon selection
293
+ weaponBtns.forEach(btn => {
294
+ btn.addEventListener('click', () => {
295
+ weaponBtns.forEach(b => b.classList.remove('active'));
296
+ btn.classList.add('active');
297
+
298
+ config.weapon = btn.dataset.weapon;
299
+ const profile = weaponProfiles[config.weapon];
300
+
301
+ // Set base values for this weapon
302
+ config.vertical = profile.verticalBase;
303
+ config.horizontal = profile.horizontalBase;
304
+
305
+ // Update sliders
306
+ verticalSlider.value = config.vertical;
307
+ horizontalSlider.value = config.horizontal;
308
+
309
+ weaponValue.textContent = profile.name;
310
+ updateValues();
311
+ generateScript();
312
+ });
313
+ });
314
+
315
+ // Macro key selection
316
+ macroKeys.forEach(key => {
317
+ key.addEventListener('click', () => {
318
+ macroKeys.forEach(k => k.classList.remove('active'));
319
+ key.classList.add('active');
320
+ config.key = key.dataset.key;
321
+ generateScript();
322
+ });
323
+ });
324
+
325
+ // Fire mode selection
326
+ fireModes.forEach(mode => {
327
+ mode.addEventListener('click', () => {
328
+ fireModes.forEach(m => m.classList.remove('active'));
329
+ mode.classList.add('active');
330
+ config.mode = mode.dataset.mode;
331
+ generateScript();
332
+ });
333
+ });
334
+
335
+ // Slider events
336
+ verticalSlider.addEventListener('input', () => {
337
+ config.vertical = verticalSlider.value;
338
+ verticalValue.textContent = config.vertical;
339
+ generateScript();
340
+ });
341
+
342
+ horizontalSlider.addEventListener('input', () => {
343
+ config.horizontal = horizontalSlider.value;
344
+ horizontalValue.textContent = config.horizontal;
345
+ generateScript();
346
+ });
347
+
348
+ rateSlider.addEventListener('input', () => {
349
+ config.rate = rateSlider.value;
350
+ rateValue.textContent = `${config.rate}ms`;
351
+ generateScript();
352
+ });
353
+
354
+ scopeSlider.addEventListener('input', () => {
355
+ config.scope = scopeSlider.value;
356
+ generateScript();
357
+ });
358
+
359
+ // Test recoil pattern
360
+ testRecoilBtn.addEventListener('click', () => {
361
+ const patternContainer = document.querySelector('.recoil-pattern');
362
+ const width = patternContainer.clientWidth;
363
+ const height = patternContainer.clientHeight;
364
+
365
+ // Clear previous line
366
+ recoilLine.style.height = '0';
367
+ recoilLine.style.transform = 'translate(-50%, -50%) rotate(0)';
368
+
369
+ // Calculate recoil pattern
370
+ const vertical = config.vertical / 10;
371
+ const horizontal = config.horizontal / 50;
372
+ const steps = 20;
373
+ let path = '';
374
+
375
+ // Animate recoil
376
+ let currentY = 0;
377
+ let currentX = 0;
378
+ let angle = 0;
379
+
380
+ const interval = setInterval(() => {
381
+ // Add some randomness to simulate actual recoil
382
+ const randX = (Math.random() - 0.5) * 5;
383
+ const randY = (Math.random() - 0.5) * 2;
384
+
385
+ currentY += vertical / steps + randY;
386
+ currentX += (Math.random() > 0.5 ? horizontal : -horizontal) / steps + randX;
387
+
388
+ // Limit to container
389
+ currentY = Math.min(currentY, height/2 - 10);
390
+ currentX = Math.max(Math.min(currentX, width/2 - 10), -width/2 + 10);
391
+
392
+ // Update position
393
+ recoilPath.style.transform = `translate(calc(-50% + ${currentX}px), calc(-50% + ${currentY}px))`;
394
+
395
+ // Update line
396
+ angle = Math.atan2(currentY, currentX) * (180 / Math.PI);
397
+ const length = Math.sqrt(currentX*currentX + currentY*currentY);
398
+ recoilLine.style.height = `${length}px`;
399
+ recoilLine.style.transform = `translate(-50%, -50%) rotate(${-angle}deg)`;
400
+
401
+ }, 50);
402
+
403
+ // Stop after 2 seconds
404
+ setTimeout(() => {
405
+ clearInterval(interval);
406
+ }, 2000);
407
+ });
408
+
409
+ // Reset recoil visualization
410
+ resetRecoilBtn.addEventListener('click', () => {
411
+ recoilPath.style.transform = 'translate(-50%, -50%)';
412
+ recoilLine.style.height = '0';
413
+ });
414
+
415
+ // Save profile (in this demo just shows a message)
416
+ saveProfileBtn.addEventListener('click', () => {
417
+ alert(`Profile for ${weaponProfiles[config.weapon].name} saved!`);
418
+ });
419
+
420
+ // Export config
421
+ exportConfigBtn.addEventListener('click', () => {
422
+ const configStr = JSON.stringify(config, null, 2);
423
+ alert('Copy this configuration:\n\n' + configStr);
424
+ });
425
+
426
+ // Import config
427
+ importConfigBtn.addEventListener('click', () => {
428
+ const configStr = prompt('Paste your configuration JSON:');
429
+ if (configStr) {
430
+ try {
431
+ const importedConfig = JSON.parse(configStr);
432
+ Object.assign(config, importedConfig);
433
+ initUI();
434
+ } catch (e) {
435
+ alert('Invalid configuration format');
436
+ }
437
+ }
438
+ });
439
+
440
+ // Copy script to clipboard
441
+ copyScriptBtn.addEventListener('click', () => {
442
+ navigator.clipboard.writeText(scriptOutput.textContent)
443
+ .then(() => {
444
+ const originalText = copyScriptBtn.innerHTML;
445
+ copyScriptBtn.innerHTML = '<i class="fas fa-check mr-2"></i>Copied!';
446
+ setTimeout(() => {
447
+ copyScriptBtn.innerHTML = originalText;
448
+ }, 2000);
449
+ })
450
+ .catch(err => {
451
+ console.error('Failed to copy: ', err);
452
+ });
453
+ });
454
+
455
+ // Generate the macro script
456
+ function generateScript() {
457
+ // This is a simulation - actual macro scripts would be specific to your mouse/keyboard software
458
+ let script = `// PUBG Recoil Control Macro for ${weaponProfiles[config.weapon].name}
459
+ // Activation Key: ${config.key.toUpperCase()}
460
+ // Fire Mode: ${config.mode.toUpperCase()}
461
+ // Vertical Recoil: ${config.vertical} | Horizontal Recoil: ${config.horizontal}
462
+ // Fire Rate: ${config.rate}ms | Scope Sensitivity: ${config.scope}%
463
+
464
+ function main() {
465
+ // Check if left mouse button is pressed (firing)
466
+ if (event.isPressed("MOUSE_LEFT")) {
467
+ // Apply recoil compensation
468
+ ${getRecoilCompensationCode()}
469
+
470
+ // Add delay between shots based on fire rate
471
+ delay(${config.rate});
472
+ }
473
+ }
474
+
475
+ // Bind to activation key
476
+ bind("${config.key.toUpperCase()}", "TOGGLE", main);`;
477
+
478
+ scriptOutput.textContent = script;
479
+ }
480
+
481
+ // Helper to generate recoil compensation code based on settings
482
+ function getRecoilCompensationCode() {
483
+ let code = '';
484
+ const verticalMove = config.vertical / 1000;
485
+ const horizontalMove = config.horizontal / 1000;
486
+
487
+ if (config.mode === 'auto') {
488
+ code = `// Continuous recoil control for auto fire
489
+ moveMouseRelative(0, ${verticalMove.toFixed(3)});
490
+ if (random() > 0.5) {
491
+ moveMouseRelative(${horizontalMove.toFixed(3)}, 0);
492
+ } else {
493
+ moveMouseRelative(-${horizontalMove.toFixed(3)}, 0);
494
+ }`;
495
+ } else if (config.mode === 'burst') {
496
+ code = `// Burst fire recoil control (3 shots)
497
+ if (burstCount < 3) {
498
+ moveMouseRelative(0, ${(verticalMove * 1.5).toFixed(3)});
499
+ if (random() > 0.5) {
500
+ moveMouseRelative(${(horizontalMove * 1.2).toFixed(3)}, 0);
501
+ } else {
502
+ moveMouseRelative(-${(horizontalMove * 1.2).toFixed(3)}, 0);
503
+ }
504
+ burstCount++;
505
+ } else {
506
+ delay(300); // Burst delay
507
+ burstCount = 0;
508
+ }`;
509
+ } else { // single
510
+ code = `// Single shot recoil control
511
+ moveMouseRelative(0, ${(verticalMove * 2).toFixed(3)});
512
+ if (random() > 0.5) {
513
+ moveMouseRelative(${(horizontalMove * 1.5).toFixed(3)}, 0);
514
+ } else {
515
+ moveMouseRelative(-${(horizontalMove * 1.5).toFixed(3)}, 0);
516
+ }`;
517
+ }
518
+
519
+ return code;
520
+ }
521
+
522
+ // Initialize
523
+ initUI();
524
+ </script>
525
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=fvo123456/test1" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
526
+ </html>
prompts.txt ADDED
File without changes