Maxim_Shmakov
Изучающий
- Регистрация
- 18 Сен 2011
- Сообщения
- 540
- Лучшие ответы
- 0
- Репутация
- 118
Привет пользователи pawno-info.ru!
Недавно на форумах появился мод с названием Rezone-rp v2.0 с множеством багов.
Не знаю чем вас привлек этот мод, но мне стало тоже интересно посидеть в нем.
И лично я в разделе "Вопросы по программированию pawn" стал замечать частые вопросы по исправлению багов в этом моде.
Вот решил создать тему с мануалами по исправлению багов в этом моде, что бы не засорять форум множеством вопросов по одному и тому же моду. Думаю некоторым будет полезна эта тема
Недавно на форумах появился мод с названием Rezone-rp v2.0 с множеством багов.
Не знаю чем вас привлек этот мод, но мне стало тоже интересно посидеть в нем.
И лично я в разделе "Вопросы по программированию pawn" стал замечать частые вопросы по исправлению багов в этом моде.
Вот решил создать тему с мануалами по исправлению багов в этом моде, что бы не засорять форум множеством вопросов по одному и тому же моду. Думаю некоторым будет полезна эта тема
Автор: Maxim_Shmakov (Я)
Итак начнем!
• 1й баг с интерьерами в армиях. все заметили что когда входишь в ангар то начинаешь лететь с неба.
Как исправить:
Идем в public OnPlayerPickUpPickup(playerid, pickupid) и ищем такие строки:
PHP:
else if(pickupid == sklad[1]) //
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-1370.39,498.79,11.20);
SetPlayerFacingAngle(playerid, 92.2485);
}
else if(pickupid == sklad[0]) //
{
SetPlayerInterior(playerid,6);
SetPlayerPos(playerid,316.9104,-168.6356,999.5938);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matiskladls[0]) //
{
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid, 5);
SetPlayerPos(playerid,1023.20,2143.81,995.21);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matiskladls[1]) //
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,2731.5186,-2451.2383,17.5937);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matisklad[0]) //
{
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid, 4);
SetPlayerPos(playerid,1023.20,2143.81,995.21);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matisklad[1]) //
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,338.26,1949.05,22.02);
SetPlayerFacingAngle(playerid, 355.8037);
}
PHP:
else if(pickupid == sklad[1]) //
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid,-1370.39,498.79,11.20);
SetPlayerFacingAngle(playerid, 92.2485);
}
else if(pickupid == sklad[0]) //
{
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid,316.9104,-168.6356,999.5938);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matiskladls[0]) //
{
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid, 6);
SetPlayerPos(playerid,316.9104,-168.6356,999.5938);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matiskladls[1]) //
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid,2731.5186,-2451.2383,17.5937);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matisklad[0]) //
{
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid, 4);
SetPlayerPos(playerid,316.9104,-168.6356,999.5938);
SetPlayerFacingAngle(playerid, 355.8037);
}
else if(pickupid == matisklad[1]) //
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid,338.26,1949.05,22.02);
SetPlayerFacingAngle(playerid, 355.8037);
}
Ищем в моде команду /uninvite и убираем от туда эти строчки:
PHP:
Delgun(para1);
ResetPlayerWeapons(para1);
Ищем в моде команду /setrpr и заменяем ее на эту:
PHP:
else if(strcmp(cmd, "/setrpr", true) == 0)
{
if(!strlen(tmp))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "*Введите: /setrpr [id] [Уважение] [причина]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "*Введите: /setrpr [id] [Уважение] [причина]");
if(giveplayerid == playerid) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не можете голосовать за себя");
new amount;
new result[64];
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
amount = strval(tmp);
if(PlayerInfo[giveplayerid][pLevel] < amount) return SendClientMessage(playerid, COLOR_WHITE, "LvL игрока ниже указанного вами репутацией");
if(PlayerInfo[playerid][pRp] <= -1) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не можете голосовать, ваша репутация слишком мала");
if(amount < -5) return SendClientMessage(playerid, COLOR_GREY, "Нельзя меньше -5");
if(golosov[playerid] >= 5) return SendClientMessage(playerid, COLOR_GRAD1, "Вы уже голосовали больше 5 раз");
if(PlayerInfo[giveplayerid][pRp] <=-150) return SendClientMessage(playerid, COLOR_GREY, "У игрока меньше -149 rpr рейтинга");
PlayerInfo[giveplayerid][pRp] += amount;
format(string, sizeof(string), "Вы изменили игроку rp рейтинг на: %d", amount);
SendClientMessage(playerid, COLOR_YELLOW2, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
golosov[playerid] +=1;
format(string, sizeof(string), "Ваш rp рейтинг изменил(à) %s на %d . Причина: %s",sendername,amount, (result));
SendClientMessage(giveplayerid, COLOR_GREEN, string);
}
}
}
return 1;
}
Идем в public CustomPickups() и ищем такие строки:
PHP:
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(0.5, i, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
{
if(HouseInfo[h][hOwned] == 1)
{
if(HouseInfo[h][hKlass] == 0)
{
format(string, sizeof(string), "Владелец: %s\nКласс: Nope\nНомер дома: %d",HouseInfo[h][hOwner],h);
}
else if(HouseInfo[h][hKlass] == 1)
{
format(string, sizeof(string), "Владелец: %s\nКласс: D\nНомер дома: %d",HouseInfo[h][hOwner],h);
}
else if(HouseInfo[h][hKlass] == 2)
{
format(string, sizeof(string), "Владелец: %s\nКласс: C\nНомер дома: %d",HouseInfo[h][hOwner],h);
}
else if(HouseInfo[h][hKlass] == 3)
{
format(string, sizeof(string), "Владелец: %s\nКласс: B\nНомер дома: %d",HouseInfo[h][hOwner],h);
}
else
{
format(string, sizeof(string), "Владелец: %s\nКласс: A\nНомер дома: %d",HouseInfo[h][hOwner],h);
}
ShowPlayerDialog(i,10075,DIALOG_STYLE_MSGBOX,"Квартира куплена",string,"Войти","Отмена");
return 1;
}
else
{
if(HouseInfo[h][hKlass] == 0)
{
format(string, sizeof(string), "Цена: %d\nКласс: Nope\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else if(HouseInfo[h][hKlass] == 1)
{
format(string, sizeof(string), "Цена: %d\nКласс: D\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else if(HouseInfo[h][hKlass] == 2)
{
format(string, sizeof(string), "Цена: %d\nКласс: C\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else if(HouseInfo[h][hKlass] == 3)
{
format(string, sizeof(string), "Цена: %d\nКласс: B\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else
{
format(string, sizeof(string), "Цена: %d\nКласс: A\nНомер дома: %d",HouseInfo[h][hValue],h);
}
ShowPlayerDialog(i,10026,DIALOG_STYLE_MSGBOX,"Квартира продаётся",string,"Купить","Отмена");//Диалог домов
return 1;
}
}
}
}
}
}
return 1;
}
PHP:
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(0.5, i, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
{
if(HouseInfo[h][hOwned] == 1)
{
new ttextt[32];
if(IsPlayerConnected(GetPlayerID(HouseInfo[h][hOwner]))) { ttextt = "[{22ff00}Online{F2EEF0}]"; }
else if(!IsPlayerConnected(GetPlayerID(HouseInfo[h][hOwner]))) { ttextt = "[{ff001c}Offline{F2EEF0}]"; }
if(HouseInfo[h][hKlass] == 0)format(string, sizeof(string), "{F2EEF0}Владелец: {639BE4}%s{F2EEF0} %s\n{EAEDF0}Класс: {A4F91C}Nope\n{F5F7F1}Номер дома: %d",HouseInfo[h][hOwner],ttextt,h);
else if(HouseInfo[h][hKlass] == 1)format(string, sizeof(string), "{F2EEF0}Владелец: {639BE4}%s{F2EEF0} %s\n{EAEDF0}Класс: {A4F91C}D\n{F5F7F1}Номер дома: %d",HouseInfo[h][hOwner],ttextt,h);
else if(HouseInfo[h][hKlass] == 2)format(string, sizeof(string), "{F2EEF0}Владелец: {639BE4}%s{F2EEF0} %s\n{EAEDF0}Класс: {A4F91C}C\n{F5F7F1}Номер дома: %d",HouseInfo[h][hOwner],ttextt,h);
else if(HouseInfo[h][hKlass] == 3)format(string, sizeof(string), "{F2EEF0}Владелец: {639BE4}%s{F2EEF0} %s\n{EAEDF0}Класс: {A4F91C}B\n{F5F7F1}Номер дома: %d",HouseInfo[h][hOwner],ttextt,h);
else format(string, sizeof(string), "{F2EEF0}Владелец: {639BE4}%s{F2EEF0} %s\n{EAEDF0}Класс: {A4F91C}A\n{F5F7F1}Номер дома: %d",HouseInfo[h][hOwner],ttextt,h);
ShowPlayerDialog(i,10075,DIALOG_STYLE_MSGBOX,"Дом занят",string,"Войти","Отмена");
return 1;
}
else
{
if(HouseInfo[h][hKlass] == 0)
{
format(string, sizeof(string), "Цена: %d\nКласс: Nope\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else if(HouseInfo[h][hKlass] == 1)
{
format(string, sizeof(string), "Цена: %d\nКласс: D\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else if(HouseInfo[h][hKlass] == 2)
{
format(string, sizeof(string), "Цена: %d\nКласс: C\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else if(HouseInfo[h][hKlass] == 3)
{
format(string, sizeof(string), "Цена: %d\nКласс: B\nНомер дома: %d",HouseInfo[h][hValue],h);
}
else
{
format(string, sizeof(string), "Цена: %d\nКласс: A\nНомер дома: %d",HouseInfo[h][hValue],h);
}
ShowPlayerDialog(i,10026,DIALOG_STYLE_MSGBOX,"Квартира продается",string,"Купить","Отмена");
return 1;
}
}
}
}
}
}
return 1;
}
PHP:
stock GetPlayerID(string[])
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1)
{
new testname[MAX_PLAYER_NAME];
GetPlayerName(i, testname, sizeof(testname));
if(strcmp(testname, string, true, strlen(string)) == 0)
{
return i;
}
}
}
return INVALID_PLAYER_ID;
}
У грузчиков. Ищем диалог if(dialogid == 405) и заменяем на мой:
PHP:
if(dialogid == 405)
{
if(response)
{
if(PlayerInfo[playerid][pMember] != 0) return SendClientMessage(playerid,COLOR_GRAD1,"Вы состоите во фракции");
if(Works[playerid] == true) return SendClientMessage(playerid,COLOR_GRAD1,"Вы уже устроились");
Works[playerid] = true; JobAmmount[playerid] = 0; JobCP[playerid] = 1;
SetPlayerCheckpoint(playerid,2230.3528,-2286.1353,14.3751,1.5);
new skin = random(2);
if(skin == 1) SetPlayerSkin(playerid,260);
else SetPlayerSkin(playerid,16);
SendClientMessage(playerid,COLOR_GREEN,"Отправляйтесь носить мешки!");
PicCP[playerid] = 0;
}
else
{
if(Works[playerid] == false) return SendClientMessage(playerid,COLOR_GRAD1,"Вы не устроены на работу");
if(JobAmmount[playerid] != 0) return SendClientMessage(playerid,0xFFFFFFFF,"Вы должны получить зарплату в офисе");
SendClientMessage(playerid,COLOR_GREEN,"Рабочий день завершён!");
Works[playerid] = false; JobAmmount[playerid] = 0; JobCP[playerid] = 0; Employer[playerid] = 999;
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
DisablePlayerCheckpoint(playerid);
return 1;
}
}
PHP:
if(dialogid == 9995)
{
if(response)
{
if(Shaht[playerid] == true)
OldSkin[playerid] = GetPlayerSkin(playerid);
Shaht[playerid] = true; ShahtAmmount[playerid] = 0; ShahtCP[playerid] = 1;
SetPlayerCheckpoint(playerid,-1809.7257,-1645.8424,22.9631,1.5);
SetPlayerSkin(playerid,260);
SendClientMessage(playerid,0xFFFFFFFF," Чтобы взять уголь, иди на красную метку на радаре.");
return 1;
}
else
{
if(Shaht[playerid] == false) return SendClientMessage(playerid,0xFFFFFFFF,"Ты неработаеш шахтёром!");
if(ShahtAmmount[playerid] != 0) return SendClientMessage(playerid,0xFFFFFFFF," Сначала ты должен получить зарплату!");
SendClientMessage(playerid,0xFFFFFFFF,"Ты завершил рабочий день!");
Works[playerid] = false; JobAmmount[playerid] = 0; JobCP[playerid] = 0; Employer[playerid] = 999;
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
DisablePlayerCheckpoint(playerid);
return 1;
}
}
Ищем в команде /delivery такие строки:
PHP:
if(PlayerInfo[playerid][pJob] != 15)
{
SendClientMessage(playerid,COLOR_ORANGE," Вы должны быть в Фуре за рулём!");
return true;
}
PHP:
if(PlayerInfo[playerid][pJob] != 16)
{
SendClientMessage(playerid,COLOR_ORANGE," Вы не дальнобойщик!");
return true;
}
В public OnPlayerPickUpPickup(playerid, pickupid) ищем:
PHP:
else if(pickupid == gonkae[1]) //гонка выход
{
PHP:
chet[playerid] =0;
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1952.9702,-2177.6379,13.5469);
SetPlayerFacingAngle(playerid,353.8560);
SetPlayerVirtualWorld(playerid,0);
PlayerKarting[playerid] = 0;
CP[playerid] = 0;
KartingPlayers -= 1;
}
PHP:
arace = CreatePickup(1314, 23,1099.5614,1601.5493,12.5469); //
PHP:
arace = CreatePickup(1314, 23, 822.3992,2.7049,1004.1797); //
В команду /gov добавьте:
PHP:
else if(PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22)
{
if(PlayerInfo[playerid][pRank] == 8) { rtext = "Глав. врач LS"; }
}
Нужно создать таймер для нарко. для начало создадим forward:
PHP:
forward NarkoTimer(playerid);
PHP:
new narkotimer;
PHP:
public NarkoTimer(playerid)
{
SetPlayerWeather(playerid, 14);
}
PHP:
narkotimer = SetTimerEx( "NarkoTimer", 20000 , false, "i", playerid);
• 10й баг. с ломкой, бесконечно флудит в чат о том что у вас ломка (/usedrugs не помогает!)
С этим багом я долго мучался, но так нече и не смог сделать. пришлось просить помощи на форуме и смотреть команду /usedrugs в других модах. Спасибо DOKER-NeO за исправление бага (наполовину)
Итак для начала удалим все что связанно с PlayerLomkaTime а именно:
PHP:
new PlayerLomkaTime[MAX_PLAYERS];//Для ломки
PHP:
if(PlayerLomkaTime[i] > 0)
{
GetPlayerName(i,sendername,sizeof(sendername));
PlayerLomkaTime[i] --;
if(PlayerLomkaTime[i] == 0)
{
TogglePlayerControllable(i,1);
ClearAnimations(i);
format(string, sizeof(string), "%s очнулся", sendername);
ProxDetector(30.0, i, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
}
if(PlayerInfo[i][pNarcoZavisimost] > 1000)
{
PlayerInfo[i][pNarcoLomka] --;
if(PlayerLomkaTime[i] == 0)
{
GetPlayerName(i,sendername,sizeof(sendername));
ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
SendClientMessage(i,COLOR_REDD,"--== У Вас началась ломка ==--");
SendClientMessage(i,COLOR_WHITE,"[1] Принять дозу: /usedrugs [2] Вызвать скорую: /c ");
PlayerInfo[i][pNarcoLomka] = 400;
}
}
PHP:
if(PlayerStoned[playerid] >= 4)
{
//GameTextForPlayer(playerid, "~w~You are~n~~p~Stoned", 4000, 1);
PlayerLomkaTime[playerid] = 3600;
//TogglePlayerControllable(playerid,0);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 300000000);
SendClientMessage(playerid, COLOR_GREEN, "Вы без сознания...");
return 0;
}
if(strcmp(cmdtext, "/usedrugs", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pDrugs] >= 1)
{
if(PlayerInfo[playerid][pDrugtime] > 0) return SendClientMessage(playerid,COLOR_GRAD1,"Употребить наркотики можно через 30 секунд");
new Float:health;
GetPlayerHealth(playerid, health);
if(health >= 120.0) { SetPlayerWeather(playerid, -68); PlayerStoned[playerid] = 0;}
narkotimer = SetTimerEx( "NarkoTimer", 20000 , false, "i", playerid);
if(PlayerInfo[playerid]Если вы заметили то я просто изменил точку где брать оружие. (Возле особняка каждой мафии)PHP:>=120) { return 1;} SetPlayerHealthAC(playerid, health + 20.0); PlayerInfo[playerid][pHP] +=20; SetPlayerTime(playerid,17,0); //noon SetPlayerWeather(playerid, -68); PlayerStoned[playerid] += 1; PlayerInfo[playerid][pDrugs] -= 1; PlayerInfo[playerid][pKongfuSkill] -=50; PlayerInfo[playerid][pBoxSkill] -= 50; PlayerInfo[playerid][pKickboxSkill] -= 50; SetPlayerDrunkLevel (playerid, 3000); GetPlayerName(playerid, sendername, sizeof(sendername)); ApplyAnimation(playerid,"SMOKING","M_smk_drag",4.1,0,0,0,0,0,1); format(string,sizeof(string), "Употребил(a) наркотики"); SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000); if(startnarko[playerid] == 1) { startnarko[playerid] = 0; ApplyAnimation(playerid,"SMOKING","M_smk_drag",4.1,0,0,0,0,0,1); send[playerid] = 0; } SetPlayerWeather(playerid, -68); PlayerInfo[playerid][pNarcoZavisimost] += 5; PlayerInfo[playerid][pNarcoZavisimost] += 5; //SetPlayerSpecialAction(playerid,21); } else { SendClientMessage(playerid, COLOR_GREY, "Не достаточно наркотиков!"); } }//not connected return 1; }[/QUOTE] Не вставил в PHP т.к в коде присутствует [pHP] [I][COLOR="#00FF00"][B]• 11й баг. Мафии могут брать друг у друга в особняке оружие (Хотя для некоторых это не баг!)[/B][/COLOR][/I] [COLOR="#A52A2A"]Итак баг тут из за того что в команде стоит проверка на мафию но везде стоят одинаковые координаты. т.к особняки у мафий одинаковые! Тут можно либо поменять мафиям интерьеры (поставить разные) либо каждой мафии установить разные координаты для получения оружия. Я сделал так: Теперь мафии могут брать оружия возле своих особняков. при этом например LCN не может брать оружие у РМ ну и т.д Итак ищем команду /getweapon и заменяем на эту:[/COLOR] [PHP]else if(strcmp(cmd, "/getweapon", true) == 0) { switch(PlayerInfo[playerid][pMember]) { case 6: { if(PlayerToPoint(30.0,playerid,1465.7830,2773.6199,10.6719))//яки getgun { if(PlayerInfo[playerid][pRank] <= 2)return SendClientMessage(playerid,COLOR_GRAD1,"Оружие можно взять с 3 ранга!"); new listitems[] = "- Deagle [70 матов/50 патронов]\n- Shotgun [50 матов/15 патронов]\n- Rifle [100 матов/10 патронов]\n- M4 [500 матов/100 патронов]\n- AK-47 [500 матов/100 патронов]\n- Mp5 [400 матов/200 патронов]\n- Sdpistol [100 матов/100 патронов])"; ShowPlayerDialog(playerid, 2013, DIALOG_STYLE_LIST, "Взять оружие со склада Yakuza", listitems, "Выбрать", "Отмена"); } } case 5: { if(PlayerToPoint(30.0,playerid,1449.0206,751.5092,11.0234))//lcn getgun { if(PlayerInfo[playerid][pRank] <= 2)return SendClientMessage(playerid,COLOR_GRAD1,"Оружие можно взять с 3 ранга!"); new listitems[] = "- Deagle [70 матов/50 патронов]\n- Shotgun [50 матов/15 патронов]\n- Rifle [100 матов/10 патронов]\n- M4 [500 матов/100 патронов]\n- AK-47 [500 матов/100 патронов]\n- Mp5 [400 матов/200 патронов]\n- Sdpistol [100 матов/100 патронов])"; ShowPlayerDialog(playerid, 2014, DIALOG_STYLE_LIST, "Взять оружие со склада LCN", listitems, "Выбрать", "Отмена"); } } case 14: { if(PlayerToPoint(30.0,playerid,943.6813,1734.0588,8.8516))//рм getgun { if(PlayerInfo[playerid][pRank] <= 2)return SendClientMessage(playerid,COLOR_GRAD1,"Оружие можно взять с 3 ранга!"); new listitems[] = "- Deagle [70 матов/50 патронов]\n- Shotgun [50 матов/15 патронов]\n- Rifle [100 матов/10 патронов]\n- M4 [500 матов/100 патронов]\n- AK-47 [500 матов/100 патронов]\n- Mp5 [400 матов/200 патронов]\n- Sdpistol [100 матов/100 патронов])"; ShowPlayerDialog(playerid, 2015, DIALOG_STYLE_LIST, "Взять оружие со склада Русской Мафии", listitems, "Выбрать", "Отмена"); } } } return 1; }
Вот вроде и все! если нашли какой то баг или недоработку пишите попробую исправить. Я конечно не профи скриптер но немного все таки научился.
Последнее редактирование: