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: Скриптинг курилка - Diman777 - 02.12.2015

Quote:
Originally Posted by themakar
Посмотреть сообщение
Я создаю их только тогда когда они используется, и удаляю когда не используются.
Вот при таком алгоритме как раз-таки должно быть всё в норме с системой и прочим


Re: Скриптинг курилка - Romz - 02.12.2015

Вопрос касаемо sscanf. Есть текст такого формата:
PHP код:
7.12|8.34|9.56
Пытался сделать вот так:
PHP код:
new Float:Pos[3];
sscanf("7.12|8.34|9.56;""p<|>fff"Pos[0], Pos[1], Pos[2]);
printf("%f %f %f"Pos[0], Pos[1], Pos[2]); 
но на выходе получаю:
PHP код:
7.119999 8.340000 0.000000 
то есть последнее значение из за ; определяется не верно, как данный символ исключить?

PS: По сути можно вообще не заморачиваться и удалить последний символ с помощью strdel. Но меня интересует, может как то можно сделать все это прям в самом sscanf'e?


Re: Скриптинг курилка - prineside - 02.12.2015

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
то есть последнее значение из за ; определяется не верно, как данный символ исключить?
Я бы банально заменил последний символ на \0, если это точка с запятой, а потом делал в точности так же, как сайчас в вашем примере


Re: Скриптинг курилка - Romz - 02.12.2015

Quote:
Originally Posted by prineside
Посмотреть сообщение
Я бы банально заменил последний символ на \0, если это точка с запятой, а потом делал в точности так же, как сайчас в вашем примере
Ну и все же меня интересует как это сделать с символом ;


Re: Скриптинг курилка - Mutha_X - 02.12.2015

В Си можно было бы таким образом решить проблему
PHP код:
sscanf("7.12|8.34|9.56;""p<|>fff;"Pos[0], Pos[1], Pos[2]); 



Re: Скриптинг курилка - prineside - 02.12.2015

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Ну и все же меня интересует как это сделать с символом ;
Тогда добавьте его к вертикальной черте в скобки, <|;>. Конечно, если у вас формат строк будет отличаться от того, что вы привели, то этот способ может не подойти.
На самом деле я с трудом представляю ситуацию, в которой отрезание последнего символа строки в таких случаях не подходит, раскроете секрет?


Re: Скриптинг курилка - Urukhay - 03.12.2015

Первая созданная машина принимает ID 0, или 1?


Re: Скриптинг курилка - Romz - 03.12.2015

Quote:
Originally Posted by prineside
Посмотреть сообщение
Тогда добавьте его к вертикальной черте в скобки, <|;>. Конечно, если у вас формат строк будет отличаться от того, что вы привели, то этот способ может не подойти.
На самом деле я с трудом представляю ситуацию, в которой отрезание последнего символа строки в таких случаях не подходит, раскроете секрет?
Убрать последний символ действительно подходит. Мне просто больше нравится когда ; в конце строки имеется. И кстати вариант <|;> не работает, sscanf ругался. Ладно, все же придется отказаться от данного символа, спасибо за попытку помочь.

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Первая созданная машина принимает ID 0, или 1?
ID: 1


Re: Скриптинг курилка - Urukhay - 04.12.2015

1. Как задать задержку спавна машине после взрыва?
2. Можно ли как-то исправить заходящую за "dynamic" объект камеру, при быстрой езде на машине. (При медленном движении камера не заходит за объект).


Re: Скриптинг курилка - Romz - 04.12.2015

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
1. Как задать задержку спавна машине после взрыва?
2. Можно ли как-то исправить заходящую за "dynamic" объект камеру, при быстрой езде на машине. (При медленном движении камера не заходит за объект).
1. После взрыва сохранять данные машины, удалять ее и запускать таймер по истечению какого будет машина создаваться.
2. Скорей всего никак. (Надеюсь что я ошибаюсь)


Re: Скриптинг курилка - themakar - 04.12.2015

Если разбивать мод на модули и хукать нативные паблики с какими трудностями и ошибками можно столкнуться? И на что обращать особое внимание?


Re: Скриптинг курилка - ZiGGi - 04.12.2015

Quote:
Originally Posted by themakar
Посмотреть сообщение
Если разбивать мод на модули и хукать нативные паблики с какими трудностями и ошибками можно столкнуться? И на что обращать особое внимание?
Следи за порядком выполнения, иногда это важно.


Re: Скриптинг курилка - Diman777 - 04.12.2015

Quote:
Originally Posted by themakar
Посмотреть сообщение
Если разбивать мод на модули
Желаю удачи). Из своих наблюдений очень удобно + посмотрев исходники ранее успешных проектов сампа (например GTA Paradise), пришёл к выводу, что без разбивки нет смысла вообще писать проект.


