08:40
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: AXE, Weddew  
[Архив #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, это пример смены ника:/

mda Это пример запроса обновления записей в БД, а не смена ника. Перечитайте еще раз, что нужно 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
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua