 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Архив #2] Вопросы ответы по SAMP [от 11.01.2012]
| |
| Великс | Дата: Среда, 11.01.2012, 23:37 | Сообщение # 1 |
|
Мастер джэдай
Группа:
Модераторы
Сообщений: 3931
Награды: 287
Город: Мухосранск
Репутация: 8429
Замечания: 0%
Статус: 
| [move]-= Вопрос | Ответ =-[/move]
В этой теме вы сможете получить ответы, на многие ваши вопросы по PAWN.
Новичкам:
- Внятно объясняйте вашу проблему, если вы получили ошибку, обязательно выкладывайте строки, на которые "ругается" компилятор.
- Помощь идет только по желанию пользователя, если вам человек помог вам только частично, не нужно начинать поливать его грязью.
- Возможно тип вашей проблемы уже обсуждался на форуме, воспользуйтесь поиском.
- В этой теме пользователи лишь оказывают помощь в написании кода, а не пишут его за вас. (!!!)
- Если вы хотите отблагодарить пользователя, жмите на кнопку
. (Только для продвинутых, и выше) - Если вы уже задавали вопрос, и не получили на него ответа, лучше напишите в ЛС одному, из участников группы Support, чем зафлуживать тему.
Скриптерам: - Не оскорблять новичков.
- Не флудить сообщениями, подобных "Закрой PAWNO и иди делай уроки".
- Не посылать в поиск. Юзер итак уже пришёл сюда из поиска. Если решение проблемы уже было опубликовано, то указать в какой теме
- Как можно понятней объяснять решение той, или иной проблемы, по возможности приводить примеры.
[cut=freestyle] ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ , СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ, ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ, ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ. УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА. ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ. ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ. ЛЕНАРУ ДАЙ УМА И ЛЕНУ НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ © Хасан [/cut]
Сообщение отредактировал Weddew - Понедельник, 09.06.2014, 03:17 |
| |
|
|
| Weddew | Дата: Пятница, 25.01.2013, 15:12 | Сообщение # 5731 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Fabervox) Я хочу синхронизировать передвижение игрока на одном сервере с передвижением бота на другом. Реализацией я займусь позже, когда наберусь опыта. Но сейчас мне интересно, возможно ли вообще управление ботом в реальном времени с другого сервера, пусть даже банальными MoveTo? Думаю, что это возможно, используя посредника (например хранение данных на файлах).
Добавлено (25.01.2013, 15:12) --------------------------------------------- Опишу алгоритм при использовании посредника (хранение данных в файлах) между серверами. Допустим, сервер получает координаты передвижения игрока. Эти координаты записываются в файл. Второй сервер тут же считывает эти данные и использует в своих вычислениях, в данном случае: перемещение ботов. Правда одно но, время синхронизации будет отличаться между серверами. P.S. Нет нерешаемой задачи.
www.weddew-shop.ru
Сообщение отредактировал Weddew - Пятница, 25.01.2013, 15:17 |
| |
|
|
| vadimka_skipper_ | Дата: Пятница, 25.01.2013, 16:54 | Сообщение # 5732 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 189
Награды: 1
Город: Иркутск
Репутация: 40
Замечания: 0%
Статус: 
| Народ подскажите как сделать ограничение на подключение с одного ip. к примеру 1 подключение в секунду разрешено?
Помощь в скриптинге! Продажа вкладки Hosted - 550 рублей/адрес Хостинг GTA SAMP Обмен WMR в Яндекс.Деньги
Skype - Duramar
|
| |
|
|
| Fabervox | Дата: Суббота, 26.01.2013, 00:10 | Сообщение # 5733 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 235
Награды: 1
Город: Краматорск
Репутация: 217
Замечания: 0%
Статус: 
| Цитата (vadimka_skipper_) Народ подскажите как сделать ограничение на подключение с одного ip. к примеру 1 подключение в секунду разрешено? А зачем одно в секунду.Может вообще одно или больше времени?
Weddew, а как думаете, сделать посредника прямо в памяти средствами PAWN удастся? Т.е. допустим mxINI до закрытия файла сам не записывает в файл, а держит в памяти. Если написать допустим на С/С++ простенькую виртуальную ФС то именно то и получится. [off]Но сам я в таких языках пока не разбираюсь, так что игровая идея уйдет в долгий ящик,а он у меня и так забитый [/off]
Я ещё спрашивал несколько страниц назад о зонах. Можно ли создать примером прямоугольную зону и фиксировать не только наличие в ней игрока, но и расстояние от границы до игрока если он находится по определенную сторону от игрока? Ну и как в общих чертах это сделать. Понятно что можно все чисто математически сделать, но может вы знаете какие-то подходящие калбеки и/или функции.
RP в мире - как мух в сортире, а нужного чуда не видать покуда..©_Z_ Как посмотришь, сколько тысяч строчек кода, в одном файле, сразу понимаешь почему моды делают годами. Закон сохранения сложности
|
| |
|
|
| mdavid | Дата: Суббота, 26.01.2013, 01:16 | Сообщение # 5734 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 135
Награды: 0
Город: Unity Station, 16
Репутация: 112
Замечания: 0%
Статус: 
| Подскажите как сделать там чтобы команду /try можно было использовать один раз в определенное время? [cut=сама комманда] Цитата if(strcmp(cmd, "/try", true) == 0) { if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_GREY, " Âû åùå íå çàëîãèíåíû!"); return 1; } if(PlayerInfo[playerid][pMuteTime] > 1) {
return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Èñïîëüçóéòå: /try [äåéñòâèå]"); return 1; } new temptryrand = random(2); if(temptryrand == 1) { format(string, sizeof(string), "%s ïîïûòàëñÿ %s (óäà÷íî)", sendername, result);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); printf("%s", string); return 1; } else { format(string, sizeof(string), "%s ïîïûòàëñÿ %s (íå óäà÷íî)", sendername, result);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); printf("%s", string); } } return 1; } [/cut]
Мои работы: [MAP] Pool building + Bar outside. [MAP] Well Stacked Pizza Co. [MAP] Prison [MAP] NEW Bank (beta) [Map] Zombie Apocalypse in Montgomery [4SALE] [MAP] Clucking Bell at East LS Beach [MAP] Flat # 1 [MAP] Clucking Bell in San Fierro. _ Antizombie || Выживание в мире зомби
|
| |
|
|
| Fabervox | Дата: Суббота, 26.01.2013, 02:02 | Сообщение # 5735 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 235
Награды: 1
Город: Краматорск
Репутация: 217
Замечания: 0%
Статус: 
| Цитата (mdavid) Подскажите как сделать там чтобы команду /try можно было использовать один раз в определенное время? Ну допустим можно сразу после ввода и проверки игрока, добавить запись в аргумент равный id игрока массив (у которого будут создано столько аргументов, сколько у вас игроков), со временем когда он сможет вновь написать, предварительно расчитав его, а перед записью проверить соответсвие значения все того же аргумента относительно текущего времени, ну и выйти в противном случае.
И отдельно сделать при дисконекте, запись в файл(мускуль) имени этого игрока и значения (времени до которого он не сможет использовать команду), а потом обнуление(в данном случае максимальное значение текущего времени) значения аргумента. Ну и наоборот чтение из файла при конекте определенного id, и запись в соответствующий массив. Если в файле не удалось прочесть требуемую информацию, ничего не делать.
Ну и сделать ещё админскую команду бекапа всего массива в файл в виде имя игрока и значение. Если конечно нужно. Разумеется это же выполнять перед рестартом.
RP в мире - как мух в сортире, а нужного чуда не видать покуда..©_Z_ Как посмотришь, сколько тысяч строчек кода, в одном файле, сразу понимаешь почему моды делают годами. Закон сохранения сложности
|
| |
|
|
| Jigga | Дата: Суббота, 26.01.2013, 05:47 | Сообщение # 5736 |
|
Новенький
Группа:
Пользователи
Сообщений: 53
Награды: 0
Город: Владивосток
Репутация: 0
Замечания: 0%
Статус: 
| Вот у меня такой вопрос. как можно сделать чтоб игрок вошел адмдути и ему добавлялся тег A_ник игрока подскажите
|
| |
|
|
| Affliction | Дата: Суббота, 26.01.2013, 08:49 | Сообщение # 5737 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 288
Награды: 2
Город: Владивосток
Репутация: 471
Замечания: 40%
Статус: 
| Jigga, Код format(sql, sizeof(sql), "UPDATE `players` SET `Name`='%s' WHERE `ID` = %d");
|
| |
|
|
| Weddew | Дата: Суббота, 26.01.2013, 15:21 | Сообщение # 5738 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (vadimka_skipper_) Народ подскажите как сделать ограничение на подключение с одного ip. к примеру 1 подключение в секунду разрешено? Поищите в этой теме, я уже писал пример кода пользователю Steep_Nk (если не ошибаюсь).Добавлено (26.01.2013, 15:14) ---------------------------------------------
Цитата (Fabervox) Weddew, а как думаете, сделать посредника прямо в памяти средствами PAWN удастся? Т.е. допустим mxINI до закрытия файла сам не записывает в файл, а держит в памяти. Если написать допустим на С/С++ простенькую виртуальную ФС то именно то и получится. Если не ошибаюсь, то кажется можно передавать данные между серверами SAMP при помощи property, это только в том случае, если игровые сервера находятся на одной машине, также есть функции как: sendpacket и sendstring, но они к сожалению не работают в текущей версии SA:MP. Еще можно написать плагин на C/C++, который в свою очередь будет передавать данные между серверами.Добавлено (26.01.2013, 15:18) --------------------------------------------- mdavid, Код if(strcmp(cmd, "/try", true) == 0) { if(IsPlayerConnected(playerid)) { new hour, minute, second; gettime(hour, minute, second); if(hour != 12) return SendClientMessage(playerid, -1, "Команду можно использовать только в 12 часов дня!"); if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_GREY, " Au aua ia caeiaeiaiu!"); return 1; } if(PlayerInfo[playerid][pMuteTime] > 1) {
return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "Eniieucoeoa: /try [aaenoaea]"); return 1; } new temptryrand = random(2); if(temptryrand == 1) { format(string, sizeof(string), "%s iiiuoaeny %s (oaa?ii)", sendername, result);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); printf("%s", string); return 1; } else { format(string, sizeof(string), "%s iiiuoaeny %s (ia oaa?ii)", sendername, result);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); printf("%s", string); } } return 1; } Добавлено (26.01.2013, 15:21) ---------------------------------------------
Цитата (Affliction) Jigga, Код format(sql, sizeof(sql), "UPDATE `players` SET `Name`='%s' WHERE `ID` = %d"); Причем тут это?
Цитата (Jigga) Вот у меня такой вопрос. как можно сделать чтоб игрок вошел адмдути и ему добавлялся тег A_ник игрока подскажите
Код new pname[MAX_PLAYER_NAME], tmpname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, sizeof(pname)); format(tmpname, sizeof(tmpname), "A_%s", tmpname); SetPlayerName(playerid, tmpname);
www.weddew-shop.ru
|
| |
|
|
| Affliction | Дата: Суббота, 26.01.2013, 15:54 | Сообщение # 5739 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 288
Награды: 2
Город: Владивосток
Репутация: 471
Замечания: 40%
Статус: 
| Weddew, это пример смены ника:/
|
| |
|
|
| Weddew | Дата: Суббота, 26.01.2013, 16:02 | Сообщение # 5740 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Affliction) Weddew, это пример смены ника:/ Это пример запроса обновления записей в БД, а не смена ника. Перечитайте еще раз, что нужно Jigge.
www.weddew-shop.ru
|
| |
|
|
| etthan | Дата: Суббота, 26.01.2013, 19:43 | Сообщение # 5741 |
|
Новенький
Группа:
Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Замечания: 0%
Статус: 
| Кто может помочь залить мод на сервер, напишите в скайп dropexstyle. буду благодарен!
|
| |
|
|
| Maks338 | Дата: Суббота, 26.01.2013, 20:06 | Сообщение # 5742 |
|
Новенький
Группа:
Пользователи
Сообщений: 51
Награды: 0
Город: Киев
Репутация: -10
Замечания: 0%
Статус: 
| Вот тот же плагин fixes2 от Y_Less. При запуске пишет: [26/01/2013 19:48:27] fixes.plugin: Could not find function Check. [26/01/2013 19:48:27] fixes.plugin: Could not find function Check2. [26/01/2013 19:48:27] fixes.plugin: Could not find function Check3. и через 2 минуты офает сервер. Что не так?
Продам pack программ для атак серверов Samp 0.3e Skype: TopSamp Вк: vk.com/maks_drift
|
| |
|
|
| Weddew | Дата: Суббота, 26.01.2013, 20:10 | Сообщение # 5743 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (etthan) Кто может помочь залить мод на сервер, напишите в скайп dropexstyle. буду благодарен! Здесь вся информация по первичной настройке сервера.Добавлено (26.01.2013, 20:10) ---------------------------------------------
Цитата (Maks338) Вот тот же плагин fixes2 от Y_Less. При запуске пишет: [26/01/2013 19:48:27] fixes.plugin: Could not find function Check. [26/01/2013 19:48:27] fixes.plugin: Could not find function Check2. [26/01/2013 19:48:27] fixes.plugin: Could not find function Check3. и через 2 минуты офает сервер. Что не так? Не найдены функции Check, Check2, Check3. Проверьте их наличие.
www.weddew-shop.ru
Сообщение отредактировал Weddew - Суббота, 26.01.2013, 20:09 |
| |
|
|
| Maks338 | Дата: Суббота, 26.01.2013, 20:22 | Сообщение # 5744 |
|
Новенький
Группа:
Пользователи
Сообщений: 51
Награды: 0
Город: Киев
Репутация: -10
Замечания: 0%
Статус: 
| Цитата (Weddew) Не найдены функции Check, Check2, Check3. Проверьте их наличие. Что для этого сделать? Залепить в мод forward`s или new`s, я плохо шарю в павне)Добавлено (26.01.2013, 20:21) --------------------------------------------- в моде имеются форварды Check, Check2, Check3 убрал, щас посмотрю Добавлено (26.01.2013, 20:22) --------------------------------------------- нет, ошибка так-же осталась.
Продам pack программ для атак серверов Samp 0.3e Skype: TopSamp Вк: vk.com/maks_drift
|
| |
|
|
| Weddew | Дата: Суббота, 26.01.2013, 21:12 | Сообщение # 5745 |
|
Группа:
Ангел Хранитель
Сообщений: 1251
Награды: 19
Город: Казань
Репутация: 1740
Замечания: 0%
Статус: 
| Цитата (Maks338) Не найдены функции Check, Check2, Check3. Проверьте их наличие.
Что для этого сделать? Залепить в мод forward`s или new`s, я плохо шарю в павне) Добавлено (26.01.2013, 20:21) --------------------------------------------- в моде имеются форварды Check, Check2, Check3 убрал, щас посмотрю
Добавлено (26.01.2013, 20:22) --------------------------------------------- нет, ошибка так-же осталась. Не нужно было убирать прототипы. У Вас в моде не описаны функции Check, Check2, Check3. Опишите их и проблемы исчезнут.Добавлено (26.01.2013, 21:12) ---------------------------------------------
Цитата (Fabervox) Я ещё спрашивал несколько страниц назад о зонах. Можно ли создать примером прямоугольную зону и фиксировать не только наличие в ней игрока, но и расстояние от границы до игрока если он находится по определенную сторону от игрока? Ну и как в общих чертах это сделать. Понятно что можно все чисто математически сделать, но может вы знаете какие-то подходящие калбеки и/или функции. Все это возможно. Для этого нужно использовать математические вычисления.
www.weddew-shop.ru
|
| |
|
|
|
 |
|
 | |
| |
|