Урок по созданию работы Дальнобойщик
|
|
Дата: 30.01.2011, Воскресенье, 15:29:04 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 9
Ко всем forward-ам добавляем: Code forward IsADalnoboiCar(carid); Потом вставляем этот паблик куда вам угодно: Code public IsADalnoboiCar(carid) { new model=GetVehicleModel(carid); if(model == 515 || model == 514 || model == 403) // {return 1;} return 0; } Где 515,514,403 это ид грузовых машин. В public OnPlayerStateChange(playerid, newstate, oldstate) вставляем: Code if(IsADalnoboiCar(newcar)) { if(PlayerInfo[playerid][pJob] != 16 ) RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, COLOR_GREY, "Ты не Дальнобойщик."); } } А сейчас переходим к созданию команды: Code if(strcmp(cmd, "/gruz", true) == 0) { new carid = GetPlayerVehicleID(playerid); if(PlayerInfo[playerid][pJob] != 16) { format(string, sizeof(string), " Вы не работаете дальнобойщиком!"); SendClientMessage(playerid, COLOR_GRAD1, string); return 1; } if (!IsADalnoboiCar(carid)) { SendClientMessage(playerid, COLOR_GRAD1, " Вы должны находится в фуре чтобы взять груз!"); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); new listitems[] = "1\tОтвезти груз в ЛС\n2\tОтвезти груз в СФ\n3\tОтвезти груз в ЛВ"; ShowPlayerDialog(playerid,123,DIALOG_STYLE_LIST," Портативный Gps Навигатор:",listitems," Подтвердить"," Отмена"); return 1; } А это команда чтобы выбрать куда везти груз. Code if(strcmp(cmd, "/ungruz", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pJob] != 16) { SendClientMessage(playerid, COLOR_GREY, " Вы не дальнобойщик!"); return 1; } new carid = GetPlayerVehicleID(playerid); new gTrailer = GetVehicleTrailer(carid); if(!IsTrailerAttachedToVehicle(carid)) { SendClientMessage(playerid, COLOR_GREY, "Вы приехали без груза!!!"); return 1; } new x_nr[256]; x_nr = strtok(cmdtext, idx); if(!strlen(x_nr)) { SendClientMessage(playerid, COLOR_WHITE, "Используйте: /upgruz название взависимости от локации"); SendClientMessage(playerid, COLOR_WHITE, "Доступные Названия: ls, sf, lv."); return 1; } if(strcmp(x_nr,"ls",true) == 0) { if(PlayerToPoint(3.0,playerid,2519.7297,-2440.3740,13.3399)) { format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); format(string, sizeof(string), "Вы доставили груз!"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "И получили премию в размере 7000$"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); GivePlayerMoney(playerid, 7000); SetVehicleToRespawn(gTrailer); DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|"); return 1; } else { SendClientMessage(playerid, COLOR_GREY, " Вы не на складе."); return 1; } } else if(strcmp(x_nr,"sf",true) == 0) { if(PlayerToPoint(3.0,playerid,-2688.5688,234.7379,4.0589)) { format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); format(string, sizeof(string), "Вы доставили груз в Сан Фиеро!"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "И вы получили премию в размере 14000$"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); GivePlayerMoney(playerid, 14000); SetVehicleToRespawn(gTrailer); DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|"); return 1; } else { SendClientMessage(playerid, COLOR_GREY, " Вы не на складе."); return 1; } } else if(strcmp(x_nr,"lv",true) == 0) { if(PlayerToPoint(3.0,playerid,-367.9283,1583.2257,75.9362)) { format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); format(string, sizeof(string), "Вы доставили груз!"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "И вы получили премию в размере 25000$"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); GivePlayerMoney(playerid, 25000); SetVehicleToRespawn(gTrailer); DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|"); return 1; } else { SendClientMessage(playerid, COLOR_GREY, " Вы не на складе."); return 1; } } } } Это команда чтобы сдать груз когда будешь стоять на ЧП. И последний штрих добавляем в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]): Code else if(dialogid == 123) { if(!response) return 0; else { gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS; switch (listitem) { case 0: { SetPlayerCheckpoint(playerid,2519.7297,-2440.3740,13.3399,5.0); SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!"); } case 1: { SetPlayerCheckpoint(playerid,-2688.5688,234.7379,4.0589,5.0); SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!"); } case 2: { SetPlayerCheckpoint(playerid,-367.9283,1583.2257,75.9362,5.0); SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!"); } case 6: { PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); DisablePlayerCheckpoint(playerid); } } } } ну вот и все на этом наш урок заканчивается. Если вам поравилось от + не откажусь.
|
|
|
Дата: 30.01.2011, Воскресенье, 16:53:59 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 225
ShaKuR, завтра дам + =)
|
|
|
Дата: 30.01.2011, Воскресенье, 16:59:28 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 223
по этому примеру так же можно создать работы на подобии дальнобойщиков
|
|
|
Дата: 30.01.2011, Воскресенье, 17:52:45 | Сообщение # $NUMBER
Группа: Модераторы
Сообщений: 260
У меня нету этого: PlayerInfo[playerid][pJob]
|
|
|
Дата: 30.01.2011, Воскресенье, 18:16:45 | Сообщение # $NUMBER
Группа: Удаленные
Сообщений:
ShaKuR , ты как Тупак Шакур ?
|
|
|
Дата: 30.01.2011, Воскресенье, 18:29:50 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 9
Да нет, ты похоже ошибся.
|
|
|
Дата: 30.01.2011, Воскресенье, 18:51:23 | Сообщение # $NUMBER
Группа: Модераторы
Сообщений: 260
ShaKuR, Что делать?
|
|
|
Дата: 31.01.2011, Понедельник, 19:32:43 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
У мя такие ошибки помогите испрасить: Quote e:\VruB4Y\gamemodes\VruBY.pwn(7369) : error 017: undefined symbol "gPlayerCheckpointStatus" e:\VruB4Y\gamemodes\VruBY.pwn(7369) : warning 215: expression has no effect e:\VruB4Y\gamemodes\VruBY.pwn(7369) : error 001: expected token: ";", but found "]" e:\VruB4Y\gamemodes\VruBY.pwn(7369) : error 029: invalid expression, assumed zero e:\VruB4Y\gamemodes\VruBY.pwn(7369) : fatal error 107: too many error messages on one line Строчка в которой ошибки выделена и почёркнута: Quote else if(dialogid == 123) { if(!response) return 0; else { gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS; switch (listitem) { case 0: { SetPlayerCheckpoint(playerid,2519.7297,-2440.3740,13.3399,5.0); SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!"); } case 1: { SetPlayerCheckpoint(playerid,-2688.5688,234.7379,4.0589,5.0); SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!"); } case 2: { SetPlayerCheckpoint(playerid,-367.9283,1583.2257,75.9362,5.0); SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!"); } case 6: { PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); DisablePlayerCheckpoint(playerid); } } } } Кто поможет тому + и подарок!
|
|
|
Дата: 31.01.2011, Понедельник, 20:04:58 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 225
Alex1994, попробуй добавить в начало мода ко всем переменным new gPlayerCheckpointStatus[MAX_PLAYERS]; и еще лутче gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS; поменяй на gPlayerCheckpointStatus[playerid] = CHECKPOINT_HOME;
|
|
|
Дата: 31.01.2011, Понедельник, 20:52:40 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Терь осталось: e:\VruB4Y\gamemodes\VruBY.pwn(20791) : error 017: undefined symbol "sendername" e:\VruB4Y\gamemodes\VruBY.pwn(20791) : error 017: undefined symbol "sendername" e:\VruB4Y\gamemodes\VruBY.pwn(20791) : error 029: invalid expression, assumed zero e:\VruB4Y\gamemodes\VruBY.pwn(20791) : fatal error 107: too many error messages on one line
|
|
|
Дата: 06.02.2011, Воскресенье, 19:33:17 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Люди нужна помощ с мя + и подарок! Вот в этом коде ошибка! Code if(strcmp(cmd, "/ungruz", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pJob] != 16) { SendClientMessage(playerid, COLOR_GREY, " Вы не дальнобойщик!"); return 1; } new carid = GetPlayerVehicleID(playerid); new gTrailer = GetVehicleTrailer(carid); if(!IsTrailerAttachedToVehicle(carid)) { SendClientMessage(playerid, COLOR_GREY, "Вы приехали без груза!!!"); return 1; } new x_nr[256]; x_nr = strtok(cmdtext, idx); if(!strlen(x_nr)) { SendClientMessage(playerid, COLOR_WHITE, "Используйте: /upgruz название взависимости от локации"); SendClientMessage(playerid, COLOR_WHITE, "Доступные Названия: ls, sf, lv."); return 1; } if(strcmp(x_nr,"ls",true) == 0) { if(PlayerToPoint(3.0,playerid,2519.7297,-2440.3740,13.3399)) //Вот тут ошибка! { format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); format(string, sizeof(string), "Вы доставили груз!"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "И получили премию в размере 7000$"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); GivePlayerMoney(playerid, 7000); SetVehicleToRespawn(gTrailer); DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|"); return 1; } else { SendClientMessage(playerid, COLOR_GREY, " Вы не на складе."); return 1; } } else if(strcmp(x_nr,"sf",true) == 0) { if(PlayerToPoint(3.0,playerid,-2688.5688,234.7379,4.0589)) //Вот тут ошибка! { format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); format(string, sizeof(string), "Вы доставили груз в Сан Фиеро!"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "И вы получили премию в размере 14000$"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); GivePlayerMoney(playerid, 14000); SetVehicleToRespawn(gTrailer); DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|"); return 1; } else { SendClientMessage(playerid, COLOR_GREY, " Вы не на складе."); return 1; } } else if(strcmp(x_nr,"lv",true) == 0) { if(PlayerToPoint(3.0,playerid,-367.9283,1583.2257,75.9362)) //Вот тут ошибка! { format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); format(string, sizeof(string), "Вы доставили груз!"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "И вы получили премию в размере 25000$"); SendClientMessage(playerid, COLOR_LG, string); format(string, sizeof(string), "|____________________________|"); SendClientMessage(playerid, COLOR_RED1, string); GivePlayerMoney(playerid, 25000); SetVehicleToRespawn(gTrailer); DisablePlayerCheckpoint(playerid); SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|"); return 1; } else { SendClientMessage(playerid, COLOR_GREY, " Вы не на складе."); return 1; } } } } e:\Server\VruBY\gamemodes\VruBY.pwn(20865) : error 017: undefined symbol "PlayerToPoint" e:\Server\VruBY\gamemodes\VruBY.pwn(20889) : error 017: undefined symbol "PlayerToPoint" e:\Server\VruBY\gamemodes\VruBY.pwn(20913) : error 017: undefined symbol "PlayerToPoint" Люди писали что где-то нехватаает скобки!
|
|
|
Дата: 07.02.2011, Понедельник, 19:43:13 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Quote (velix) IsPlayerInRangeOfPoint Лутше!! всё спс всё пашетДобавлено (07.02.2011, 19:43:13) --------------------------------------------- СПС!! velix
|
|
|