06.06.2012, 14:58
Скриптинг курилка
06.06.2012, 15:38
создай 2д движок на основе ТекстДрав-ов.
06.06.2012, 17:16
Кстати, спасибо за идею xD
06.06.2012, 17:24
07.06.2012, 04:50
Вообще зря вы мой пост сюда запихнули. Я ищу сервер, а не мод, причём желательно с хорошим онлайном (ну про это я забыл сказать, сорри).
07.06.2012, 06:18
07.06.2012, 13:26
Заинтересовал вопрос, например:
Есть массив:
Вызываю его так:
Как узнать когда массив достиг конца?{9.9,10.10,11.11}
P.S Цикл для примера стоит, но принцип тот же
P.S.S Про количество интеграций тоже не говорите, для примера же
Вопрос решил, а именно:
Есть массив:
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);
}
P.S Цикл для примера стоит, но принцип тот же
P.S.S Про количество интеграций тоже не говорите, для примера же
Вопрос решил, а именно:
pawn Код:
printf("Количество координат: %d",sizeof(Massiv));
07.06.2012, 13:37
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);
}
07.06.2012, 13:38
Да, спасибо, методом экспериментов нашел ответ
07.06.2012, 14:19
Насколько я помню, в многомерных массивах может возвращаться неверный размер при sizeof...
11.06.2012, 10:59
Да, ставь несуществующую иконку с прозрачным цветом и опцией - "установить чекпоинт".
11.06.2012, 11:45
А такой чекпоинт сработает в OnPlayerEnterCheckpoint ?
И как ето контролировать ?
И как ето контролировать ?
11.06.2012, 12:41
Код:
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; }
11.06.2012, 13:06
Quote:
Код:
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; } |
11.06.2012, 14:24
12.06.2012, 03:40
Quote:
Код:
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; } |
12.06.2012, 04:13
Изучите работу цикла for. Я бы послал вас на матчасть, но бестолку. В предложенном варианте GetMaxPlayers()+1 будет вызываться каждый прогон цикла, еще и через идиотскую функцию. Ничего более ущербного в сампе пока не придумали.
12.06.2012, 07:37
самп в лог пишет такое с каких пор?
что бы это могло значить?
[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;
}
}
}
}
что бы это могло значить?
[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;
}
}
}
}
12.06.2012, 07:52
Ну вообще перевод немного не точный, точный: Диалог ID 29 не соответствует последнему посланному ID диалога.
Ну ни как не 29 диалогов))))
А в твою проверку фейковый ИД попадает.
Лучшая защита это помимо того что ты отправляешь ИД клиенту, сохраняй его на сервере, и проверяй при приходе ответа, если не соответствует или на сервере вообще не было ничего записано - клиент прислал фейк.
Ну ни как не 29 диалогов))))
А в твою проверку фейковый ИД попадает.
Лучшая защита это помимо того что ты отправляешь ИД клиенту, сохраняй его на сервере, и проверяй при приходе ответа, если не соответствует или на сервере вообще не было ничего записано - клиент прислал фейк.
12.06.2012, 07:58
29 это ИД игрока, а не диалога
у меня стоит ещё такая проверка для проверка на подмену диалогов всякими читами
if(GetPVarInt(playerid, "gShowDialog") != dialogid && dialogid != -1 && dialogid < 1000)
{
SendClientMessage(playerid, COLOR_RED, " dialogid не соответствует запрошенному !");
Log(ERROR, "Error: dialogid не соответствует запрошенному"); }
//return 1;
}
но она просто для информирования
у меня стоит ещё такая проверка для проверка на подмену диалогов всякими читами
if(GetPVarInt(playerid, "gShowDialog") != dialogid && dialogid != -1 && dialogid < 1000)
{
SendClientMessage(playerid, COLOR_RED, " dialogid не соответствует запрошенному !");
Log(ERROR, "Error: dialogid не соответствует запрошенному"); }
//return 1;
}
но она просто для информирования
« Next Oldest | Next Newest »
Users browsing this thread: 10 Guest(s)