Так же если делать очень длинные строки это просто не красиво смотрится в коде и не удобно работать с таким исходником. Но нам повезло, что есть функция add
Инфо из string.inc:
/* Adds one string to another. Last parameter different from 0, specifies
* how many chars we want to add. Function returns number of all merged chars. */
native add(dest[],len,const src[],max=0);
Синтаксис:
add ( dest[], len, const src[], [ max ] )
- dest[] - К какому массиву добавляем строку.
- len - Размер массива
- const src[] - Добавляемое сообщение ( без возможности подстановки (константа))
- [ max ] - задается длинна текста
new strtemp[100] = First Name
new strtemp2[100] = Last Name
add( strtemp, sizeof strtemp, strtemp2, sizeof strtemp2 )
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Add sting"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init ( ){
register_plugin ( PLUGIN, VERSION, AUTHOR )
register_clcmd("say /add","format_add")
}
public format_add(id){
new message[1024]
new Name[32]
get_user_name(id,Name,31)
format(message,charsmax(message),"Hello %s!!^n",Name)
if(is_user_alive(id)){
add(message,charsmax(message),"You is alive")
}else{
add(message,charsmax(message),"You is die")
}
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id,message)
/*
//Без функции add тоже самое выглядело бы так:
if(is_user_alive(id)){
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Hello %s!!^n you is alive",Name)
}else{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Hello %s!!^n you is die",Name)
}
*/
}
Описание:
Казалось бы, без этой функции на 1 строку меньше,но теперь представьте, если у вас не из двух строк формируется строка, а из хотя бы 3.
Попробуйте дописать в каждый вариант условие бот это или нет и изменить соответственно сообщение (сроку) вы сразу заметите разницу в количестве строк и удобстве составления.
Но для динамических сообщений я бы рекомендовал пользоваться функцией format, так как внутри нее можно работать с переменными.
А данную функцию использовал для работы с файлами, базы данных и так даее, тоесть с технической стороной плагина, а не для вывода сообщений.
Ах да, как это все работает:
С функциями получения имени игрока вы уже должны быть знакомы, с функцией формат тоже..
После того как мы получили имя игрока и сформировали "шапку" сообщения, ту часть которая показывается в любом случае, задаем условие живой ли игрок и в двух разных вариантах добавляем с помощью ф-ции add соответствующую строку к нашему исходному сообщению.
Ну а затем естественно выводим это дело на экран игроку.
Команда для выполнения нашей функции,если кто не читал первые статьи, say /add
Новость отредактировал Admin - 10-08-2013, 20:33
Причина: Дополнение от igas ([ max ])
задается длинна текста