Перейти к содержанию
Авторизация  
SCRIPTMAN

Команды узнать инт/мир

Рекомендуемые сообщения

SCRIPTMAN

Привет, держи команды, чтобы узнать ид интерьера и виртуального мира, удачи.

CMD:int(playerid)
{
new string[5];//в запас
format(string, sizeof(string), "Великий ID интерьера: %d", GetPlayerInterior(playerid));
SCM(playerid, 0xFFFFFFFF, string);
return true;
}

На ещё:

CMD:world(playerid)
{
new string[5];//в запас
format(string, sizeof(string), "Великий ID мира, который виртуальный: %d", GetPlayerVirtualWorld(playerid));
SCM(playerid, 0xFFFFFFFF, string);
return true;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dexter

Неужели, я подумал об этом ещё с утра, а тему увидел только сейчас Шапик, ты делаешь мой день дружище))))

 

Жирный +

Изменено пользователем Dexter

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MYSTERYMAN

, вы создали одну команду из клиента, смысл? И ещё, изучите информацию по поводу массивов и зачем они вообще нужны и за что отвечает их размерность.

А также ваш вариант форматирования весьма не верен, куда правильнее использовать вариант указаный ниже, причины его использования (Daniel_Cortez):

  • Прозрачность.
    Исключаются ситуации, в которых непонятно, каким образом рассчитывается размер форматного массива. Формула подсчёта всегда находится прямо в коде, и никуда не исчезает, в отличие от результатов, выдаваемых калькулятором.
    Поняв принципы, по которым составляется формула, можно легко прочесть саму формулу и убедиться в её корректности.
    В принципе это преимущество можно отнести и к ручному подсчёту, но только если тоже записывать размер в виде формулы, а не одним числом (например "31 + (-2 + 4) + (-2 + 11)" или "27 + 4 + 11" вместо "42").
     
  • Устойчивость к ошибкам при расчётах.
    При измерении длины строки вручную и использовании калькулятора легко допустить ошибку в расчётах. В данном методе такие ошибки исключены, т.к. вместо ручных подсчётов требуется лишь составить формулу - вся "грязная работа" с расчётами перекладывается на компилятор.
    Также при ручном подсчёте даже с использованием формулы можно изменить форматную строку, но забыть пересчитать её длину - такой тип ошибок исключается только при объявлении форматной строки в отдельном массиве и использовании оператора sizeof.
    С другой стороны, в описываемом в данном уроке методе появляется вероятность ошибки при составлении самой формулы, но такие ошибки отследить и предотвратить куда проще: нужно лишь проверить формулу на соответствие форматной строке - благо, и то, и другое всегда "под рукой", прямо в коде (см. выше).
     
  • Готовность к модификации.
    При изменении форматного текста вносить изменения в формулу нужно только при добавлении новых спецификаторов или изменении уже имеющихся.
    Для сравнения, при ручном подсчёте размер массива придётся пересчитывать при любом редактировании форматной строки.
CMD:info(playerid, params[]) {
	static const fmt_str[] = "ID Интерьера: %d ID Виртуального мира %d";
	new string[sizeof(fmt_str) + (-2 + 3) + (-2 + 10)];
	format(string, sizeof(string), fmt_str, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
	return SendClientMessage(playerid, -1, string);
}

Подсчёт производится по следующей формуле:

sizeof(fmt_str) + (-<длина специф. 1>+<макс. длина знач. 1>) + (-<длина специф. 2>+<макс. длина знач. 2>) + ... + (-<длина специф. N>+<макс. длина знач. N>) 
Изменено пользователем MYSTERYMAN
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov
@MYSTERYMAN,Может хватит? Мы все поняли что, ты "АС" в pawn, в каждой бочке затычка.
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@MYSTERYMAN,молодец, прочитал ProPawn, но мне так удобней, да и не только мне. А про твой вариант я знаю. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

@Vladimir_Kulkov, а он не прав?

, ну конечно, надо выделять память от балды.Тогда уж через strlen подсчитал бы.

Изменено пользователем Wеb
  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

@MYSTERYMAN, Ну так бы ты не сидел тут и не умничал,а наделал бы свои мануалы и готовые решение! Умничать все могут,только вот делать,не делают! Или тебе надо сообщения набить? Для чего? Если все твои сообщения ни кому не понятны,ум плещит,а толку ноль!

@Wеb,  

 

ну конечно, надо выделять память от балды.Тогда уж через strlen подсчитал бы.

 

 

Тебе тоже самое,так сделай ты готовое решение! Почему ждали когда кто то создаст тему и начнете умничать? От  всех ваших слов толку ноль,за то самое главно влесть в тему,а что за спиной не у вас самих не понятно!

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MYSTERYMAN

@Marvellous, клик

 

Существуют элементарные вещи, которые не требуют разжовывания, ибо их должен знать любой уважающий себя программист. Даже если вам всё разжевать и положить в рот - вам всё равно будет не ясно (загляните в свои темы с вопросами).

Что касается того, что вы не можете понять треминов и ответов - развивайтесь, читайте техническую литературу, технические статьи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

@MYSTERYMAN,Хоть в лоб,хоть по лбу! Для этого и есть форумы...А если тебе что то не нравиться (по твоим словам) что начальные и типо меня которые где то просят готовое решение или еще что-то,то для чего вообще заходить в те же темы которые создаются? От твоей философии ноль помощи,не видел ни одной темы где ты помог,в каждой теме философия,она не к чему поверь! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MYSTERYMAN

@Marvellous, в моих славах чего-либо связанного с философией нет, я не решаю и не анализирую мировоззренчиские вопросы, которые связаны с выработкой целостного взгляда на мир и место в нём человека ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hteppl

Тема закрыта.

Многочисленный OFFTOP.

Нарушители наказаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.