Изучение SourcePawn

Тема в разделе "Программирование / Скриптинг", создана пользователем KrasPvP, 11 ноя 2014.

  1. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    Добрый день, форумчане!
    Проблема вот в чем: друг создал сервер на игровом хостинге. Мод - дедран, 16 слотов.
    Я решил ему помочь материально - платить половину за оплату сервера. Все нормально, он меня подключил к системе всей, я получается тоже админ. Но проблема в том, что ни он, ни я не знаем языки программирования, не работали с сервером, плагинами... Максимально, я знаю паскаль по школьной базе, я в 11 и изучаем до сих пор. Друг же начинает разбираться с сервером, настраивает, немного ковыряется, скины меняет... Потихоньку-помаленьку двигается... Но возникла проблема с шопом, випом, для настройки надо знать как их писать\исправлять, но никто из нас не знает как. И я решил взяться за изучение плагинов, их создание. На вашем форуме столкнулся с темой "Введение в SourcePawn программирование", не читал, решил спросить на форуме совета. Стоит ли начать изучение SourceSpawn? Смогу ли я полноценно на нем писать плагины (шоп, вип, редактировать даже)? Какой компилятор\редактор нужен? Я хотел изучать Си, но очень большая проблема с компиляторами возникла и с ИДЕ, не компилировалось, не писалось... В принципе, я понимаю логику Си, паскаля, поэтому смог бы понять и павн.

    И, дабы были ответы развернутые, понятные, перечислю вопросы еще раз:

    1. Какие языки программирования надо, нужно и желательно знать, для полноценного написания или хотя бы редактирования плагинов для Counter-Strike: Source сервера?

    2. Пойдет ли SourcePawn для этого? Какой компилятор использовать для него?

    3. Что посоветуете по литературе, сайтам?

    4. Где найти примеры кода плагинов с комментариями?

    Люди! Так же актуален и пост в комментариях: http://hlmod.ru/forum/showpost.php?p=164977&postcount=5

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Новое обсуждение! - http://hlmod.ru/forum/showpost.php?p=166298&postcount=32 (комментарий от 24 ноября 2014 года)
     
    Последнее редактирование: 24 ноя 2014
  2. Хитрый_Ёжик

    Хитрый_Ёжик

    Сообщения:
    281
    Симпатии:
    94
    1. В основном все плагины пишутся либо на Python, либо SourcePawn.
      Python на много лучше SourcePawn, но, к сожалению, EventScripts уже морально устарел и от него больше проблем чем пользы.
      Также можно писать плагины под сами сервера или Metamod, но тут уже нужны знания C/C++ да и геморройно это.
      "Учить" SourcePawn намного легче, а так же большинство плагинов написаны именно на нем.
    2. Идет в комплекте с SourceMod (addons/sourcemod/scripting/spcomp.exe)
    3. Лучшая литература - оф форум, оф вики и оф апишечка, ссылки на которые можешь найти на оф сайте: http://www.sourcemod.net/
      У них в вики вроде бы были статьи на русском языке...
      Также тут есть такая тема: http://hlmod.ru/forum/programmirovanie-skripting/257-vvedenie-v-sourcepawn-programmirovanie.html
    4. http://www.sourcemod.net/plugins.php или у них на форуме (будь осторожен, там есть ещё раздел для CS 1.6).
     
    KrasPvP нравится это.
  3. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    Спасибо! Получается, из Вашей цитаты такие выводы:
    1. Учить павн
    2. Учить его на оф сайте
    3. Смотреть плагины так же на оф сайте :)
     
  4. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.052
    Симпатии:
    345
    Если хочется Python используй Source.Python.
     
  5. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    Люди! Один друг мне сказал такое: Пав будешь учить около года. И если выучишь, шоп\вип и плагины готовые редактировать не сможешь. Т.к. они без исходников. а что с исходниками - фигня полная. И если попытаешься написать сам плагин шопа\випки или чего еще крупного - не сможешь.

    Правда ли? Я аж засомневался в том, что смогу и надо ли учить павн теперь...
     
  6. Хитрый_Ёжик

    Хитрый_Ёжик

    Сообщения:
    281
    Симпатии:
    94
    Скажем так, в данный момент это не самое здравое решение.

    ИМХО: Павн ♥♥♥♥♥, но из-за отсутствия альтернатив приходится использовать его.

    О сроках обучения:
    • Во первых, в павне учить нечего и прошерстить всю документацию можно 2-3 дня, не более.
    • Во вторых, о том сколько ты будешь учить Pawn (как и любой другой язык программирования) никто не знает.
    • В третьих, просто начни.
      Лично я советую новичкам взять достаточно сложную задачу и попробовать её решить. Затем решить ещё пару-тройку других не менее сложных задач, после чего вернуться к первой и сделать её как надо.

    Шопы и випки - это отдельная тема. Русские по какой-то непонятной причине не выкладывают исходники своих плагинов (это уже другая холиварная тема). В принципе, на оф форуме есть много всего интересного на эту тему, а випку при желании можно написать минут за 30.
     
    KrasPvP нравится это.
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.511
    Симпатии:
    1.963
    Оффтоп
     
    R1KO нравится это.
  8. The Night Fury

    The Night Fury Администратор

    Сообщения:
    1.221
    Симпатии:
    914
    ОП, учи SP. Если C++/C# и им подобные не знаешь, то отчасти это поможет в последующем их изучении. SP простой, так что долго изучение времени не займёт. ES устарел, да и SM сейчас наиболее популярен => большое сообщество.

    1. Собственно, сам SourcePawn, но в связке с SourceMod (что C++, если не ошибаюсь). Можно, как уже сказали, написать и на C++, но больше времени придётся потратить. Т.к. SM сейчас наиболее популярен, то большинство плагинов написано под него => для редактирования надо иметь базовые знания SP. Вон, например, в Garry's Mod вообще lua встроен, и вполне себе работает.
    2. Зависит от задачи. В некоторых случаях приходится дописывать расширения, но костылей-велосипедов можно практически любую проблему решить.
    3. http://docs.sourcemod.net/api/, wiki там годится только для "посмотреть примеры базовых плагинов"
    4. Точно рабочие плагины находятся в этом разделе на официальном форуме: https://forums.alliedmods.net/forumdisplay.php?f=108
     
    KrasPvP нравится это.
  9. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    Спасибо всем. Значит, буду учить павн.
    Мне главное редактировать шоп\вип по исходнику, писать не сильно крупные, но свои плагины, рабочие. Как я понял, он легкий, буду учить! :) И, я люблю си, мне синтаксис понравился, но с компиляторами и ИДЕ большие проблемы, не могу компилировать. И очень это горько :(
    Еще раз спасибо! Буду учить документацию и писать свои плагины.

    Добавлено через 44 минуты
    Подскажите тогда, как компилировать плагины? Как я читал в комменте, есть spcompile, но как им компилировать? как вызывать или что-то такое?
     
    Последнее редактирование: 11 ноя 2014
  10. Konstantin

    Konstantin

    Сообщения:
    1.789
    Симпатии:
    767
  11. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
    KrasPvP, я не именя знания си, да и вообще имея абсолютный нуль в программировании полей 3-х дней ковыряний умел редактировать меню (в adminlist).
     
  12. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    Скачал соурсмод, не кинул в папку с игрой, а в папке загрузок разархивировал.

    Сейчас создал простую программу в файле llg.sp, которая содержит код:
    Код:
    #include <core>
    main() 
    {
        print("Hello World!");
        return 1; // Возвращает 1
    }
    
    перетаскиваю на compile.exe и выскакиевает ошибка

    [​IMG]

    Добавлено через 1 минуту
    Хм. Мне бы хоть компилировать научиться ))) Вот, не получается... :(
     
    Последнее редактирование: 11 ноя 2014
  13. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Оффтоп
     
  14. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
  15. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    я скопировал с википедии, с статьи о павне. думал прокатит

    Добавлено через 6 минут
    ок)) сейчас найду плагин и попробую скомпилировать снова

    Добавлено через 8 минут
    все работает... спасибо огромное! буду учить. пытаться, импровизировать!)

    Добавлено через 11 минут
    я не для развлечения хочу изучать. не на досуге и просто для фана. я подготавливаюсь к экзаменам и времени у меня не на столько много, и дабы не сделать ошибку, которая потом испортит другу сервер - нельзя такое допустить. я выбираю тчательно, рассматривая многие варианты
     
    Последнее редактирование: 11 ноя 2014
  16. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.052
    Симпатии:
    345
    Я бы не говорил так самоуверенно (потому что Source.Python это новая платформа для написаний плагинов + там версия Python обновляется, который сейчас уже 3.*) -> http://forums.sourcepython.com/
     
  17. KrasPvP

    KrasPvP

    Сообщения:
    23
    Симпатии:
    0
    Хм.... Питон на новой платформе + обновляется... Интересно :) Если пойму павн и захочу расширить познания в программировании относительно плагинов - посмотрю...

    Надеюсь, тема разгорится и будет популярна. Обожаю комментарии, очень информативно их читать, полезно :)
     
  18. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.052
    Симпатии:
    345
    Я это говорю все к тому, что считаю Python для SRCDS это довольно мощный инструмент (а очень много стандартных модулей, для которых у SourceMod нужны расширения уже поставлены + к тому же модули и ядро Python - обычные плагины, которые если что можно подправить под себя). Так как сам писал на Python и SourcePawn мне привлекательней все же показался Python.

    Добавлено через 3 минуты
    Если руки не из того место, то конечно будут проблемы. Настраивал под себя EventScripts (хотя сейчас использую в тестах Source.Python) никаких проблем не было. Даже держал сервер на EventScripts написал под себя плагины и запустил, все хорошо работало.
     
    Последнее редактирование: 11 ноя 2014
  19. Хитрый_Ёжик

    Хитрый_Ёжик

    Сообщения:
    281
    Симпатии:
    94
    Суть моего сообщения заключается в этом: "в данный момент".

    S.P ещё расти и расти, но в данный момент я бы не рекомендовал его использованию на рабочих серверах ибо проблем не оберётесь.
    В нём 30% функционала (относительно CS:S) работает криво или не работает вообще. Многие жизненно важные части не сделаны, а новую версию класса ентитей они обещают с начала лета, ровно как и поправить все косяки с glibc. Makefile'ы кривоватые, а dev билды вообще не собираются. С CS:GO проблема на проблема и де-факто поддерживается только CSS, что очень напрягает. В S.P есть ещё потрясающий баг, который неизвестно как решать и который может вылезти абсолютно где угодно (хотя для него есть временный фикс). А баг с \0 и utf8 мне нереально доставляет.

    Ну и какой-то парень из Венгрии зарегал мой ник у них на сайте, аррр :D

    Единственная игра, в которой ES работают стабильно - это HL2: MP (по крайней мере так было когда появились проблемы со всеми остальными играми). Также, по необъяснимой причине на Винде работает стабильнее чем на Линуксе, что очень бесит. Да и с CS:GO у них далеко не всё в порядке.

    ES работает стабильно только с небольшими модами/аддонами и конфликтует с SM.

    Edit:
    Дабы не уходить от темы и окончить этот спор не о чем, хотелось бы уточнить:
    Я бы не рекомендовал использовать S.P в данный момент на рабочих серверах, т.к. там на данный момент слишком много косяков.
     
  20. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.052
    Симпатии:
    345
    Не знаю, почему ты так все это аргументируешь у меня и с Source.Python и c EventScripts все нормально было. Да согласен лучше не ставить SourceMod и EventScripts, но EventScripts + SourcePython Extension = SourceMod + все его расширения (+ нестандартные расширения).
    P.S. Радует по крайне мере то, что работа с памятью в EventScripts больше возможностей имеет. А что насчет других игр (CS:GO и прочие тут уже совсем другой вопрос ...). Единственное с чем я согласен это то, что ES устарел в плане версии Python. Не даже в плане самого ES.
    Для Linux, если на то пошла тема можно использовать оптимизатор psyco (который я сам использовал во всех своих плагинах). Это исправляет проблему.