Re: Скриптинг курилка -
truefail - 06.06.2012
Quote:
Originally Posted by Baks
Сложность скорее не в написании, а в самой идеи. Сам, иногда, продумываю игровой режим неделями, после чего за несколько ночей реализовываю.
|
Согласен. Вот я вроде что-то могу писать, и хочу писать, да только идей нет
Re: Скриптинг курилка -
White_116 - 06.06.2012
создай 2д движок на основе ТекстДрав-ов.
Re: Скриптинг курилка -
Mutha_X - 06.06.2012
Кстати, спасибо за идею xD
Re: Скриптинг курилка -
Evansive - 06.06.2012
Quote:
Originally Posted by truefail
Как бы могу, но это долго и муторно. Не проще ли сначала поискать?
|
В старых модах ( gf, pen ) и их новых модификациях столько багов, что ты быстрее с нуля напишешь.
Re: Скриптинг курилка -
truefail - 07.06.2012
Вообще зря вы мой пост сюда запихнули. Я ищу
сервер, а не мод, причём желательно с хорошим онлайном (ну про это я забыл сказать, сорри).
Re: Скриптинг курилка -
Fill - 07.06.2012
Quote:
Originally Posted by truefail
Вообще зря вы мой пост сюда запихнули. Я ищу сервер, а не мод, причём желательно с хорошим онлайном (ну про это я забыл сказать, сорри).
|
ну для этого вы точно не по адресу, есть много сайтов-мониторингов, там ищите
Re: Скриптинг курилка -
Be$$0n - 07.06.2012
Заинтересовал вопрос, например:
Есть массив:
pawn Код:
new Float:Massiv[][] = {
{0.0,1.1,2.2},
{3.3,4.4,5.5},
{6.6,7.7,8.8},
{9.9,10.10,11.11}
};
Вызываю его так:
pawn Код:
new string[50];
for(new i=0;i<50;i++)
{
format(string,sizeof string,"X: %f Y: %f Z: %f",Massiv[i][0],Massiv[i][1],Massiv[i][2]);
SendClientMessage(playerid, -1, string);
}
Как узнать когда массив достиг конца?{9.9,10.10,11.11}
P.S Цикл для примера стоит, но принцип тот же
P.S.S Про количество интеграций тоже не говорите, для примера же
Вопрос решил, а именно:
pawn Код:
printf("Количество координат: %d",sizeof(Massiv));
Re: Скриптинг курилка -
Stepashka - 07.06.2012
pawn Код:
new string[50];
for(new i=0; i < sizeof(Massiv); i++)
{
format(string,sizeof string,"X: %f Y: %f Z: %f",Massiv[i][0],Massiv[i][1],Massiv[i][2]);
SendClientMessage(playerid, -1, string);
}
ЗЫ
учите матчасть!
Re: Скриптинг курилка -
Be$$0n - 07.06.2012
Да, спасибо, методом экспериментов нашел ответ
Re: Скриптинг курилка -
OKStyle - 07.06.2012
Насколько я помню, в многомерных массивах может возвращаться неверный размер при sizeof...
Re: Скриптинг курилка -
OKStyle - 11.06.2012
Да, ставь несуществующую иконку с прозрачным цветом и опцией - "установить чекпоинт".
Re: Скриптинг курилка -
raider19rus - 11.06.2012
А такой чекпоинт сработает в OnPlayerEnterCheckpoint ?
И как ето контролировать ?
Re: Оптимизация кода -
Querydus - 11.06.2012
Код:
stock GetConnectedPlayers()
{
new connectedplayers;
for(new playerid; playerid < GetMaxPlayers() + 1; playerid++)
{
if(IsPlayerConnected(playerid))
{
connectedplayers++;
}
printf("Checking player %i for `connected`...", playerid);
}
printf("Connected players: %i.", connectedplayers);
return connectedplayers;
}
Что будет, если я буду данную функцию (ну или сток) использовать в циклах, вместо MAX_PLAYERS (например)?
Re: Оптимизация кода -
eakwarp - 11.06.2012
Quote:
Originally Posted by Querydus
Код:
stock GetConnectedPlayers()
{
new connectedplayers;
for(new playerid; playerid < GetMaxPlayers() + 1; playerid++)
{
if(IsPlayerConnected(playerid))
{
connectedplayers++;
}
printf("Checking player %i for `connected`...", playerid);
}
printf("Connected players: %i.", connectedplayers);
return connectedplayers;
}
Что будет, если я буду данную функцию (ну или сток) использовать в циклах, вместо MAX_PLAYERS (например)?
|
Будет сервер работающий со скоростью протухшей блевотины обезьяны.
Re: Скриптинг курилка -
OKStyle - 11.06.2012
Quote:
Originally Posted by ru.raider
А такой чекпоинт сработает в OnPlayerEnterCheckpoint ?
И как ето контролировать ?
|
Не проверял, кстати. Скорее всего нет. Контролировать можно функцией проверки на нахождение в радиусе иконки (с учётом высоты).
Re: Оптимизация кода -
raider19rus - 12.06.2012
Quote:
Originally Posted by Querydus
Код:
stock GetConnectedPlayers()
{
new connectedplayers;
for(new playerid; playerid < GetMaxPlayers() + 1; playerid++)
{
if(IsPlayerConnected(playerid))
{
connectedplayers++;
}
printf("Checking player %i for `connected`...", playerid);
}
printf("Connected players: %i.", connectedplayers);
return connectedplayers;
}
Что будет, если я буду данную функцию (ну или сток) использовать в циклах, вместо MAX_PLAYERS (например)?
|
Не проще ли сразу использовать в циклах
GetMaxPlayers()+1 вместо
MAX_PLAYERS ?
Re: Оптимизация кода -
eakwarp - 12.06.2012
Quote:
Originally Posted by ru.raider
Не проще ли сразу использовать в циклах GetMaxPlayers()+1 вместо MAX_PLAYERS ?
|
Изучите работу цикла for. Я бы послал вас на матчасть, но бестолку. В предложенном варианте
GetMaxPlayers()+1 будет вызываться каждый прогон цикла, еще и через идиотскую функцию. Ничего более ущербного в сампе пока не придумали.
Re: Скриптинг курилка -
DANGER1979 - 12.06.2012
самп в лог пишет такое с каких пор?
что бы это могло значить?
[23:47:37] Warning: PlayerDialogResponse PlayerId: 29 dialog ID doesn't match last sent dialog ID
если перевести
[23:47:37] Предупреждение: PlayerDialogResponse PlayerId: 29 диалогов ID не соответствует последний раз посланному диалогу ID
значит ли это что кто то пытался вызвать диалог с несуществующим ИД?
Т.к. вроде после этого сервер крашанул.
Лечиться такая фигня думаю так
if(dialogid < -1 || dialogid >= 32767) return 1;
if(!strlen(caption) || strlen(caption) > 64 || !strlen(info) || !strlen(button1)) return 1;
if(strlen(inputtext))
{
for(new i=0; i<strlen(inputtext); i++)
{
switch(inputtext[i])
{
case '0' .. '9': { continue; }
case 'A' .. 'Z': { continue; }
case 'a' .. 'z': { continue; }
default:
{ //если символы отличны от 'A' .. 'Z' || 'a' .. 'z' || '0' .. '9'
return 1;
}
}
}
}
Re: Скриптинг курилка -
Stepashka - 12.06.2012
Ну вообще перевод немного не точный, точный: Диалог ID 29 не соответствует последнему посланному ID диалога.
Ну ни как не 29 диалогов))))
А в твою проверку фейковый ИД попадает.
Лучшая защита это помимо того что ты отправляешь ИД клиенту, сохраняй его на сервере, и проверяй при приходе ответа, если не соответствует или на сервере вообще не было ничего записано - клиент прислал фейк.
Re: Скриптинг курилка -
DANGER1979 - 12.06.2012
29 это ИД игрока, а не диалога
у меня стоит ещё такая проверка для проверка на подмену диалогов всякими читами
if(GetPVarInt(playerid, "gShowDialog") != dialogid && dialogid != -1 && dialogid < 1000)
{
SendClientMessage(playerid, COLOR_RED, " dialogid не соответствует запрошенному !");
Log(ERROR, "Error: dialogid не соответствует запрошенному"); }
//return 1;
}
но она просто для информирования