Начало работы с Pawn

В теме 14 сообщений

Человек-редиска
Активный

Начнем наш урок. Что такое павно?

Павно язык программирования используемый в SAMP для создание мода и файл скриптов(ФильтрСкриптов)!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Далее! есть в павно при скачке любого мода Include что это такое? Это файлы в котором содержатся функции, например подключения функции к моду(Павно) #include <streamer> #include <mail>. Без их подключение мод работать не будет!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Если сервер при компл павно не тянет попробуйте в начале/ в конце мода встать main(В инете)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Есть простые функции павно : print- отправляет строку в консоль сервера!

Пример: 

main()
{
	print("Hello, World!");
}

Функция - printf отправляет форматированную строку  в консоль сервера!

Для форматирования используются следующие заполнители:
%b — двоичная система счисления
%c — один символ
%d — целое число
%f — дробное число
%i — целое число
%s — строка
%x — шестнадцатеричная система счисления
%% — знак %

Пример:

Main()
{
	new x = 1;
	printf("x = %d",x);
}

                                                                                                  Авторские права функций: ziggi — blog

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Цикл- позволяет бесконечно кол-во раз выполнять одно и тоже действие!(Смотря какой while или к примеру do. while).

Например код без цикла:
 

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

SendClientMessage(Playerid,0xFFFFFFFFFF,"");

Код с циклом:

new 8;

while(a++) < 10)

{

       SendClientMessage(playerid, 0xFFFFFFFFFFFFFF,"");

}

2 явно проще, бывают несколько циклов:

while - в общих чертах будет вести цикл до бесконечности 

for -  Упрощенный вид while, действует с интервалом 

do...while -  Выполняются сначала основное потом остальное, while же идет все по порядку!

swith...case -  Какую значительную переменную поставите то и будет.

Для окончания цикла используется оператор Break

for(new a; a < 50; a++)
{
if(a == 10 && GetPlayerMoney(a) == 100) //Если у игрока под ID 10 имеется ровно 100 долларов
{
break; //Завершаем действие цикла
      }
}

Бесконечный цикл указывается через for и если не указать условие!

                                                                                              Авторские права циклов: Dymov1203

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

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


Ссылка на сообщение
Поделиться на другие сайты
Sleash
Завсегдатый
  В 1/9/2022 в 10:45, Donaldo_Farekelka сказал:

Начнем наш урок. Что такое павно?

Павно язык программирования используемый в SAMP

Читать далее...  

Прошу, в следующий раз перед созданием уроков посети гугл...

Павно - это программа для редактирования кода.

А вот уже PAWN - сам язык программирования.

+ инклуды создают из себя набор функций (нативов) только в связке с плагинами (streamer.inc + stramer.dll / .so)

А все оставшиеся инклуды - дополнения 

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


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

@glvde. Только увидел))

@Donaldo_Farekelka на будущее:

0xFF0000AA - красный цвеТ, теперь разбор:

0x - обозначение цвета вне кавычек и т.д.

FF0000 - HTML-код цвета

AA - прозрачность

ВСЁ, после икса только 8 символов

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


Ссылка на сообщение
Поделиться на другие сайты
𝙡𝙖𝙨𝙩 𝙚𝙢𝙥𝙚𝙧𝙤𝙧.
Создатель WayDev

Смешно, на самом деле, смотреть на то, как новички пытаются делать какие-либо уроки, не видя элементарных ошибок в коде и в тексте.
Не знаю, какую цель вы тем самым преследуете, но мой вам совет - прекращайте 

"(Смотря какой while или к примеру do. while).". Этот отрывок вообще убил:

 

  открыть спойлер


Убедительная просьба к автору: Вы если копируете, то копируйте хотя-бы правильно.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Cawfee
Великий Гуру
  В 1/21/2022 в 20:34, glvde. сказал:

Убедительная просьба к автору: Вы если копируете, то копируйте хотя-бы правильно.

 

Читать далее...  

Наверное, лучше попросить автора вообще воздержаться копирований, а попробовать сделать все самостоятельно: возможно, и сам что-нибудь новое для себя откроет.

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


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

