 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Архив] Помощь новичкам по скриптингу ! #2
| |
| heufix | Дата: Понедельник, 28.09.2009, 02:59 | Сообщение # 1 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 995
Награды: 22
Репутация: 231
Замечания: 80%
Статус: 
| Здравствуйте, хотите научиться скриптингу? пишите сюда, помoжем!(С)[PZ]KYZ[AIR]. Старая Тема уже достаточно полна ответов, это продолжение первой темы. Убедительная просьба к Новичкам: К большому сожалению, на этом форуме экстрасенсы не сидят,поэтому убедительно просим объяснять ваш вопрос/проблему ТАК,чтобы её поняли другие участники, не забывайте приписывать ваш код к своему сообщению(в тег pwn).
Радость
|
| |
|
|
| pawman | Дата: Суббота, 16.04.2011, 21:55 | Сообщение # 3151 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| Новый Вопрос (Старый еще актуален, на него прошу тоже ответить). Как сделать команду /посадить [ID]? Интересно то, как проверять ид?
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
| Impereal | Дата: Суббота, 16.04.2011, 22:16 | Сообщение # 3152 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| pawman, Code if(strcmp(cmd, "/посадить", true) == 0) { tmp = strtok(cmdtext, idx);//В массив tmp запишется то что набрано после команды через пробел if(!strlen(tmp))return SendClientMessage(playerid, COLOR_GRAD2, "Неверное использование команды!");//Если ничего не ввел(пусто) то не возвращаем сообщение new playa;//создаем локальную переменную playa = ReturnUser(tmp);//записываем в неё обработанную строку tmp(введенную после команды),я с ГФ уже не работаю и не помню что делает эта ф-ия if(IsPlayerConnected(playa))//проверяем в игре ли введеный ид игрока { if(playa != INVALID_PLAYER_ID)//если ид игрока верный {//то выполняем //какое то действие } } return 1; }
Прощай самп-рус =Р
|
| |
|
|
| pawman | Дата: Суббота, 16.04.2011, 22:36 | Сообщение # 3153 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| Impereal, Спасибо, жаль + не могу ставить. Добавлено (16.04.2011, 22:36) --------------------------------------------- Impereal, Code if(strcmp(cmd, "/посадить", true) == 0) { tmp = strtok(cmdtext, idx);//В массив tmp запишется то что набрано после команды через пробел if(!strlen(tmp))return SendClientMessage(playerid, RED, "Неверное использование команды!");//Если ничего не ввел(пусто) то не возвращаем сообщение new playa;//создаем локальную переменную playa = ReturnUser(tmp);//записываем в неё обработанную строку tmp(введенную после команды),я с ГФ уже не работаю и не помню что делает эта ф-ия if(IsPlayerConnected(playa))//проверяем в игре ли введеный ид игрока { if(playa != INVALID_PLAYER_ID)//если ид игрока верный { SetPlayerPos(playa,-814.56,-1922.50,198.06); SendClientMessage(playa,BLUE,"[ROS SC] В целях безопасности вы были посажены в тюрьму. Если вы читер, то вам от сюда не выбраться, на такие случаи предусмотрена специальная функция. Время заточения : 15 сек [ТЕСТ]"); Code C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(99) : warning 217: loose indentation C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(99) : error 017: undefined symbol "cmd" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(101) : error 017: undefined symbol "tmp" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(101) : error 017: undefined symbol "strtok" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(102) : error 017: undefined symbol "tmp" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(104) : error 017: undefined symbol "ReturnUser" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(105) : warning 217: loose indentation C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(112) : warning 217: loose indentation C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(285) : warning 217: loose indentation C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(285) : error 029: invalid expression, assumed zero C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(285) : error 004: function "Timer" is not implemented C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(290) : error 029: invalid expression, assumed zero C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(290) : error 004: function "OnPlayerDeath" is not implemented C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(292) : error 017: undefined symbol "killerid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(295) : error 017: undefined symbol "killerid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(296) : error 017: undefined symbol "killerid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(301) : error 017: undefined symbol "killerid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(302) : error 017: undefined symbol "killerid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(308) : warning 225: unreachable code C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(308) : error 029: invalid expression, assumed zero C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(308) : error 004: function "OnDialogResponse" is not implemented C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(309) : error 017: undefined symbol "dialogid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(311) : error 017: undefined symbol "listitem" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(403) : error 017: undefined symbol "dialogid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(405) : error 017: undefined symbol "listitem" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(446) : error 017: undefined symbol "dialogid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(448) : error 017: undefined symbol "listitem" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(474) : error 017: undefined symbol "dialogid" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(476) : error 017: undefined symbol "listitem" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(592) : warning 225: unreachable code C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(592) : error 029: invalid expression, assumed zero C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(592) : error 004: function "OnPlayerText" is not implemented У меня не ГФ, собственный оригинальный мод, начатый с нуля. Некоторые ошибки ранее не появлялись, появились после вставки твоего кода.
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
| FolleN | Дата: Суббота, 16.04.2011, 22:36 | Сообщение # 3154 |
|
Новенький
Группа:
Пользователи
Сообщений: 9
Награды: 0
Город: Нижний
Репутация: -2
Замечания: 0%
Статус: 
| вот такие 2 вопроса, как в моде ГФ убрать отнимание хп(через какое-то время) и как устранить баг, когда сидишь в автомобили с выключенным двигателем, а бензин прибавляется...
|
| |
|
|
| Лёшка | Дата: Суббота, 16.04.2011, 22:48 | Сообщение # 3155 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 75
Награды: 0
Город: Йошкар-Ола
Репутация: 25
Замечания: 0%
Статус: 
| FolleN, напиши в скайп Добавлено (16.04.2011, 22:48) ---------------------------------------------
Quote (Лёшка) FolleN, напиши в скайп Забыл дописать))) go21121
|
| |
|
|
| Impereal | Дата: Суббота, 16.04.2011, 22:49 | Сообщение # 3156 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| pawman, Тогда добавь [cut noguest=Код]IsNumeric(const string[]) { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return 1; } ReturnUser(text[], playerid = INVALID_PLAYER_ID) { new pos = 0; while (text[pos] < 0x21) // Strip out leading spaces { if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text pos++; } new userid = INVALID_PLAYER_ID; if (IsNumeric(text[pos])) // Check whole passed string { // If they have a numeric name you have a problem (although names are checked on id failure) userid = strval(text[pos]); if (userid >=0 && userid < MAX_PLAYERS) { if(!IsPlayerConnected(userid)) { /*if (playerid != INVALID_PLAYER_ID) { SendClientMessage(playerid, 0xFF0000AA, "User not connected"); }*/ userid = INVALID_PLAYER_ID; } else { return userid; // A player was found } } /*else { if (playerid != INVALID_PLAYER_ID) { SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID"); } userid = INVALID_PLAYER_ID; } return userid;*/ // Removed for fallthrough code } // They entered [part of] a name or the id search failed (check names just incase) new len = strlen(text[pos]); new count = 0; new name[MAX_PLAYER_NAME]; for (new i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { GetPlayerName(i, name, sizeof (name)); if (strcmp(name, text[pos], true, len) == 0) // Check segment of name { if (len == strlen(name)) // Exact match { return i; // Return the exact player on an exact match // Otherwise if there are two players: // Me and MeYou any time you entered Me it would find both // And never be able to return just Me's id } else // Partial match { count++; userid = i; } } } } if (count != 1) { if (playerid != INVALID_PLAYER_ID) { if (count) { SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch"); } else { SendClientMessage(playerid, 0xFF0000AA, "No matching user found"); } } userid = INVALID_PLAYER_ID; } return userid; // INVALID_USER_ID for bad return }[/cut] И в начало паблика OnPlayerCommandText [cut noguest=Код]new cmd[256]; new tmp[256]; new idx; cmd = strtok(cmdtext, idx);[/cut] Ну и ещё [cut noguest=Код]strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }[/cut]
Прощай самп-рус =Р
|
| |
|
|
| pawman | Дата: Суббота, 16.04.2011, 23:09 | Сообщение # 3157 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| Impereal, :wacko2:. Ерроры опять. И,кажется, тут что - то не то... И я не понял куда это ставить... Code [color=red]IsNumeric(const string[]) [/color] { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return 1; } ReturnUser(text[], playerid = INVALID_PLAYER_ID) { new pos = 0; while (text[pos] < 0x21) // Strip out leading spaces { if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text pos++; } new userid = INVALID_PLAYER_ID; if (IsNumeric(text[pos])) // Check whole passed string { // If they have a numeric name you have a problem (although names are checked on id failure) userid = strval(text[pos]); if (userid >=0 && userid < MAX_PLAYERS) { if(!IsPlayerConnected(userid)) { /*if (playerid != INVALID_PLAYER_ID) { SendClientMessage(playerid, 0xFF0000AA, "User not connected"); }*/ userid = INVALID_PLAYER_ID; } else { return userid; // A player was found } } /*else { if (playerid != INVALID_PLAYER_ID) { SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID"); } userid = INVALID_PLAYER_ID; } return userid;*/ // Removed for fallthrough code } // They entered [part of] a name or the id search failed (check names just incase) new len = strlen(text[pos]); new count = 0; new name[MAX_PLAYER_NAME]; for (new i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { GetPlayerName(i, name, sizeof (name)); if (strcmp(name, text[pos], true, len) == 0) // Check segment of name { if (len == strlen(name)) // Exact match { return i; // Return the exact player on an exact match // Otherwise if there are two players: // Me and MeYou any time you entered Me it would find both // And never be able to return just Me's id } else // Partial match { count++; userid = i; } } } } if (count != 1) { if (playerid != INVALID_PLAYER_ID) { if (count) { SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch"); } else { SendClientMessage(playerid, 0xFF0000AA, "No matching user found"); } } userid = INVALID_PLAYER_ID; } return userid; // INVALID_USER_ID for bad return } Добавлено (16.04.2011, 23:09) --------------------------------------------- Impereal, :wacko2:. Ерроры опять. И,кажется, тут что - то не то... И я не понял куда это ставить... Code [color=red]IsNumeric(const string[]) [/color] { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return 1; } ReturnUser(text[], playerid = INVALID_PLAYER_ID) { new pos = 0; while (text[pos] < 0x21) // Strip out leading spaces { if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text pos++; } new userid = INVALID_PLAYER_ID; if (IsNumeric(text[pos])) // Check whole passed string { // If they have a numeric name you have a problem (although names are checked on id failure) userid = strval(text[pos]); if (userid >=0 && userid < MAX_PLAYERS) { if(!IsPlayerConnected(userid)) { /*if (playerid != INVALID_PLAYER_ID) { SendClientMessage(playerid, 0xFF0000AA, "User not connected"); }*/ userid = INVALID_PLAYER_ID; } else { return userid; // A player was found } } /*else { if (playerid != INVALID_PLAYER_ID) { SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID"); } userid = INVALID_PLAYER_ID; } return userid;*/ // Removed for fallthrough code } // They entered [part of] a name or the id search failed (check names just incase) new len = strlen(text[pos]); new count = 0; new name[MAX_PLAYER_NAME]; for (new i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i)) { GetPlayerName(i, name, sizeof (name)); if (strcmp(name, text[pos], true, len) == 0) // Check segment of name { if (len == strlen(name)) // Exact match { return i; // Return the exact player on an exact match // Otherwise if there are two players: // Me and MeYou any time you entered Me it would find both // And never be able to return just Me's id } else // Partial match { count++; userid = i; } } } } if (count != 1) { if (playerid != INVALID_PLAYER_ID) { if (count) { SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch"); } else { SendClientMessage(playerid, 0xFF0000AA, "No matching user found"); } } userid = INVALID_PLAYER_ID; } return userid; // INVALID_USER_ID for bad return }
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
| Impereal | Дата: Суббота, 16.04.2011, 23:12 | Сообщение # 3158 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| pawman, В конец поставь
Прощай самп-рус =Р
|
| |
|
|
| pawman | Дата: Суббота, 16.04.2011, 23:22 | Сообщение # 3159 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| Impereal, в конец чего %) Code C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(118) : warning 217: loose indentation C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(123) : error 017: undefined symbol "ReturnUser" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(124) : warning 217: loose indentation C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(130) : error 017: undefined symbol "IsNumeric" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(130) : error 029: invalid expression, assumed zero C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(130) : error 017: undefined symbol "string" C:\DOCUME~1\FA9E~1\0016~1\9CE0~1\RAEGO\ROS.pwn(130) : fatal error 107: too many error messages on one line Вставил, как ты сказал...
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
| vIruson | Дата: Воскресенье, 17.04.2011, 00:25 | Сообщение # 3160 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 79
Награды: 1
Репутация: 4
Замечания: 0%
Статус: 
| Всем привет. Кто может докладно обьяснить, как сделать сохранение тюнинга у домашних каров
|
| |
|
|
| pawman | Дата: Воскресенье, 17.04.2011, 00:26 | Сообщение # 3161 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| Вот, уже изменил настройки в инклуде. Один раз зашел, все было ОК, после перезагрузки сервера опять объекты некоторые не загружаются
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
| Raymond_West | Дата: Воскресенье, 17.04.2011, 01:23 | Сообщение # 3162 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 117
Награды: 6
Город: Черкассы
Репутация: 185
Замечания: 20%
Статус: 
| Прив, кто может помоч, сделал систему скина по рангу, но когда игрок умирает/перезаходит скин слетает!? (прошу ответить не игнорить) Кто может сделать строительку что бы все можно было в игре (ставить ворота и Т.к)(платно) Кто может сделать "Вип салон" что бы игрок купил этот салон и мог выставлять авто на продажу, например выставил авто савана за 80к и может менять цену например на 120к или 1кк. (платно)
|
| |
|
|
| swest | Дата: Воскресенье, 17.04.2011, 07:26 | Сообщение # 3163 |
|
Новенький
Группа:
Пользователи
Сообщений: 29
Награды: 0
Город: Москва
Репутация: 0
Замечания: 0%
Статус: 
| Raymond_West зачем тебе строительку юзай конвертер карт из мта в самп, наставил объектов, конвертируешь карту, и уже смотришь их ID в готовом скрипте http://gtamap.delux-host.com/index.php5 Можно проще сделать добавь тачки на продажу как раскупят еще добавишь и всё, просто до ужаса
|
| |
|
|
| Raymond_West | Дата: Воскресенье, 17.04.2011, 12:14 | Сообщение # 3164 |
|
Освоившийся
Группа:
Продвинутые
Сообщений: 117
Награды: 6
Город: Черкассы
Репутация: 185
Замечания: 20%
Статус: 
| Quote (swest) Raymond_West зачем тебе строительку юзай конвертер карт из мта в самп, наставил объектов, конвертируешь карту, и уже смотришь их ID в готовом скрипте http://gtamap.delux-host.com/index.php5 Можно проще сделать добавь тачки на продажу как раскупят еще добавишь и всё, просто до ужаса Блин, помоги строительку сделать что бы фракой было, что бы все можно было, через мод не удобно. =(
|
| |
|
|
| pawman | Дата: Воскресенье, 17.04.2011, 20:32 | Сообщение # 3165 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| ппц, уже везде все настроил, а объекты невидимы (некоторые)! Ну, лимит точно не превышен... Добавлено (17.04.2011, 20:32) --------------------------------------------- Помогите стример объектов поставить, как это сделать? Желательно, что бы МТА - код с сайта ConvertFFS можно было перевести в код стримера. Я читал темы на форуме, но там стример не поддерживается сайтом ConvertFFS. Думаю, MidoStreаm поставить...
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
|
 |
|
 | |
| |
|