Re: Скриптинг курилка - Urukhay - 05.12.2015

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
1. После взрыва сохранять данные машины, удалять ее и запускать таймер по истечению какого будет машина создаваться.
[/I]
Нужно чтобы взорванная оставалась.


Re: Скриптинг курилка - Romz - 05.12.2015

Quote:
Originally Posted by Urukhay
Посмотреть сообщение
Нужно чтобы взорванная оставалась.
Взорванную машину оставить не возможно. Можете на месте взорваной машины создать объект разбитой машины.

ID объектов: 3593, 3594, 12957


Re: Скриптинг курилка - vampir9763 - 06.12.2015

написал небольшую функцию, для сохранения данных в бд MySQL

Код:
stock save_mysql( connection, table[], _name1[], _value1[],_name2[],_value2[] )
{
	new string[150];
	mysql_format( connection, string, sizeof( string ), "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'",table,_name1,_value1,_name2,_value2);
	mysql_pquery( connection, string, "", "" );
	return 1;
}
как думаете, сильно будет нагружать сервер, если использовать например в сохранении данных игрока? или лучше использовать один большой запрос для сохранения


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

Quote:
Originally Posted by vampir9763
Посмотреть сообщение
написал небольшую функцию, для сохранения данных в бд MySQL

Код:
stock save_mysql( connection, table[], _name1[], _value1[],_name2[],_value2[] )
{
	new string[150];
	mysql_format( connection, string, sizeof( string ), "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'",table,_name1,_value1,_name2,_value2);
	mysql_pquery( connection, string, "", "" );
	return 1;
}
как думаете, сильно будет нагружать сервер, если использовать например в сохранении данных игрока? или лучше использовать один большой запрос для сохранения
При полном сохранении аккаунта лучше конечно будет один запрос, а эта функция подойдет там, где это действительно нужно, например - обновить значение одного-двух полей, не прилагая особых усилий в постоянном написании запросов


Re: Скриптинг курилка - themakar - 06.12.2015

Helps

Конструктор ругается на длину переменной и обрезает до 31 символа, у меня же 32, можно как то это разрешить?

PHP код:
#if defined _ALS_OnPlayerClickPlayerTextDraw
    #undef OnPlayerClickPlayerTextDraw
#else
    #define _ALS_OnPlayerClickPlayerTextDraw
#endif
#define OnPlayerClickPlayerTextDraw auth_OnPlayerClickPlayerTextDraw
#if defined auth_OnPlayerClickPlayerTextDraw
    
forward auth_OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid);
#endif 
PHP код:
modules/players/player_auth.h(43) : warning 200symbol "auth_OnPlayerClickPlayerTextDra" is truncated to 31 characters
modules
/players/player_auth.h(50) : warning 200symbol "_ALS_OnPlayerClickPlayerTextDra" is truncated to 31 characters
modules
/players/player_auth.h(56) : warning 200symbol "auth_OnPlayerClickPlayerTextDra" is truncated to 31 characters 
Я так понимаю это не как не вырубить?
И нужно в любом случае обрезать название


Re: Скриптинг курилка - ZiGGi - 06.12.2015

Quote:
Originally Posted by themakar
Посмотреть сообщение
Helps

Конструктор ругается на длину переменной и обрезает до 31 символа, у меня же 32, можно как то это разрешить?

PHP код:
#if defined _ALS_OnPlayerClickPlayerTextDraw
    #undef OnPlayerClickPlayerTextDraw
#else
    #define _ALS_OnPlayerClickPlayerTextDraw
#endif
#define OnPlayerClickPlayerTextDraw auth_OnPlayerClickPlayerTextDraw
#if defined auth_OnPlayerClickPlayerTextDraw
    
forward auth_OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid);
#endif 
PHP код:
modules/players/player_auth.h(43) : warning 200symbol "auth_OnPlayerClickPlayerTextDra" is truncated to 31 characters
modules
/players/player_auth.h(50) : warning 200symbol "_ALS_OnPlayerClickPlayerTextDra" is truncated to 31 characters
modules
/players/player_auth.h(56) : warning 200symbol "auth_OnPlayerClickPlayerTextDra" is truncated to 31 characters 
Я так понимаю это не как не вырубить?
И нужно в любом случае обрезать название
Да, только укорачивать название.


Re: Скриптинг курилка - OstGot - 06.12.2015

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Да, только укорачивать название.
Не только)
Можно банальным переносом на другую строку

Пример:
pawn Код:
#if defined _ALS_OnPlayerEnter\
    RaceCheckpoint // <<
    #undef OnPlayerEnterRaceCheckpoint
#else
    #define _ALS_OnPlayerEnterRaceCheckpoint
#endif
#define OnPlayerEnterRaceCheckpoint ac_OnPlayerEnterRaceCheckpoint
#if defined ac_OnPlayerEnterRaceCheckpoint
    forward ac_OnPlayerEnterRaceCheckpoint(playerid);
#endif