HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- HLFX Hammer Editor (https://hlfx.ru/forum/showthread.php?threadid=3900)
Отправлено SourceSkyBoxer 10-10-2013 в 15:56:
Цитата:
This editor doesn't implement grid hack at all.
Why not?
Wait:
I have patch c++ file by Vluzacn on my computer.
I have tried to compile with Visual Studio 2008 Professional C++
It works fine and creates executable patch 
C++ Source Code:
7 | typedef unsigned char byte; |
9 | void error (const char *s) |
11 | printf ("Error: %s\nPress any key to quit", s); |
16 | const unsigned int maxlen = 256; |
25 | int match (byte *buffer, unsigned int length, const part_t *part) |
28 | for (i=0; part[i].len; i++) |
30 | if (length < part[i].pos + part[i].len) |
32 | if (memcmp (buffer + part[i].pos, part[i].data, part[i].len)) |
38 | int modify (byte *buffer, unsigned int length, const part_t *part) |
41 | for (i=0; part[i].len; i++) |
43 | if (length < part[i].pos + part[i].len) |
45 | memcpy (buffer + part[i].pos, part[i].data, part[i].len); |
50 | int main (int argc, char **argv) |
52 | const part_t part_35_4096[] = |
54 | {0x215F9, 4, {0x00,0x00,0x80,0x45}}, // max (float)4096 |
55 | {0x21603, 4, {0x00,0x00,0x80,0xC5}}, // min (float)-4096 |
56 | {0x51CD9, 4, {0x10,0x27,0x00,0x00}}, // visibility (int)10000 |
57 | {0x3C4F1, 4, {0x00,0x00,0x00,0x3D}}, // min scale to reach (float)0.03125 |
58 | {0x3C514, 4, {0x00,0x00,0x80,0x43}}, // max scale to reach (float)256 |
59 | {0xB96E8, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x40}}, // max scale (double)256 |
60 | {0xB96F0, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0x3F}}, // min scale (double)0.03125 |
63 | const part_t part_35_30720[] = |
65 | {0x215F9, 4, {0x00,0x00,0x80,0x46}}, // max (float)16777216 |
66 | {0x21603, 4, {0x00,0x00,0x80,0xC6}}, // min (float)-16777216 |
67 | {0x51CD9, 4, {0x25,0x72,0x00,0x00}}, // visibility (int)20000 |
68 | {0x3C4F1, 4, {0x00,0x00,0x80,0x3C}}, // min scale to reach (float)0.015625 |
69 | {0x3C514, 4, {0x00,0x00,0x00,0x43}}, // max scale to reach (float)128 |
70 | {0xB96E8, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40}}, // max scale (double)128 |
71 | {0xB96F0, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x3F}}, // min scale (double)0.015625 |
74 | const part_t part_35_unknown[] = |
76 | {0xD4480, 16,"220\0mapversion\0"}, |
79 | const part_t part_34_4096[] = |
81 | {0x212C9, 4, {0x00,0x00,0x80,0x45}}, // max (float)4096 |
82 | {0x212D3, 4, {0x00,0x00,0x80,0xC5}}, // min (float)-4096 |
83 | {0x51959, 4, {0x10,0x27,0x00,0x00}}, // visibility (int)10000 |
84 | {0x3C231, 4, {0x00,0x00,0x00,0x3D}}, // min scale to reach (float)0.03125 |
85 | {0x3C254, 4, {0x00,0x00,0x80,0x43}}, // max scale to reach (float)256 |
86 | {0xB86E0, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x40}}, // max scale (double)256 |
87 | {0xB86E8, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0x3F}}, // min scale (double)0.03125 |
90 | const part_t part_34_30720[] = |
92 | {0x215F9, 4, {0x00,0x00,0x80,0x46}}, // max (float)16777216 |
93 | {0x21603, 4, {0x00,0x00,0x80,0xC6}}, // min (float)-16777216 |
94 | {0x51CD9, 4, {0x25,0x72,0x00,0x00}}, // visibility (int)20000 |
95 | {0x3C4F1, 4, {0x00,0x00,0x80,0x3C}}, // min scale to reach (float)0.015625 |
96 | {0x3C514, 4, {0x00,0x00,0x00,0x43}}, // max scale to reach (float)128 |
97 | {0xB96E8, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40}}, // max scale (double)128 |
98 | {0xB96F0, 8, {0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x3F}}, // min scale (double)0.015625 |
101 | const part_t part_34_unknown[] = |
103 | {0xD3470, 16,"220\0mapversion\0"}, |
106 | char filename[MAX_PATH+1]; |
109 | strncpy (filename, argv[1], MAX_PATH); |
114 | memset (&ofn, 0, sizeof(ofn)); |
115 | ofn.lStructSize = sizeof(ofn); |
116 | ofn.lpstrFile = filename; |
117 | strcpy (filename, ""); |
118 | ofn.nMaxFile = MAX_PATH; |
119 | ofn.lpstrDefExt = "exe"; |
120 | ofn.lpstrFilter = "Executable(hammer.exe)\0*.exe\0All Files(*.*)\0*.*\0"; |
121 | ofn.nFilterIndex = 1; |
122 | ofn.Flags = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST; |
123 | ofn.lpstrTitle = "Convert Valve Hammer Editor Executable"; |
124 | if (!GetSaveFileName (&ofn)) |
125 | error ("No file selected"); |
126 | printf ("%s\n", filename); |
133 | if (!(f = fopen (filename, "rb"))) |
134 | error ("Can not open file for read"); |
135 | fseek(f, 0, SEEK_END); |
137 | fseek(f, 0, SEEK_SET); |
138 | if (!(buffer = (byte *)malloc (length))) |
140 | if (fread (buffer, 1, length, f) != length) |
141 | error ("Can not read file"); |
142 | if (match (buffer, length, part_35_4096)) |
145 | printf ("Detected version: Valve Hammer Editor 3.5 (normal)\n"); |
147 | else if (match (buffer, length, part_35_30720)) |
149 | type = part_35_30720; |
150 | printf ("Detected version: Valve Hammer Editor 3.5 (already modified)\n"); |
152 | else if (match (buffer, length, part_35_unknown)) |
154 | type = part_35_unknown; |
155 | printf ("Detected version: Valve Hammer Editor 3.5 (other)\n"); |
157 | else if (match (buffer, length, part_34_4096)) |
160 | printf ("Detected version: Valve Hammer Editor 3.4 (normal)\n"); |
162 | else if (match (buffer, length, part_34_30720)) |
164 | type = part_34_30720; |
165 | printf ("Detected version: Valve Hammer Editor 3.4 (already modified)\n"); |
167 | else if (match (buffer, length, part_34_unknown)) |
169 | type = part_34_unknown; |
170 | printf ("Detected version: Valve Hammer Editor 3.5 (other)\n"); |
174 | error ("Not hammer.exe from Valve Hammer Editor 3.4 or 3.5"); |
179 | printf ("Press 1 to convert to normal version\nPress 2 to enlarge the range of grid\n"); |
183 | if (type == part_35_4096 || type == part_35_30720 || type == part_35_unknown) |
185 | if (type == part_34_4096 || type == part_34_30720 || type == part_34_unknown) |
190 | if (type == part_35_4096 || type == part_35_30720 || type == part_35_unknown) |
191 | type = part_35_30720; |
192 | if (type == part_34_4096 || type == part_34_30720 || type == part_34_unknown) |
193 | type = part_34_30720; |
196 | error ("Invalid input"); |
200 | if (!(f = fopen (filename, "wb"))) |
201 | error ("Can not open file for write"); |
202 | modify (buffer, length, type); |
203 | if (fwrite (buffer, 1, length, f) != length) |
204 | error ("Can not write file"); |
208 | printf ("Done\nPress any key to quit"); |
I don't know - how do i change hex binaries from "-/+4096" to "-/+30720"?
Look out thread: am-half-lifecreations Sven-Coop Forum and Cry of Fear Forum__________________
Здравствуйте, хорошие люди, я
из Германии, и я прощаю тебя,
что я глухой. Я просто хочу,
чтобы писать по-английски.
Мне очень жаль. Я не могу
написать хороший русский
язык.
Отправлено Дядя Миша 10-10-2013 в 15:59:
SourceSkyBoxer Please do not use tag [ code ]. Use [ cpp ] instead.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SourceSkyBoxer 10-10-2013 в 16:04:
Цитата:
Дядя Миша писал:
SourceSkyBoxer Please do not use tag [ code ]. Use [ cpp ] instead.
Thank you.. i am sorry because i don't know about russian Language of your forum package.
I need to switch Language English on your forum package and i understand better. Thanks 
__________________
Здравствуйте, хорошие люди, я
из Германии, и я прощаю тебя,
что я глухой. Я просто хочу,
чтобы писать по-английски.
Мне очень жаль. Я не могу
написать хороший русский
язык.
Отправлено XaeroX 10-10-2013 в 16:45:
Цитата:
SourceSkyBoxer писал:
Why not?
Because there is an upcoming brand new editor that will fix all the problems, including tweakable grid size.__________________
Отправлено SourceSkyBoxer 12-10-2013 в 10:52:
New girdhack by vluzacn now:
Can you map same nice place now.. But don't use out -/+32768!!!!! Thank you!
__________________
Здравствуйте, хорошие люди, я
из Германии, и я прощаю тебя,
что я глухой. Я просто хочу,
чтобы писать по-английски.
Мне очень жаль. Я не могу
написать хороший русский
язык.