Как се пише Pawn плъгин

Въпроси и проблеми свързани с AMXModX.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как се пише Pawn плъгин

Мнение от OciXCrom » 13 Фев 2018, 23:51

То версията не я изписва на 1.8.2 май. Не виждам никакъв проблем в кода. Локално компилираш или с онлайн компилатор? Ако е второто, може от него да е проблемът. Не мога в момента да тествам, обаче не виждам причина защо изкарва грешка. Да не би да си написал някоя от буквите на кирилица?

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Как се пише Pawn плъгин

Мнение от Marinovv » 14 Фев 2018, 00:15

Компилирам само и единствено локално. Доколкото виждам няма кирилица в името на плъгина или вътре в самия код.

Не виждам, защо прави така. Това е странно.

Добавено преди 21 минути 29 секунди:
Не става. Пробвах и от Интернет с версия 1.8.3 на amxmod да компилирам, но същата грешка.

Най - лошото е, че тази грешка не само аз я имам. В Интернет също има хора с този проблем и решение няма.
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как се пише Pawn плъгин

Мнение от OciXCrom » 14 Фев 2018, 02:20

Дали имаш същия проблем при компилиране на други плъгини, примерно някой от тези във форума? Ако всичко е наред при тях, вероятно самият .sma файл, който си създал, е проблемен. Направо вземи .sma файла от друг плъгин, който се компилира без проблеми, изтрий съдържанието му и пиши твоя код в него. Можеш и да прикачиш проблемния .sma файл директно в мнението за да видим какъв е проблемът, понеже в самия код няма грешки.

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Как се пише Pawn плъгин

Мнение от Marinovv » 14 Фев 2018, 09:50

Само с този код, който за кръвта прави проблеми. С други плъгини от този форум и от /// Блокиран текст/линк [НЕЖЕЛАН САЙТ] /// инфото няма никакви проблеми.

Не разбирам. Дали проблемът не е, защото липсва нещо в кодът или защото кодът е твърде кратък и не може да го компилира.

Ще се радвам да тествате и вий да разбера от къде е проблема.

Аз залагам 80%, че проблемът е в това, че плъгина е твърде кратък и другите 20%, че на кодът му липсва нещо.

Добавено преди 1 минута 38 секунди:
Ако желае някой и много ще се радвам да направи подобен плъгин с кратък код отново, за да опитам да компилирам. Дали пък проблемът не е, защото го пиша от мой компютър. Нз вече..

Добавено преди 7 минути 36 секунди:
Ето пък тука мой код по малко различен начин:

Код за потвърждение: Избери целия код

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Extra"
#define VERSION "1.0"
#define AUTHOR "Marinovv"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /kruv", "give_hp")
	register_clcmd("say /bronq", "give_armor")
}

public give_hp(id) {
new 100 = get_user_health(id)
set_user_health(id, 100 + 50)
}

public give_armor(id) {
	new 100 = get_user_armor(id)
	set_user_armor(id, 100 + 50)
}
Грешка при компилиране:

Код за потвърждение: Избери целия код

//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// extra.sma
// E:\Program Files\Counter-Strike\cstrike\addons\amxmodx\scripting\extra.sma(20) : error 020: invalid symbol name ""
// E:\Program Files\Counter-Strike\cstrike\addons\amxmodx\scripting\extra.sma(22) : warning 204: symbol is assigned a value that is never used: ""
// E:\Program Files\Counter-Strike\cstrike\addons\amxmodx\scripting\extra.sma(25) : error 020: invalid symbol name ""
// E:\Program Files\Counter-Strike\cstrike\addons\amxmodx\scripting\extra.sma(27) : warning 204: symbol is assigned a value that is never used: ""
//
// 2 Errors.
// Could not locate output file E:\Program Files\Counter-Strike\cstrike\addons\amxmodx\scripting\compiled\extra.amx (compile failed).
//
// Compilation Time: 0,27 sec
// ----------------------------------------

Press enter to exit ...
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Как се пише Pawn плъгин

Мнение от LoShIaA » 14 Фев 2018, 10:14

Вече се обърках с тези теми кодът ти в предното ти мнение се компилира отново без грешки http://prntscr.com/iehv6m, но този в последното ти мнение явно е грешен, разбиращите ще кажат.

Грешката е в декларирането на променливата.
Името на променливата не може да съдържа специални символи. Променливите не могат да започват с цифра, но могат да започват с долна черта _

Код за потвърждение: Избери целия код

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Extra"
#define VERSION "1.0"
#define AUTHOR "Marinovv"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /kruv", "give_hp")
	register_clcmd("say /bronq", "give_armor")
}

public give_hp(id) {
	new currentHealth = get_user_health(id)
	set_user_health(id, currentHealth + 50)
}

public give_armor(id) {
	new currentArmor = get_user_armor(id)
	set_user_armor(id, currentArmor + 50)
}
Edit: ще добавя нещо за да разбереш за него.
Защо се използва тази функция cs_set_user_armor, а не както беше в предишния код set_user_armor. Каква е разликата?
Правилно е cs_set_user_armor, тъй като може да се избере за каква броня става дума (в случая vest+helmet).
Ето и въпросната тема да разбереш за какво говоря. viewtopic.php?f=53&t=2655&p=14226#p14226

Аватар
Marinovv
Извън линия
Потребител
Потребител
Мнения: 511
Регистриран на: 19 Сеп 2017, 10:01
Местоположение: България
Се отблагодари: 530 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Как се пише Pawn плъгин

Мнение от Marinovv » 14 Фев 2018, 11:58

А разбрах къде е проблема. Проблема е бил, че на мястото на 100 в моя случай , където пишех трябва да е current.

Ми те в уроците това не го обясняват. Къде спят не знам. Много благодаря LoShIaA.
Иван Маринов,

лицензиран оператор и пилот на професионални дронове клас C1 за всички държави в EU.

DJI Mavic 3 Classic | DJI Mavic 3 PRO - погледни света от различна перспектива.

Последвайте ме във Facebook

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как се пише Pawn плъгин

Мнение от OciXCrom » 14 Фев 2018, 21:04

То се подразбира. Иначе веднага да ти кажа, че няма нужда да ползваш променливата current щом я ползваш само един път. Вместо това:

Код за потвърждение: Избери целия код

new currentHealth = get_user_health(id)
set_user_health(id, currentHealth + 50)
Може да го направиш така:

Код за потвърждение: Избери целия код

set_user_health(id, get_user_health(id) + 50)
Не е никакъв проблем, обаче по този начин кодът е оптимизиран. Променлива ще ти трябва ако ползваш стойността повече от един път, демек вместо да ползваш get_user_health, по-бързо е да запазиш стойността в променлива.

Код за потвърждение: Избери целия код

new currentHealth = get_user_health(id)

if(currentHealth < 100)
    set_user_health(id, currentHealth + 50)

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 8 госта