Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер
2 страниц V   1 2

Подскажите по нативам

Статус пользователя xSav
сообщение 6.1.2014, 9:28
Сообщение #1
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Чесное слово. Смотрел гугл.. amxxmodx.ru.. Старый я уже.. недогоняю написанным там языком. Хочу в своем плагине стим бонус внедрить нативы чтобы в простой версии вип плагина для своего сервера вызывать оттуда выдачу бонусов а не писать повторно.
МОжет кто уделить 10 минут времени на написание примеров и комментариев понятным языком ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя csnet
сообщение 6.1.2014, 10:02
Сообщение #2
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

маздан это делает в своих плагинах

а вообще https://forums.alliedmods.net/showthread.php?t=41241

честно говоря сам не делал, а надо бы .

Отредактировал: csnet, - 6.1.2014, 10:05


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 6.1.2014, 10:34
Сообщение #3


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Много людей для больших плагинов делает такое.


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 6.1.2014, 17:40
Сообщение #4
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

xSav, делись, что высмотрел на amxxmodx. Возможно, использую эти 'труды' в своём маленьком гайде.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 7.1.2014, 0:07
Сообщение #5


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

вообщем читайте
когда-то так же интересовался этим вопросом
http://amxxmodx.ru/core/amxmodxinc/294-reg...ie-plaginy.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 7.1.2014, 7:02
Сообщение #6
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Ну вы бахаете.. Я в первом сообщении написал что я все что вы накидали читал в гугле уже и сайт тоже написал. А они продолжают его же приводить в примерах. Мне русским понятным языком. Может кто захочет мини faq написать ?

Отредактировал: xSav, - 7.1.2014, 8:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 7.1.2014, 7:36
Сообщение #7
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

ждем

Отредактировал: csnet, - 7.1.2014, 7:53


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 7.1.2014, 9:56
Сообщение #8


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(xSav @ 7.1.2014, 9:02) *
Ну вы бахаете.. Я в первом сообщении написал что я все что вы накидали читал в гугле уже и сайт тоже написал. А они продолжают его же приводить в примерах. Мне русским понятным языком. Может кто захочет мини faq написать ?

там написано русским языком и понятно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 7.1.2014, 10:28
Сообщение #9
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Мне непонятно. Да, вот такой тупой :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.1.2014, 20:16
Сообщение #10
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Legenda @ 7.1.2014, 2:07) *
вообщем читайте
когда-то так же интересовался этим вопросом
http://amxxmodx.ru/core/amxmodxinc/294-reg...ie-plaginy.html
Цитата(Legenda @ 7.1.2014, 11:56) *
там написано русским языком и понятно

Если вы про тот линк - то там написано непонятно, более того - рекомендуется нерекомендуемый способ регистрации, за всё время который я встречал лишь единожды.


Вот мой микрогайд. Самое необходимое, пример почти от балды.
Предположим, есть 2 плагина:
- base, выдаёт бонусы, там есть функция GetBonus(id), выдающая бонусы
- vip, который также должен выдавать бонусы с помощью плагина base

В base пишем:
Код:
public plugin_natives() {
register_library( "steambonus" )
register_native( "set_user_bonus", "_set_user_bonus" )
}

public _set_user_bonus( plugin, params ) {
new id = get_param(1)
if ( !is_user_connected(id) ) {
log_error( AMX_ERR_NATIVE, "Player %d is not connected", id )
return 0
}

GetBonus(id)
return 1
}

register_library - указываем любое имя, оно не обязательно должно совпадать с именем inc-файла.

Создаём API, которое будем включать в сторонние плагины, называем файл bonus.inc:
Код:
/* 
* 'Steam Bonus' functions API
*
*/

#if defined _steambonus_included
#endinput
#endif
#define _steambonus_included

#pragma reqlib steambonus

/*
* Get bonus to player.
*
* @index - player index
* @return - 1 on success, 0 on failure
*/
native set_user_bonus(index)

Строки с '#' пишите всегда в начале. Они предотвращают повторное включение в код одних и тех же inc-ов и указывают на необходимость наличия запущенного плагина, обеспечивающего работу сторонних натив.

В плагине vip осталось только:
Код:
#include <bonus>

// ...

public SomeFunction() {
// ...
set_user_bonus(id)
}
--

Более сложные варианты распишу по необходимости, когда будет конкретная задача.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя xSav
сообщение 8.1.2014, 8:50
Сообщение #11
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

А по поводу вот этого new id = get_param(1) можно подробнее ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 8.1.2014, 8:53
Сообщение #12
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

получение id игрока же


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 8.1.2014, 8:57
Сообщение #13
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Это мне понятно. Мне непонятно откуда оно его берет
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 8.1.2014, 9:21
Сообщение #14
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

пример на amxxmod


Код:
public  plugin_natives ( ){

register_native("get_my_info", "native_get_my_info", 1)
register_native("set_my_info", "native_set_my_info", 1)

}
public native_get_my_info(param){

return chislo

}
//Новая функция, в ней будет изменяться переменная
//Эта функция будет вызвана из второго плагина
public native_set_my_info(id,param){

chislo = param

new name[32]
get_user_name(id,name,31)
client_print(id,print_chat,"%s set chislo to %d",name,param)


}


Отредактировал: csnet, - 8.1.2014, 9:23


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 8.1.2014, 9:24
Сообщение #15
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Все равно не понял.. Ладно буду пробовать методом подбора и вывода в консоль для наглядности чтоб понять
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 8.1.2014, 9:26
Сообщение #16
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

здесь маздан поясняет

http://www.amx-x.ru/viewtopic.php?f=8&...ef&start=10


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя xSav
сообщение 8.1.2014, 10:12
Сообщение #17
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Вроде бы заработало medal.gif

Отредактировал: xSav, - 8.1.2014, 10:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xSav
сообщение 12.1.2014, 8:36
Сообщение #18
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

А как наладить обратную связь ?
Мне надо чтобы плагин vip передал в плагин base кол-во флешек у игрока
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 12.1.2014, 8:49
Сообщение #19
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Можно таким же макаром, только роли наоборот.
А возможно и без обратной связи можно обойтись, но я не знаю конкретики.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 12.1.2014, 8:49
Сообщение #20
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

return ом возвращай кол-во флешек, это для случая когда натив должен возвращать что-то.
Еще можно указать нативу записать значение в указаный параметр.

Смотри get/set_param, get/set_array, get/set_string функции AMXX.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: