SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



Re: Скриптинг курилка - Logon - 07.02.2013

Quote:
Originally Posted by stabker
Посмотреть сообщение
eakwarp, Logon имеет ввиду статичные объекты, из обычных интерьеров игры.

Logon, у меня тоже самое, если ходить с интерьера в интерьер. Иногда даже Warning выскакивает, не знаю с чем это связано.
Да-да, именно так и происходит, иногда тоже Warning.
Ну ладно, баг так баг.
Спасибо eakwarp


Re: Скриптинг курилка - Stepashka - 07.02.2013

Quote:
Originally Posted by DrSlett
Посмотреть сообщение
Интересно, зачем ставить 1000 мс, если можно выставить 1 и будет немедленно кикать, функция таймера идет по очереди в коде, она же не высокоприоритетная (или как её там) как кик, долго смеялся когда ещё предложили использовать 500 мс.

Предлагаю свой вариант, кикает без задержки:
PHP код:
#define KickEx(%0) SetTimerEx("KickPlayer", 1, 0, "d", %0)
forward KickPlayer(playerid);
public 
KickPlayer(playeridKick(playerid); 
Использование: KickEx(playerid);
Если внимательно следить за сообщениями, а не тупо понтоваться, то станет понятно что "какое-то" время стоит для 100% срабатывания! В виде того что не у всех даже 500 срабатывает корректно.
И от вашего макроса попахивает тем что это не KickEx, до приставки не дотягивает дополнительным функционалом.
А ещё секундную задержку вы не заметите.

PS http://forum.sa-mp.com/showthread.ph...91#post2357891


Re: Скриптинг курилка - DrSlett - 07.02.2013

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Если внимательно следить за сообщениями, а не тупо понтоваться, то станет понятно что "какое-то" время стоит для 100% срабатывания! В виде того что не у всех даже 500 срабатывает корректно.
И от вашего макроса попахивает тем что это не KickEx, до приставки не дотягивает дополнительным функционалом.
А ещё секундную задержку вы не заметите.

PS http://forum.sa-mp.com/showthread.ph...91#post2357891
Тестировали с разными пингами (> 250), всё работает нормально.
Ну и какую приставку мне тогда писать? может вообще aKick или тому подобный бред? смешно же. Как мне удобно, так и написал.


Re: Скриптинг курилка - frog163 - 07.02.2013

Quote:
Originally Posted by DrSlett
Посмотреть сообщение
Интересно, зачем ставить 1000 мс, если можно выставить 1 и будет немедленно кикать, функция таймера идет по очереди в коде, она же не высокоприоритетная (или как её там) как кик, долго смеялся когда ещё предложили использовать 500 мс.

Предлагаю свой вариант, кикает без задержки:
PHP код:
#define KickEx(%0) SetTimerEx("KickPlayer", 1, 0, "d", %0)
forward KickPlayer(playerid);
public 
KickPlayer(playeridKick(playerid); 
Использование: KickEx(playerid);
Куй писал, что кик теперь стал быстрее (кол-во пакетов сократили.. думаю это как-то связанно) и обрывает связь с сервером до того, как клиенту придут пакеты с предыдущей ф-ей.
Так вот, скорость передачи пакетов зависит от пинга, тестил ты конечно же на локальном сервере и не удивительно, что тебе хватило ~25ms (да да, не 1, а >20, ведь таймеры в сампе(или pawn..) не умеют быть такими короткими) для отправки сообщения. 1000ms - 100% вариант, я бы поставил ~250

ps: мне например, на локальном сервере, не хватило этого времени

upd: тьфу, опоздал
Quote:
Originally Posted by DrSlett
Посмотреть сообщение
Тестировали с разными пингами (> 250), всё работает нормально.
Ну и какую приставку мне тогда писать? может вообще aKick или тому подобный бред? смешно же. Как мне удобно, так и написал.
Даже так.. Ну не работает она, сработало минимум на 50ms


Re: Скриптинг курилка - frog163 - 07.02.2013

Quote:
Originally Posted by ParanoidZ
Посмотреть сообщение
Доброе время суток, подскажите что тут неправильно почему когда у меня вот такое:

Код:
function OnPlayerText(playerid, text[])
{
    if (Mute[playerid] == false)
    {
        new name[MAX_PLAYER_NAME];
        format(name, sizeof(name), "%s [ID: %d]", Player[playerid][pName], playerid);
        SetPlayerName(playerid, name);
        SendPlayerMessageToAll(playerid, text);
        SetPlayerName(playerid, Player[playerid][pName]);
        return false;
    }
    return true;
}
Выходит вот такое

А не [ID: 0] Hello World
Код:
function OnPlayerText(playerid, text[])
{
	if (Mute[playerid] == false)
	{
		new str[144];
		format(str, sizeof(str), "{%h}%s [ID: %d]: {ffffff}%s", GetPlayerColor(playerid) >>> 8, Player[playerid][pName], playerid, text);
		SendClientMessageToAll(-1, str);
		return false;
	}
	return true;
}



Re: Скриптинг курилка - raider19rus - 07.02.2013

Всем привет.

При выключении сервера в логе пишет такую ошибку:
Код:
[19:19:24] [debug] Server recieved an interrupt signal
[19:19:24] [debug] System backtrace:
[19:19:24] [debug] #0  00ed0a2d in ?? () from D:\data\raidpro\raider19rus\GTAPRO\RolePlay\server\plugins\crashdetect.dll
[19:19:24] [debug] #1  00ed2244 in ?? () from D:\data\raidpro\raider19rus\GTAPRO\RolePlay\server\plugins\crashdetect.dll
[19:19:24] [debug] #2  7c87643c in GetConsoleCharType () from C:\WINDOWS\system32\kernel32.dll
[19:19:24] [debug] #3  7c80b713 in GetModuleFileNameA () from C:\WINDOWS\system32\kernel32.dll
[19:19:25] --- Server Shutting Down.
С чем это может быть связано?


Re: Скриптинг курилка - eakwarp - 07.02.2013

Quote:
Originally Posted by ru.raider
Посмотреть сообщение
Всем привет.

При выключении сервера в логе пишет такую ошибку:
Код:
[19:19:24] [debug] Server recieved an interrupt signal
[19:19:24] [debug] System backtrace:
[19:19:24] [debug] #0  00ed0a2d in ?? () from D:\data\raidpro\raider19rus\GTAPRO\RolePlay\server\plugins\crashdetect.dll
[19:19:24] [debug] #1  00ed2244 in ?? () from D:\data\raidpro\raider19rus\GTAPRO\RolePlay\server\plugins\crashdetect.dll
[19:19:24] [debug] #2  7c87643c in GetConsoleCharType () from C:\WINDOWS\system32\kernel32.dll
[19:19:24] [debug] #3  7c80b713 in GetModuleFileNameA () from C:\WINDOWS\system32\kernel32.dll
[19:19:25] --- Server Shutting Down.
С чем это может быть связано?
Покажите OnGameModeExit и желательно GetConsoleCharType GetModuleFileNameA


Re: Скриптинг курилка - raider19rus - 07.02.2013

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Покажите OnGameModeExit и желательно GetConsoleCharType GetModuleFileNameA
В OnGameModeExit ничего.


Re: Скриптинг курилка - eakwarp - 07.02.2013

Quote:
Originally Posted by ru.raider
Посмотреть сообщение
В OnGameModeExit ничего.
return 0 может?
Может в фльтрскрипте каком нибудь?


Re: Скриптинг курилка - Makar93 - 07.02.2013

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Покажите OnGameModeExit и желательно GetConsoleCharType GetModuleFileNameA
Quote:

7c87643c in GetConsoleCharType () from C:\WINDOWS\system32\kernel32.dll
Как их достать то оттуда? )


Re: Скриптинг курилка - GameMan - 11.02.2013

Есть ли Pawn Compiler совместимый с SA-MP скриптами для Linux?


Re: Скриптинг курилка - dimonml - 11.02.2013

Quote:
Originally Posted by GameMan
Посмотреть сообщение
Есть ли Pawn Compiler совместимый с SA-MP скриптами для Linux?
Нет, используй штатный из виндовой поставки через wine


Re: Скриптинг курилка - proSeryoga - 11.02.2013

Не кто невстрелал бары ?


Re: Скриптинг курилка - GameMan - 11.02.2013

Как получить дату из TimeStamp? Эта функция у меня используется часто.


Re: Скриптинг курилка - proSeryoga - 11.02.2013

Во чё нашёл на просторах

PHP код:
stock TimestampToDate(timestamp)
{
    new 
str[32], year 1970day 1month 1hour 0mins 0sec 0;
    new 
days_of_month[12] = { 312831303130313130313031 };        
    new 
time timestamp;
    while(
time GetSecondCountInYear(year)){time -= GetSecondCountInYear(year); year++;}    
    if(
IsVis(year)) days_of_month[1] = 29;    
    while(
time days_of_month[month 1] * 86400) {time -= days_of_month[month 1] * 86400month++;}
    while(
time 86400) {time -= 86400day++;}
    while(
time 3600) {time -= 3600hour++;}
    while(
time 60) {time -= 60mins++;}
    
sec time;
    
printf("%d-%d-%d %d:%d:%d",year,month,day,hour,mins,sec);    
}  
stock IsVis(dYear)
{
    if((
dYear == && dYear 100 != 0) || dYear 400 == 0) return true;
    else return 
false;
}
stock GetSecondCountInYear(dYear)
{
    if(
IsVis(dYear)) return 31622400//Столько секунд в високосном году
    
else return 31536000//А столько в невисокосном




Re: Скриптинг курилка - GameMan - 11.02.2013

Quote:
Originally Posted by proSeryoga
Посмотреть сообщение
Во чё нашёл на просторах

PHP код:
stock TimestampToDate(timestamp)
{
    new 
str[32], year 1970day 1month 1hour 0mins 0sec 0;
    new 
days_of_month[12] = { 312831303130313130313031 };        
    new 
time timestamp;
    while(
time GetSecondCountInYear(year)){time -= GetSecondCountInYear(year); year++;}    
    if(
IsVis(year)) days_of_month[1] = 29;    
    while(
time days_of_month[month 1] * 86400) {time -= days_of_month[month 1] * 86400month++;}
    while(
time 86400) {time -= 86400day++;}
    while(
time 3600) {time -= 3600hour++;}
    while(
time 60) {time -= 60mins++;}
    
sec time;
    
printf("%d-%d-%d %d:%d:%d",year,month,day,hour,mins,sec);    
}  
stock IsVis(dYear)
{
    if((
dYear == && dYear 100 != 0) || dYear 400 == 0) return true;
    else return 
false;
}
stock GetSecondCountInYear(dYear)
{
    if(
IsVis(dYear)) return 31622400//Столько секунд в високосном году
    
else return 31536000//А столько в невисокосном

Спасибо, но я уже нашел функцию намного быстрее этой.
UPD: FUUUUU!! Но та функция криво работает.
Мне нужна быстрая и работающая функция. А что если получать данные с PHP страницы HTTP запросом?


Re: Скриптинг курилка - dimonml - 11.02.2013

Оригинально примерно на столько, на сколько тут проскакивала мысль получать это из mysql базы sql запросом


Re: Скриптинг курилка - =KempeR= - 11.02.2013

Quote:
Originally Posted by GameMan
Посмотреть сообщение
Спасибо, но я уже нашел функцию намного быстрее этой.
UPD: FUUUUU!! Но та функция криво работает.
Мне нужна быстрая и работающая функция. А что если получать данные с PHP страницы HTTP запросом?
Инклуд mxDate в помощь


Re: Скриптинг курилка - Dreik - 11.02.2013

Друзья, следующая ситуация:

Вхожу в режим спектатора в колбеке OnPlayerRequestClass, выхожу из режима спектатора при нажатии на определённый текстдрав(созданный для игрока) и сразу выбрасывает с сервера. В чём может быть загвоздка ?


Re: Скриптинг курилка - Nikid - 12.02.2013

Quote:
Originally Posted by Dreik
Посмотреть сообщение
Друзья, следующая ситуация:

Вхожу в режим спектатора в колбеке OnPlayerRequestClass, выхожу из режима спектатора при нажатии на определённый текстдрав(созданный для игрока) и сразу выбрасывает с сервера. В чём может быть загвоздка ?
В коде