|
Форум | www.SAMP-TEAM.com » Wiki SA-MP » Уроки скриптинга в Pawno » Обновленная работа Дальнобойшика |
Обновленная работа Дальнобойшика |
![]()
Давайте сразу начнем
ко всем new добавим Код new CP[MAX_PLAYERS]; далие у кого не pLevel в enum pInfo дабавим Код pLevel, в регистрацию вставим Код ini_setInteger(iniFile, "pLevel", 0); в авторигистрацию Код ini_getInteger(iniFile, "pLevel", PlayerInfo[playerid][pLevel]); в сохронения акаунтов Код ini_setInteger(iniFile, "pLevel", PlayerInfo[playerid][pLevel]); все приступем к созданию команды в public OnPlayerCommandText(playerid, cmdtext[]) Код if(strcmp(cmd, "/work", true) == 0) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pJob] != 0) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}[Недоступно]{ffffff} Вы не дальнобойщик."); { if(CP[playerid]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}[Недоступно]{ffffff} Вы уже взяли задание."); new tmpcar; tmpcar = GetPlayerVehicleID(playerid); if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { if(!PlayerToPoint(100,playerid,276.7208, 1988.6398, 16.8692)) return SendClientMessage(playerid, COLOR_GREY, "Вы не набазе!!");//Тут у нас координаты,на которых будет действовать данная команда. ShowPlayerDialog(playerid,102,DIALOG_STYLE_LIST,"Выбор груза","{ffffff}Песок 10500$\n{FF0000}Оружие 50000$\n{0xFFFF00AA}Метал 31000$\n{0xAAAAAAAA}Боеприпасы 24900$\n","Выбрать","Отмена"); } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } } return 1; } в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) Код if(dialogid == 102) { if(response) { if(listitem == 0) { moneydb[playerid] = 0; SetPlayerCheckpoint(playerid, 276.7208, 1988.6398, 16.8692, 8.0);//координат SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Следуйте к красому маячку на радаре для загрузки машины!"); CP[playerid] = 1; } else if(listitem == 1) { moneydb[playerid] = 0; SetPlayerCheckpoint(playerid, 2781.5938,-2494.3748,13.4599, 8.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Следуйте к красому маячку на радаре для загрузки машины!"); CP[playerid] = 3; } else if(listitem == 2) { moneydb[playerid] = 0; SetPlayerCheckpoint(playerid, 64.7506,-278.8061,1.5781, 8.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Следуйте к красому маячку на радаре для загрузки машины!"); CP[playerid] = 5; } else if(listitem == 3) { moneydb[playerid] = 0; SetPlayerCheckpoint(playerid, 2523.4004,2814.2786,10.8203, 8.0); SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Следуйте к красому маячку на радаре для загрузки машины!"); CP[playerid] = 7; } } } в public OnPlayerEnterCheckpoint(playerid) Код new string[256]; new tmpcar; tmpcar = GetPlayerVehicleID(playerid); if(CP[playerid]==1) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 2;//Переход на новый пикап DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, 324.4989, 856.7709, 19.7881, 8.0); TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока загрузят груз!"); SetTimerEx("zgruzFurui",25000,false,"i",playerid); } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==2) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 0; TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока разгрузят фуру!"); SetTimerEx("RazgruzFurui",25000,false,"i",playerid); DisablePlayerCheckpoint(playerid); new zarplata = 10500;//отвечает за зарплату format(string, sizeof(string), "вам вышла полько зарплота зарплата $%d", zarplata); SendClientMessage(playerid, COLOR_GREY,string); GivePlayerMoney(playerid, zarplata); PlayerInfo[playerid][pLevel]++; } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==3) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 4;//Переход на новый пикап DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, 281.0313,1952.6752,17.6406, 8.0); TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока загрузят груз!"); SetTimerEx("zgruzFurui",25000,false,"i",playerid); } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==4) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 0; TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока разгрузят фуру!"); SetTimerEx("RazgruzFurui",25000,false,"i",playerid); DisablePlayerCheckpoint(playerid); new zarplata = 50000; format(string, sizeof(string), "вам вышла полько зарплота зарплата $%d", zarplata); SendClientMessage(playerid, COLOR_GREY,string); GivePlayerMoney(playerid, zarplata); PlayerInfo[playerid][pLevel]++; } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==5) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 6;//Переход на новый пикап DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, -1053.2174,-640.4914,32.0078, 8.0); TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока загрузят груз!"); SetTimerEx("zgruzFurui",25000,false,"i",playerid); } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==6) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 0; TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока разгрузят фуру!"); SetTimerEx("RazgruzFurui",25000,false,"i",playerid); DisablePlayerCheckpoint(playerid); new zarplata = 31000; format(string, sizeof(string), "вам вышла полько зарплота зарплата $%d", zarplata); SendClientMessage(playerid, COLOR_GREY,string); GivePlayerMoney(playerid, zarplata); PlayerInfo[playerid][pLevel]++; } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==7) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 8;//Переход на новый пикап DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, -1461.8278,431.6042,7.1875, 8.0); TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока загрузят груз!"); SetTimerEx("zgruzFurui",25000,false,"i",playerid); } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } else if(CP[playerid]==8) { if(IsATruckerCar(tmpcar)) { if (GetVehicleTrailer(tmpcar)) { CP[playerid] = 0; TogglePlayerControllable(playerid,0); SendClientMessage(playerid, RED,"Подождите какое-то време пока разгрузят фуру!"); SetTimerEx("RazgruzFurui",25000,false,"i",playerid); DisablePlayerCheckpoint(playerid); new zarplata = 24900; format(string, sizeof(string), "вам вышла полько зарплота зарплата $%d", zarplata); SendClientMessage(playerid, COLOR_GREY,string); GivePlayerMoney(playerid, zarplata); PlayerInfo[playerid][pLevel]++; } else { SendClientMessage(playerid, COLOR_GREY, " У вас нету прицепа!"); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, " Вы не в грузовике !"); return 1; } } и в конец мода ставим Код forward IsATruckerCar(carid); public IsATruckerCar(carid) { new model = GetVehicleModel(carid); if(model == 514 || model == 515) { return 1; } return 0; } forward RazgruzFurui(playerid); forward zgruzFurui(playerid); forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z); public zgruzFurui(playerid) { TogglePlayerControllable(playerid,1); SendClientMessage(playerid, COLOR_LIGHTRED, "* Машина загружена! Получен новый маршрут! Следуйте к маячку на радаре."); return true; } public RazgruzFurui(playerid) { TogglePlayerControllable(playerid,1); SendClientMessage(playerid, RED,"Разгрузка фуры завершена..."); return true; } кстати чкть бы не забыл вот команда для устраивания на роботу Код if(strcmp(cmd, "/truck", true) == 0) { if(IsPlayerConnected(playerid)) { new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[256]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } GetPlayerName(playerid,sendername,sizeof(sendername)); format(string,sizeof(string), "Ты устроился дальнобойшиком.",result); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); PlayerInfo[playerid][pJop] = 0; return true; } } ну вот и все меняйте кардинаты и ид работы на свои и зарплату Работа подойдет для нового мода на mxINI, на других системах надо менять сохронение грузы брать с этими координатами на зоне 51 примерно вот здесь ![]() грузовики прицепы ставим сами автор Я, но делал при помощи всего сайта, спасибо 02.08.2014 в 02:58
|
![]() 02.08.2014 в 15:51
|
![]()
У меня вопрос,он так сказать на засыпку)
Почему ты используешь new string[256] а не 128 пример,или 64 ?) P.S в OnPlayerEnterCheckpoint 02.08.2014 в 17:01
|
![]() У меня вопрос,он так сказать на засыпку) Почему ты используешь new string[256] а не 128 пример,или 64 ?) P.S в OnPlayerEnterCheckpoint да просто мне привычней так а так модно использовать 128 и 64 02.08.2014 в 17:10
|
![]()
На заметку
Строка – это массив символов (цифр и букв). Цифра в квадратных скобок отражает количество ячеек выделенных под символы, за исключением 1 экстра-ячейки, которая должна быть всегда. Она служит для хранения идентификатора строки. Строки используются в основном для хранения имени игрока, текста сообщения, диалога и для других целей. Стоит помнить, что не рекомендуется создавать много очень больших строк, так же как не рекомендуется создавать большие строки, которые даже не половину не используются. В строках нужно выделять ячеек приблизительно ровно столько, сколько будет использоваться. Так например имя игрока может составлять максимально 24 символа, поэтому для хранения имени игрока используйте строку с длиной не более 24 символов. Если в строке вы собираетесь хранить сообщение, которое будет отправлено игроку в чат, то строка должна быть длиной не более 144 символа, так как это ограничение на длину текста в чате. Вобщем длина строки зависит от ограничений сервера на текст в различных элементах скриптинга. 02.08.2014 в 17:13
|
![]() Строка – это массив символов (цифр и букв). Цифра в квадратных скобок отражает количество ячеек выделенных под символы, за исключением 1 экстра-ячейки, которая должна быть всегда. Она служит для хранения идентификатора строки. Строки используются в основном для хранения имени игрока, текста сообщения, диалога и для других целей. Стоит помнить, что не рекомендуется создавать много очень больших строк, так же как не рекомендуется создавать большие строки, которые даже не половину не используются. В строках нужно выделять ячеек приблизительно ровно столько, сколько будет использоваться. Так например имя игрока может составлять максимально 24 символа, поэтому для хранения имени игрока используйте строку с длиной не более 24 символов. Если в строке вы собираетесь хранить сообщение, которое будет отправлено игроку в чат, то строка должна быть длиной не более 144 символа, так как это ограничение на длину текста в чате. Вобщем длина строки зависит от ограничений сервера на текст в различных элементах скриптинга. спасибо не знал и везде пихал 256) 02.08.2014 в 17:18
|
![]() 02.08.2014 в 17:24
|
![]()
А для скрипт для RP или можно в Дальнобойный сервак вписать?
07.09.2014 в 10:06
|
![]()
Это больше для RP, если заменить проверки и т.д то можно вшить в "твой" мод
07.09.2014 в 10:25
|
![]()
Хорошая работа но к сожалению не та которую я бы хотел. Если не сложно можешь сделать как на RTS работа Дальнобойщика)), буду очень благодарен))
07.09.2014 в 11:09
|
![]() 07.09.2014 в 11:14
|
![]() 07.09.2014 в 20:01
|
| |||
| |||