Вся активность
Лента обновляется автоматически
- Последний час
-
Daf выставил положительную репутацию ответ на вопрос: Непонятная ошибка
-
Velaras_Topow присоединился к сообществу
-
xDetik подписался на Не видно пикапы
-
Понял, а кроме того, как передвигать остров, есть еще какие-либо варианты решений этой проблемы?
- 2 ответа
-
- скриптинг crmp
- скриптинг самп
- (и ещё 9 тегов)
- Сегодня
-
Сергей Расторгуев присоединился к сообществу
-
Mad_Kast присоединился к сообществу
- Вчера
-
Краш происходит из-за того что ты используешь один и тот же baseid для нескольких машин. Плагин m_custom_sync не умеет правильно дублировать baseid, поэтому на 4-й машине клиент падает. Выдавай каждой машине уникальный baseid и newid, и регистрируй их через AddVehicleSyncModel до создания машин. Тогда всё будет работать.
- 1 ответ
-
- вопросы по скриптингу
- сан андреас
- (и ещё 4 тегов)
-
Думаю что ограничение SA-MP. Пикапы просто не отображаются далеко от карты. Поэтому на острове их не видно, а на стандартных координатах всё нормально.
- 2 ответа
-
- скриптинг crmp
- скриптинг самп
- (и ещё 9 тегов)
-
Приветствую. Сделал небольшой островок на некотором расстоянии от карты Сан-Андреса, хотел поставить там пикап, добавил пикап в мод, и после того как приехал на остров, пикап не видно. Но если на этом же пикапе поменять координаты на те, которые находятся на карте Сан-Андреса, то он становится виден. В чем может быть проблема?
- 2 ответа
-
- скриптинг crmp
- скриптинг самп
- (и ещё 9 тегов)
-
zop245 присоединился к сообществу
-
mwdev присоединился к сообществу
-
blazer присоединился к сообществу
-
Здравствуйте, знатоки Pawn. У меня возникла такая проблема, сейчас попробую расписать ее подробно: Я решил добавить в игру Real cars. Всё сделал правильно: подключил инклуд, знаю принцип добавление реал кара. Захожу в игру и вижу машину. Добавляю вторую — она тоже есть. Добавляю третью — снова всё нормально. Но когда я пытаюсь добавить четвёртую, игра крашится при входе. Не важно, какой ид авто я ставлю, менял модельки, переделал всё, но проблема остаётся. Думаю, вы сможете подсказать, как её решить. Include - m_custom_sync 1.0.0 CreateVehicleVEx(npoType, npoId, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay = 180, addsiren = 0, tc_veh = 0) { new vehicle, custom_id = -1; if(!(400 <= modelid <= 20000)) { custom_id = GetSlotVehicleModelSync(modelid); if(custom_id == -1) return print("daf top"); modelid = customVehModels[custom_id][ModelID]; } #include <m_custom-sync> #define M_CUSTOM_CustomForPlayers 1 #define M_CUSTOM_CustomForActors 1 #define M_CUSTOM_CustomForVehicles 1 public OnGameModeInit() { AddVehicleSyncModel(560, 12500); // беха AddVehicleSyncModel(560, 12600); // порш AddVehicleSyncModel(579, 12700); // хамер AddVehicleSyncModel(560, 19929); // чирик
- 1 ответ
-
- вопросы по скриптингу
- сан андреас
- (и ещё 4 тегов)
-
Продаю проект Assaultive RolePlay. В наличии: мод, вк группа с готовыми обсуждениями, сайт, почта(gmail), домен под сайт(На beget) - assaultiverp.ru 08.09.2026 (Сайт не работает в данный момент. Хоста нет). + Старые, переработанные и улучшенные правила в подарок(Старого вола). Бывший мод официального проекта WOL. Достался из рук вышки(Официально. Не украл). Цена: 7к(Возможен торг). Также остаются прошлые ники в моде, фд и т.д.(Чистились частично). Связь с со мной: vk.com/Donaldo_Farekelka - Основатель Проекта. Владелец всех хостов. Бывший(ПСЖ) Зам. Владельцев WOL при Дикси и Максиме. До этого обычный администратор. Продается в количестве - 1 штуки.
-
sanekxdz присоединился к сообществу
-
Куплю проект, нужен SA:MP Мой бюджет 5.000 Рублей. Нужно-Готовый лаунчер, Запуск через ПК и Телефон, Маппинг, Минимум 2 проработанных работ, Скины, Автомобили, Организации и так далее. Можем договорится на цену более 5.000, все будет зависеть от того какие системы и проработанность. КОПИИ ДРУГИХ ПРОЕКТОВ НЕ НУЖНЫ! Связь только через вк *ТЫК* хорошего дня
-
xwezzzx подписался на Куплю проект
-
xwezzzx изменил фотографию своего профиля
-
daddydff присоединился к сообществу
-
Пакость присоединился к сообществу
-
postgres присоединился к сообществу
- Последняя неделя
-
Всем привет, помогите кто разбирается, так как я можно сказать начинающий сделать свой КРМП, буду благодарен. Напишите либо тут либо @evreI_sigma (Мой Telegram)
-
- crmp
- san andreas
- (и ещё 8 тегов)
-
xwezzzx подписался на Kasper0
- Ещё раньше
-
@OPCODERSSSS, вам нужно отредактировать hgsystem.pwn и скомпилировать этот файл повторно - так вы получите hgsystem.amx. Далее останется только лишь загрузить новый файл с расширением amx на удаленный сервер.
- 3 ответа
-
- ошибки самп
- ошибки крмп
- (и ещё 8 тегов)
-
@_bogdan_ дело в том что в filterscripts нету hgsystem ,но он есть только на фтп,а amx файлы я редакать не умею
- 3 ответа
-
- ошибки самп
- ошибки крмп
- (и ещё 8 тегов)
-
Daf выставил положительную репутацию файл: Include - m_custom_sync
-
Cawfee выставил положительную репутацию ответ на вопрос: Ошибка компиляции
-
Daf выставил положительную репутацию сообщение в теме: [Pawn][PHP] Привязка ВК к игровому аккаунту
-
Ого, спасибо !
- 6 ответов
-
- уроки crmp
- crmp
-
(и ещё 6 тегов)
C тегом:
-
Daf выставил положительную репутацию сообщение в теме: Система полета камерой
-
Daf выставил положительную репутацию ответ на вопрос: Ошибка компиляции
-
@Cawfee Добрый вечер, вот ресурс, откуда я брал информацию. Ещё раз спасибо! Ссылка: Include - m_custom_sync - Плагины / инклуды - PAWNO-RUS.RU - Портал о PAWN скриптинге Все тоже самое, но легче.
- 4 ответа
-
- ошибка crmp
- ошибка samp
-
(и ещё 3 тегов)
C тегом:
-
Доналдо Фарекелка выставил положительную репутацию ответ на вопрос: Ошибка компиляции
-
@Daf, как насчет поделиться решением?
- 4 ответа
-
- ошибка crmp
- ошибка samp
-
(и ещё 3 тегов)
C тегом:
-
Обратите внимание на hgsystem в конце логов вам все четко написано
- 3 ответа
-
- ошибки самп
- ошибки крмп
- (и ещё 8 тегов)
-
Прописал уже все инклуды,он мне все равно вот эту дрянь ну емае other.amx other.pwn hgsystem.amx
- 3 ответа
-
- ошибки самп
- ошибки крмп
- (и ещё 8 тегов)
-
@CawfeeСпасибо за уделенное время! Я нашел решение этой задачи гораздо проще.
- 4 ответа
-
- ошибка crmp
- ошибка samp
-
(и ещё 3 тегов)
C тегом:
-
Daf выставил положительную репутацию ответ на вопрос: Ошибка компиляции
-
@Daf, а что представляет собой макрос ICustomRPC? А вообще скомпилируйте с ключиком -l и посмотрите, во что этот фрагмент кода преобразуется препроцессором.
- 4 ответа
-
- ошибка crmp
- ошибка samp
-
(и ещё 3 тегов)
C тегом:
-
Здравствуйте знатоки pawn, не знаю в чем проблема на другом моде тестил все было хорошо, а тут дич какая-то, не поможете? шо я сделал не так? Скриншот ошибки: https://yapx.ru/album/cS6du PAWN new bool: p_launcher[MAX_PLAYERS]; // В мод, ко всем переменным. ICustomRPC:568(playerid, BitStream:bs) { // Это в самый низ мода. new bool: launcher = false; BS_ReadValue(bs, PR_BOOL, launcher); p_launcher[playerid] = launcher; return 1; } Далее, где у тебя вызывается функция SetPlayerSyncModels(playerid, true); вместо true, передаёшь p_launcher[playerid] Тобишь вот так: SetPlayerSyncModels(playerid, p_launcher[playerid]);
- 4 ответа
-
- ошибка crmp
- ошибка samp
-
(и ещё 3 тегов)
C тегом:
-
Ubert выставил положительную репутацию ответ на вопрос: Копия радмира Удаления мапинга РАДМИР КОПИИи
-
KeinKotov выставил положительную репутацию сообщение в теме: Влог молодого скриптера [часть 2]
-
@Cawfee спасибо ещё раз большое, с первого раза не всё понял , но я прочту подробнее про процессоры,компиляцию,биты и байты, и ещё раз прочту, если ещё раз не пойму то прочту ещё раз. Спасибо большое за вашу помощь. Всё ваши сообщения, хоть и кажется трудно понимаемыми, я пытаюсь понять до единого слова, всё что вы мне пишете я изучаю, анализирую, тестирую. Если я что то не понял, я обязательно добьюсь того чтоб всё понять
-
@KeinKotov, SetPlayerPos ничего не понимает, это всего лишь имя функции, реализованной в библиотеке мультиплеера. Давайте сразу для себя уясним, что исходный текст, который вы пишете в своем редакторе (например, в стандартном редакторе Pawno) на языке Pawn и помещаете в файлы с расширением .pwn, должен быть скомпилирован при помощи компилятора pawncc. Заметьте: язык называется Pawn, а редактор – Pawno. Процесс компиляции есть преобразование исходных текстов, понятных человеку, в машинный код, понятный, соответственно, машине. Машиной может выступать как другая программа, которая будет обрабатывать машинный код (например, Java-машина), так и процессор. В нашей же объектной области исходные тексты компилируются в файлы с расширением .amx и выполняются так называемой amx-машиной (фактически это тоже программа, которая интерпретирует инструкции в .amx файле, а инструкции самой amx-машины выполняет уже центральный процессор вашего персонального компьютера). Элементами любого вычислительного устройства являются процессор (выполняет инструкции из оперативной памяти), оперативная память (куда загружаются программы для исполнения и данные), а также устройства ввода-вывода (клавиатура и монитор, например) для того, чтобы можно было задавать начальные данные и получать выходные. Ваш массив SpawnInfo в конечном счете будет помещен в память, а операндами исполняемых инструкций являются данные из этой памяти, что фактически обеспечивает "взятие" оттуда данных для их использования, скажем, в SetPlayerPos. Компилятор (как минимум) должен понимать, сколько места занимает ваш массив SpawnInfo (хотя бы для того, чтобы убедиться, возможно ли его разместить в памяти). Любая переменная, любой элемент массива, любой символ занимают в нашей объектной области одну ячейку. Ячейка – специфическое понятие, кое редко можно встретить в компилируемых языках программирования. Следует просто помнить, что ячейка равна четырем байтам для SA:MP и CR:MP. Давайте рассмотрим для примера следующий массив: new array[5] = {1, 2, 3, 4, 5}; Очевидно, это массив, состоящий из целых чисел (можно сказать, что тип данных элементов массива – целочисленный, но в Pawn некорректно говорить о типах данных, этот вопрос затронем позже). Размерность массива – 5 элементов. Учитывая, что каждый элемент занимает одну ячейку, то размер массива составляет 5 ячеек. Если вспомним, что размер каждой ячейки составляет 4 байта, то размер данного массива – 5*4 = 20 байтов (если вы не знакомы с понятиями бит и байт, необходимо ознакомиться, иначе дальнейший текст будет непонятен). В памяти это может иметь следующее размещение (будем считать, что слева представлен не абсолютный адрес, а относительный, то есть смещение относительно адреса начала массива в памяти): 0000: 01 00 00 00 0004: 02 00 00 00 0008: 03 00 00 00 0012: 04 00 00 00 0016: 05 00 00 00 Почему такое размещение данных в памяти? В нашем компиляторе, как и в привычных нам процессорах x86, используется формат хранения данных в памяти little-endian. Это означает, что по старшему адресу размещается старший байт числа (и, соответственно, по младшему адресу размещается младший байт числа). Поскольку число 1 в десятеричной системе счисления есть 0x00'00'00'01 в шестнадцатеричной, то младший байт 0x01 размещается по младшему адресу 00h, а старшие три байта (нулевые) размещаются по старшим адресам 01h - 03h. То же самое касается и чисел 02, 03, 04, 05. Для сравнения рассмотрим размещение в памяти следующего массива: new array[5] = {0x11223344, 0x55667788, 0x99AABBCC, 0xDDEEFF00, 0x12345678}; 0000: 44 33 22 11 0004: 88 77 66 55 0008: CC BB AA 99 0012: FF EE FF 00 0016: 12 34 56 78 Как видите, массив занимает все те же 5 ячеек (20 байтов), но теперь уже старшие байты (которые ранее были незначащими и нулевыми), играют какую-то роль. И, поскольку ячейка ограничена 4 байтами, максимальное число, которое мы можем разместить в ячейке, это 0xFF'FF'FF'FF, что равно (2^32 - 1) в десятеричной системе. Если говорить про адресацию элементов одномерного массива, то любой доступ к массиву рассматривается как "нужно взять начало массива и сместиться на N ячеек". Пока amx-машина исполняет инструкции вашего игрового мода, она понятия не имеет, есть ли в памяти массивы, или это просто набор переменных, она не знает и о размерностях массива, иными словами, amx-машина видит лишь набор данных, а что это за данные она не знает. Это связано с тем, что компилятор, когда преобразует исходные тексты в инструкции, выполняет преобразования примерно следующего вида: // исходный массив: new array[5] = {0x11223344, 0x55667788, 0x99AABBCC, 0xDDEEFF00, 0x12345678}; // ячейка, к которой вы обращаетесь в своем исходном тексте array[3] // как это обращение преобразуется компилятором (array + 3) // array - адрес начала массива, 3 - на сколько ячеек нужно сместиться вперед // таким образом, в приведенном выше примере будет осуществлен доступ к ячейке, имеющей // значение 0xDDEEFF00 Теперь рассмотрим двумерный массив, например, такой: new array[3][2] = { {11, 22}, {33, 44}, {55, 66} }; Очевидно, размер массива составляет 3х2 = 6 ячеек, или 24 байта. Доступ к ним осуществляется по формуле: array + (i * 2 + j), где i - первое измерение, j - второе. Обращаясь к элементу array[2][1], мы фактически обращаемся к ячейке (2 * 2 + 1) = 5, или к байтам (20h – 23h). В памяти элементы хранятся тоже последовательно, можете сравнить полученный расчет для array[2][1] с "дампом" памяти, и убедиться, что мы в двух случаях обращаемся к ячейке со значением 66. 0000: 11 00 00 00 0004: 22 00 00 00 0008: 33 00 00 00 0012: 44 00 00 00 0016: 55 00 00 00 0020: 66 00 00 00 Возвращаясь к вашему вопросу: Таким образом вы указываете, к каким элементам двумерного массива осуществляется обращение. Первые квадратные скобки есть индексация по одному измерению (в данном случае по строкам), вторые квадратные скобки - по другому (в данном случае по столбцам). В вашем исходном тексте в функции AddPlayerClass в первых скобках индексом по первому измерению выступала переменная, что как раз обеспечивало проход по всем строкам массива: данные из каждой строки были полезно использованы в определении классов игрока.
-
@𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧. Большое спасибо, но я не совсем поняли его использование, как SetPlayerPos поймёт что ему нужно каждый раз вставлять новое значение? Для чего [1], [2]... в начале строк?
-
Помимо того, что @Cawfee уже разобрал, особо добавить и нечего. Единственное, что могу добавить - комбинировать данные в двумерном массиве можно и работать с этим научиться можно уже сейчас. В Pawn есть tag override operator (или же оператор переопределения тега). С какой конкретно версии pawn-компилятора работает данный оператор - сказать не могу, но с 3.10.8 точно работает. Пример работы с данным оператором: // _: - tag override operator (оператор переопределения тега). // двумерный массив new SpawnInfo[6][5]= { //skins,x,y,z,f {106, _:-2165.8843, _:-266.2318, _:36.5156, _:2.5948}, // PosBand 1 {104, _:-2170.1770, _:-265.9297, _:36.5156, _:6.7320}, {123, _:-2177.6699, _:-262.9620, _:36.5156, _:271.5822}, {280, _:-2139.9097, _:-108.1546, _:35.3273, _:11.9411}, // PosCop 1 {268, _:-2145.7178, _:-108.3139, _:35.3203, _:1.5604}, {265, _:-2150.6736, _:-108.2174, _:35.3203, _:0.8293} }; // использование: SetPlayerSkin(playerid, SpawnInfo[0][0]); // значение типа integer (целое число) используем как обычно. SetPlayerPos(playerid, Float:SpawnInfo[0][1], Float:SpawnInfo[0][2], Float:SpawnInfo[0][3]); // в данном случае мы определяем тип значения. Данный оператор помогает комбинировать данные без использования лишних энумераторов.
-
CArionnSTii подписался на SAMP Mobile
-
@Cawfee Ого, спасибо большое за такое подробное объяснение. Я пытался решить эту задачу через ИИ и потерял пару часов своей жизни. В итоге я просто закинул ему код, он что то изменил и у меня всё сработало, ещё минут 20 я посидел и пытался найти то что он исправил(я случайно закрыл страницу с ИИ и тем что было и старого кода у меня не было), я искал в чем же была моя ошибка но кроме табуляции списка ничего не нашел, так и не разобравшись в чем была причина я продолжил. Теперь благодаря вам я буду знать эту на вид мелочь но столь значимую вещь
