<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Форум</title>
		<link>http://sourcemod-css.3dn.ru/</link>
		<description>Форум</description>
		<lastBuildDate>Sat, 28 Feb 2015 10:11:53 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://sourcemod-css.3dn.ru/forum/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Ошибки при Компиляции SM Плагина</title>
			<link>https://sourcemod-css.3dn.ru/forum/25-120-1</link>
			<pubDate>Sat, 28 Feb 2015 10:11:53 GMT</pubDate>
			<description>Форум: &lt;a href=&quot;https://sourcemod-css.3dn.ru/forum/25&quot;&gt;Помощь&lt;/a&gt;&lt;br /&gt;Автор темы: REgion&lt;br /&gt;Автор последнего сообщения: REgion&lt;br /&gt;Количество ответов: 0</description>
			<content:encoded>Если в &lt;b&gt;SourceMod&lt;/b&gt; плагине есть ошибки и вы попытаетесь его скомпилировать, то в черном окне должны появиться предупреждающие сообщения об этих ошибках. Сообщение содержит номер ошибки, ее текст, и номер строки, на которой она найдена. Но бывают такие случаи, когда в коде вообще нет видимых ошибок, но компилятор начинает ругаться с самой первой строки - может из-за того, что копировали/вставляли код из другого файла и это как-то на кодировку повлияло, или другая причина, не знаю, но это решит подобную проблему: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;1. Создать пустой текстовый документ&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; 2. Открыть его в другом текстовом редакторе, например, в wordpad&apos;е или др.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; 3. Вставить весь код и сохранить файл в стандартной кодировке&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; 4. Теперь можно переименовать его с другим расширением (.sp&amp;#41; и в Notepad++ или др. изменить кодировку на нужную&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; 5. Кинуть в папку &quot;scripting&quot; и пробовать скомпилировать - теперь должно получиться&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt; Может какие-то шаги и лишние, но это работает&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 001: expected token: &quot;;&quot;, but found &quot;}&quot;&lt;/b&gt; &lt;br /&gt; Нет точки с запятой в конце строки &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 017: undefined symbol &quot;x&quot;&lt;/b&gt; &lt;br /&gt; Используемый символ не найден. Или забыли переменную объявить, или не подключили модуль. Если это какая-то SourceMod команда, например, CS_RespawnPlayer, то зайдите в &lt;a class=&quot;link&quot; href=&quot;http://u.to/vjC8&quot; title=&quot;http://docs.sourcemod.net/api/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;API&lt;/a&gt; и введите её в поле &quot;Search:&quot;. Выше над командой жирным шрифтом будет указано имя модуля, например, &quot;cstrike&quot;, и чтобы его подключить, добавьте в самый верх кода #include &lt;cstrike&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 030: compound statement not closed at the end of file&lt;/b&gt; &lt;br /&gt; Забыли закрыть скобку -&gt; } &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 217: loose indentation&lt;/b&gt; &lt;br /&gt; Проблема с отступами. Внутри функции отступы должны быть сделаны или с помощью TAB, или с помощью пробелов - нельзя их смешивать, выберите что-то одно. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 203: symbol is never used: &quot;x&quot;&lt;/b&gt; &lt;br /&gt; Это не такая уж и ошибка. Это значит, что переменная создана, но никогда не используется, и поэтому она является лишней в коде. Просто удалите её, если она не нужна. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 204: symbol is assigned a value that is never used: &quot;x&quot;&lt;/b&gt; &lt;br /&gt; Почти то же самое, что и 203. &lt;br /&gt; Переменная создана, ей присвоено значение, но далее она не используется. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;fatal error 120: cannot read from file: &quot;файл&quot;&lt;/b&gt; &lt;br /&gt; Не удалось подключить файл (#include) - скорее всего .sp или .inc файла просто нет &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 021: symbol already defined: &quot;x&quot;&lt;/b&gt; &lt;br /&gt; Это значит, что переменная уже была объявлена (new, decl и тд), но вы снова пытаетесь это сделать. &lt;br /&gt; Объявлять переменную нужно 1 раз. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 213: tag mismatch&lt;/b&gt; &lt;br /&gt; Несовпадение тегов, например: new String:x[] = 1; &lt;br /&gt; Переменная и её значение должны быть одинакового типа (строки, float, int, и тд). &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 219: local variable &quot;x&quot; shadows a variable at a preceding level&lt;/b&gt; &lt;br /&gt; Имя переменной уже занято одним из параметров функции, а вы создаёте переменную с этим же именем. &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;my_func(xz&amp;#41;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new xz = 1; // так нельзя, имя &quot;xz&quot; уже занято&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; }&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 092: number of arguments does not match definition&lt;/b&gt; &lt;br /&gt; Количество параметров (аргументов) не совпадает с объявленными в функции &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 209: function &quot;x&quot; should return a value&lt;/b&gt; &lt;br /&gt; Функция должна возвращать какое-либо значение с помощью команды return &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 032: array index out of bounds (variab;e &quot;x&quot;)&lt;/b&gt; &lt;br /&gt; Индекс массива выходит за пределы: &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;new x&amp;#91;2];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt; x&amp;#91;2] = 1; // ошибка, т.к. доступные индексы здесь от 0 до 1&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 009: invalid array size (negative, zero or out of bounds)&lt;/b&gt; &lt;br /&gt; Неверный размер массива (отрицательный, ноль, или вне границ): &lt;br /&gt;&lt;br /&gt; &lt;!--uzcode--&gt;&lt;div class=&quot;bbCodeBlock&quot;&gt;&lt;div class=&quot;bbCodeName&quot; style=&quot;padding-left:5px;font-weight:bold;font-size:7pt&quot;&gt;Код&lt;/div&gt;&lt;div class=&quot;codeMessage&quot; style=&quot;border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight&lt;5?this.style.height:scrollHeight&gt;200?&apos;200px&apos;:&apos;&apos;+(this.scrollHeight+5)+&apos;px&apos;);&quot;&gt;&lt;!--uzc--&gt;new String:x&amp;#91;]; // не указан размер&lt;!--/uzc--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--/uzcode--&gt; &lt;br /&gt;&lt;br /&gt; &lt;b&gt;warning 211: possibly unintended assignment&lt;/b&gt; &lt;br /&gt; В условии использован символ присвоения, вместо сравнения, например: if (x = y) &lt;br /&gt;&lt;br /&gt; &lt;b&gt;error 027: invalid character constant&lt;/b&gt; &lt;br /&gt; Скорее всего вместо символа / вы используете &amp;#92;</content:encoded>
			<category>Помощь</category>
			<dc:creator>REgion</dc:creator>
			<guid>https://sourcemod-css.3dn.ru/forum/25-120-1</guid>
		</item>
	</channel>
</rss>