Кхм, нашнем нашу беседу значит по полочкам: 

@Cawfee Согласен( не совсем )

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

А так-же были оставлены ссылки на темы(авторские права)

придраться не к чему, но люди же найдут к чему хоть и не к чему (Слово удалено системой)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@glvde. Убедительная просьба: купить мозги, если не понял перейди по ссылке основной где я взял тему, ПОЧЕМУ ИМЕННО НАДО ЕСЛИ НЕ ПОНЯЛ ИДТИ И ОБСИРАТЬ ТЕМЫ?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@Sleash`en Спасибо.

 

Отредактировано пользователем Donaldo_Farekelka

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


Ссылка на сообщение
Поделиться на другие сайты
LoX_1337
Активный
  В 1/9/2022 в 10:45, Donaldo_Farekelka сказал:

main() { print("Hello, World!"); }

Читать далее...  


Идеально. На этом пожалуй и закончим. ;)
 

  В 1/9/2022 в 10:45, Donaldo_Farekelka сказал:

Для форматирования используются следующие заполнители: %b — двоичная система счисления %c — один символ %d — целое число %f — дробное число %i — целое число %s — строка %x — шестнадцатеричная система счисления %% — знак %

Читать далее...  


Не все перечислили. 

 

  В 1/9/2022 в 10:45, Donaldo_Farekelka сказал:

Пример:

Main()
{
	new x = 1;
	printf("x = %d",x);
}
Читать далее...  


Идеальный пример. :bravo:

 

  В 1/22/2022 в 17:25, Donaldo_Farekelka сказал:

Убедительная просьба: купить мозги, если не понял перейди по ссылке основной где я взял тему, ПОЧЕМУ ИМЕННО НАДО ЕСЛИ НЕ ПОНЯЛ ИДТИ И ОБСИРАТЬ ТЕМЫ?

Читать далее...  


Вы хотя-бы понимаете часть кода которую вы написали, прежде чем кого обвинять ? 

Лучше-бы вы хоть чуть чуть прочитали основы, прежде создавать такой хлам. 2022 год на дворе, в интернете полным полно информации, даже больше чем надо, так почему-бы не воспользоваться ? Так нет, мы будем дальше создавать свои МеГаКрУтЫeМоДы которые поломаются за считанные секунды.

Отредактировано пользователем LoX_1337

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


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

На самом деле выскажу своё мнение, на счет некоторых очень крутых комментаторов, которые умеют только комментировать, человек в какой то мере все-ровно постарался, да возможно у него недостаточно навыков, и он взял код с интернета, он только учиться, но все-же, да есть адекватные комментаторы, которые указывают на ошибки, ну есть такие которым лишь бы показать своё я, какой я тру кодер, и всезнающий, за счет недостаточно опытных поднять своё самооценку, очень сильно, прям молодцы! Нет, чтобы поддержать, помочь человека, мы лучше его будет засирать, не буду говорить о ком этот весь текст, я думаю они сами поймут) 

Отредактировано пользователем danya_white

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


Ссылка на сообщение
Поделиться на другие сайты
LoX_1337
Активный
  В 1/22/2022 в 18:13, danya_white сказал:

да возможно у него недостаточно навыков, и он взял код с интернета, он только учиться, но все-же

Читать далее...  


Нету слов. Откуда берутся ваши мысли - неизвестно. 

 

  В 1/22/2022 в 18:13, danya_white сказал:

ну есть такие которым лишь бы показать своё я, какой я тру кодер, и всезнающий

Читать далее...  


Можете аргументировать свои слова ? (желательно с доказательствами)

 

  В 1/22/2022 в 18:13, danya_white сказал:

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

Читать далее...  


Так может люди не будут принимать заказы ? Сядем и будем отвечать как попугаи одно и тоже, чтобы мир полностью отупел. Вместо того чтобы хотя-бы чуть-чуть пошевелить мозгами и зайти в интернет. Действительно, хорошая идея danya_white, без вас мы бы не додумались.

Отредактировано пользователем LoX_1337

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


Ссылка на сообщение
Поделиться на другие сайты
danya_white
Старожил
  В 1/22/2022 в 18:34, LoX_1337 сказал:


Нету слов. Откуда берутся ваши мысли - неизвестно. 

 


Можете аргументировать свои слова ? (желательно с доказательствами)

 


Так может люди не будут принимать заказы ? Сядем и будем отвечать как попугаи одно и тоже, чтобы мир полностью отупел. Вместо того чтобы хотя-бы чуть-чуть пошевелить мозгами и зайти в интернет. Действительно, хорошая идея danya_white, без вас мы бы не додумались.

Читать далее...  

Не видел не одной вашей работы на этом форуме, и я же не сказал что речь идет именно о вас, просто относиться нужно с понимаем к человеку, я думаю критиковать человека, который мало в этом понимает, как говориться предложите свои варианты, а не просто напишите "Идеальный пример" как вы сделали, низко очень, я просто высказал свою позицию, согласны вы, нет, мне все-ровно честно, свои навыки нужно делом показывать, а не словами)

Отредактировано пользователем danya_white

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


Ссылка на сообщение
Поделиться на другие сайты
LoX_1337
Активный
  В 1/22/2022 в 18:43, danya_white сказал:

Не видел не одной вашей работы на этом форуме

Читать далее...  


Это имеет смысл ? Все простые работы уже есть в интернете, делать миллионную копию нет желание. Масштабные работы для публичного доступа бессмысленны. Вы действительно ничего не понимаете ? 

 

  В 1/22/2022 в 18:43, danya_white сказал:

о вас, просто относиться нужно с понимаем к человеку, я думаю критиковать человека, который мало в этом понимает

Читать далее...  


А они и не пытаются понимать. Такие личности всё время хотят на халяву. Им ваши слова, как листик на деревне, висел висел и упал. Такие элементарные вещи уже в интернете миллион лет, они проста не хотят прикладывать усилия или вы это не понимаете ? 

 

  В 1/22/2022 в 18:43, danya_white сказал:

а не просто напишите "Идеальный пример" как вы сделали, низко очень

Читать далее...  


Я его как-то оскорбил или унизил этими словами ?

 

  В 1/22/2022 в 18:43, danya_white сказал:

свои навыки нужно делом показывать, а не словами)

Читать далее...  


А кто говорил, что я хочу демонстрировать свои навыки ?

Отредактировано пользователем LoX_1337

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


Ссылка на сообщение
Поделиться на другие сайты
danya_white
Старожил
  В 1/22/2022 в 18:55, LoX_1337 сказал:


Это имеет смысл ? Все простые работы уже есть в интернете, делать миллионную копию нет желание. Масштабные работы для публичного доступа бессмысленны. Вы действительно ничего не понимаете ? 

 


А они и не пытаются понимать. Такие личности всё время хотят на халяву. Им ваши слова, как листик на деревне, висел висел и упал. Такие элементарные вещи уже в интернете миллион лет, они проста не хотят прикладывать усилия или вы это не понимаете ? 

 


Я его как-то оскорбил или унизил этими словами ?

 


А кто говорил, что я хочу демонстрировать свои навыки ?

Читать далее...  

А смысл тогда от всего этого, я думаю если вы его критикуете, то должны своё что-то предложить, а так просто ну незнаю, бредятина какая то получается)

Отредактировано пользователем danya_white

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

  • Похожий контент

    • Elvis
      От Elvis
      Настоящим информируем о начале набора сотрудников в нашу студию "AlinSA Studios". В рамках текущего проекта "VanguardRP", основанного на мотивах CRMP, мы ищем профессионалов и энтузиастов для выполнения следующих должностей:
       
      1. Технические специалисты
       
      Требования:
       
      | Базовые знания в области информационных технологий
      | Понимание структур кода и принципов работы компиляторов
      | Готовность к обучению и развитию профессиональных навыков
      | Иметь базовое представлении ЯП "Pawn" или "Kotlin" и "Java".
       
      Обязанности:
       
      | Поддержка технической инфраструктуры проекта
      | Участие в разработке и оптимизации программных решений
      | Взаимодействие с командой разработки для внедрения новых функций
       
      2. Пиар-ассистенты
       
      Требования:
       
      | Опыт работы в сфере SMM, маркетинга или PR
      | Навыки взаимодействия с аудиторией и ведения социальных сетей
       
      Обязанности:
       
      | Продвижение проекта в социальных сетях
       
      3. Дизайнеры
       
      Требования:
       
      | Наличие портфолио с примерами выполненных работ (не обязательно, желательно)
      | Владение графическими редакторами ! (Photoshop и Figma)
      | Креативность, внимательность к деталям и способность работать в сжатые сроки
       
      Обязанности:
       
      | создание графического контента для соцсетей, сайта и внутриигровых материалов
      | Разработка дизайна интерфейсов, баннеров, логотипов и иллюстраций
      | Участие в визуальном оформлении проекта
       
      4. Геймдизайнеры
       
      Обязанности:
       
      | Разработка игровых механик, правил взаимодействия и систем баланса
      | Проработка сюжета, персонажей и сценариев для создания эмоциональной связи с игроками
      | Проектирование уровней, задач и сценариев для обеспечения разнообразия игрового процесса
      | Взаимодействие с командой разработчиков, художников и звукорежиссёров для достижения согласованности элементов игры
      | Участие в тестировании прототипов, выявление проблем и балансировка игрового процесса
       
      5. Рупоры
       
      Цель роли: Обеспечить эффективное взаимодействие с целевой аудиторией, формировать положительный имидж проекта, своевременно информировать участников о новостях, обновлениях и
      мероприятиях, а также модерировать сообщества для поддержания комфортной и безопасной среды.
       
      -————————-
      Условия работы:
       
      Обучение и постоянная поддержка со стороны команды
      Гибкий график работы / удалённый формат (обсуждается индивидуально)
       
       
      Если вы заинтересованы в присоединении к нашей команде или хотите получить дополнительную информацию, обращайтесь по следующему контакту:
      Telegram: @AntonLegost
       
       
      Благодарим за внимание! Надеемся на плодотворное сотрудничество.
       
      p.s Новички приветствуются. Для пополнение портфолио и наработки опыта.
       
      С уважением,
      Команда "AlinSA Studios"
    • Kutuzov
      От Kutuzov
      Автор данного канала снимает уроки по программированию на Pawn, также скоро будет на 20 подписчиков снимать мод с нуля в samp. 
      Приглашаем всех на канал, а также особенно новичков. Даже если вы уже знаете pawn, подпишитесь пожалуйста на его канал и поддержите его.
      Автор канала не требует денег!!! Он обучает всех бесплатно!!!
      Ссылка на канал: https://www.youtube.com/@prog_samp_easy
       
      Также у него есть свой тг канал, но начнет вести его, как только будет не менее 10 подписчиков.
       Ссылка на тг канал: https://t.me/pawndevelop
       
      Всем удачи
    • Sleash
      От Sleash
      Всем доброго времени суток. Сегодня мне бы хотелось вам рассказать от таких функциях в PAWN-языке, как SetTimer и SetTimerEx.
      Сразу сделаю такое примечание: Для SetTimer и SetTimerEx можно использовать ТОЛЬКО public!!!
      SetTimer
      Итак, для начала приступим к лёгкому и пойдём по нарастающей:
      Первое, это SetTimer. Функция включает в себя 3 параметра:
      native SetTimer(funcname[], interval, repeating); funcname[] - Это название функции, по сути - название вашего pablic в кавычках.
      interval - Интервалы от вызова таймера до срабатывания pablic
                     Так же если стоит повторение таймера, то будет работать как интервал между таймерами.
                     Измеряется в миллисекундах. 1000 миллисекунд равно 1 секунде
      repating - Тут всё просто: будет ли повторяться ваша функция. Может иметь значения: true - будет выполняться повторение ИЛИ false - вызывается 1 раз.
      Давайте разберём пример для наглядности:
      forward Info(); public Info() {     SendClientMessageToAll(0xFFFFFFFF, "Наш сайт: pawno-rus.ru"); } // И теперь давайте вызовем данный таймер при запуске мода public OngameModeInit() {     SetTimer("Info", 1000*60*20, true);     return true } Давайте разберёмся по интервалу: 1000*60*20. Так как я писал ранее, что 1000 млСек = 1 сек, то: 1 сек * 60 = 1 минута; 1 минута * 20 = 20 минут.
      Таким образом данный таймер будет выводить каждые 20 минут для всех игроков на сервере в чат: "pawno-rus.ru".
       
      SetTimerEx
       
      По сути с SetTimer - всё, теперь перейдём к следующей функции: SetTimerEx:
      native SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...); Тут добавляются ещё 2 параметра:
      const format[] - формат данных для ввода в функцию. (Такие как: s, d, f);
      {Float,_}:... - переменные или значение для данных из const fromat[]
      Из данных объяснения мало что можно понять незнающему или начинающему скриптеру, поэтому давайте разберём на примере кода, который при входу даёт на авторизацию две минуты игроку:
      forward autorez(playerid); public autorez(playerid) {     if(/*проверка на то залогинился ли игрок*/)     {         SendClientMessage(playerid, 0xFFFFFFFF, "Вы были кикнуты по причине: Время на авторизацию истекло.");         Kick(playerid);         return true;     }     return true; } //Дальше уже добавлям сам таймер public OnPlayerConnect(playerid) {     SetTimerEx("autorez", 1000*60*2, false, "d", playerid);     return true; } Если первые три пункта мы уже разбирали. то начнём сразу с 4-го:
      4. Тут в кавычках надо вставлять тип данных. Наподобие функции format(output[], len, "%s %d %f", string, int, float), только без знака процента (%)
      5. Тут уже указывают сами данные, так же разберём как и предыдущий: format(output[], len, "%s %d %f ", string, int, float)
       
      Я надеюсь что кому-то помог, а если что непонятно, то спрашивайте, всегда помогу.
    • NoVate
      От NoVate
      Доброго времени суток 
       
      Многие новички задавались вопросом: "Как создать свой RP сервер?", "С чего начать разработку?", "Это сложно и я не справлюсь".
      После таких вопросов многие уходили с этой темы и оставляли её на последней полке. Некоторые брались и сталкивались с большими проблемами. И только часть из этих людей доходили до какого-то результата.
       
      Моя цель: сделать создание сервера в SA:MP проще. Чтобы каждый из тех, кто интересовался созданием сервера мог спокойно взять готовую, а что самое главное - базовую сборку и под неё уже создавать различные свои задумки. SA:MP на данный момент не особо актуален, а тем более самый обычный клиент, НО, как мне кажется, если сделать что-то невероятное, то аудитория заметит это и ей будет достаточно интересно "пощупать" данное новшество.
       
      Для тех, кто начнёт писать: "Ты видел свой код?", "Ты сделал не правильно в 777-ой строке" и так далее. Сразу отвечу, цитируя:
       
      Кому стало интересно и кто хотел бы ознакомиться со сборком - прошу в мой Github (не реклама).
      Буду делать коммиты по мере свободного времени и написании кода.
      Если есть какие-то идеи, то пишите в мой Discord сервера (не реклама), который можно будет найти на той же странице.
       
      Спасибо всем за прочтение и хорошего настроения 
    • Maxim638
      От Maxim638
      И вот снова мне приходится обращаться за помощью. Дело в клиенте уже(или кеш???) Напомню что кеш у меня модифицированный и вот я запускаю клиент, загрузочный экран прошел и я ввел пароль в поле ввода, нажал ОК, и у меня клиент завис на пару секунд и вылетел. И так повторяется постоянно, и я его переустанавливал, и пробовал перезаходить много раз. Но после каждого ввода пароля и нажимания кнопки "ок" клиент вылетает. Покопавшичь в samp.log.txt я нашел последние строки и вот такой код нашел(в спойлере). В чем дело?(добавил файл samp_log.txt чтобы полностью вы прочитали файл)
      Интересный факт: у моего друга Honor и у него оптимизация и клиент идет в 60 фпс в отличии от моего Samsung A02 на котором клиент в 20 фпс от силы,а иногда и 10, и даже 5 фпс...
       
      samp_log.txt