Вопрос-Ответ - Страница 21 - Форум Cheat-Master.ru
Модератор форума: [CM]OlegEhtler, Getbackthere, Phoenixxx_Czar  
Вопрос-Ответ
Голубь Дата: Понедельник, 30.04.2012, 18:30 | Сообщение # 1
Авторитет
Сообщений: 2137
Статус: Offline
В этой теме можно задавать вопросы по pawno функциям, или по другим темам вот например: Как посадить человека с машину?

Код
[color=red]Вопрос:[/color]


Код
[color=green]Ответ:[/color]


двач
https://vk.com/povargek


Сообщение отредактировал Голубь - Вторник, 23.07.2013, 14:38
Амасинк Дата: Суббота, 26.09.2015, 12:48 | Сообщение # 301
Боец
Сообщений: 267
Статус: Offline
Leha2282562, попробуй сделать не через ключи, а через посадку в тс. Т.е, если pPhousekey == 20, то ты можешь ехать, иначе тебе выбрасывает.

Помогаю новичкам в pawn
Leha2282562 Дата: Суббота, 26.09.2015, 13:14 | Сообщение # 302
Любитель
Сообщений: 42
Статус: Offline
Цитата Амасинк ()
попробуй сделать не через ключи, а через посадку в тс. Т.е, если pPhousekey == 20, то ты можешь ехать, иначе тебе выбрасывает.

Ахаха я так и делал smile А как через ключи тогда ?
Len1n Дата: Суббота, 26.09.2015, 18:03 | Сообщение # 303
Боец
Сообщений: 89
Статус: Offline
Leha2282562, в enum к другим переменным дома добавляешь hVehicle:
Создание автомобиля привязываешь не к playercar или как там, а к HouseInfo[PlayerInfo[playerid][pHousekey]][hVehicle]
Код
if(GetPlayerVehicleID(playerid) == HouseInfo[PlayerInfo[playerid][pHousekey]][hVehicle]) {

}


Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}


Сообщение отредактировал Len1n - Суббота, 26.09.2015, 18:04
Leha2282562 Дата: Суббота, 26.09.2015, 18:39 | Сообщение # 304
Любитель
Сообщений: 42
Статус: Offline
if(newcar >= alexcar[0] && newcar <= alexcar[1])
{
if(PlayerInfo[playerid][pPhousekey] == 364) { }
else
{
SCM(playerid, COLOR_GREY, "У вас нет ключей от этой машины.");
RemovePlayerFromVehicle(playerid);
}
}
Сажусь в авто и меня выкидывает, а хотя дом куплен !

Добавлено (26.09.2015, 18:30)
---------------------------------------------
Len1n, А специально для тупых объясни куды id дома пихать smile

Добавлено (26.09.2015, 18:39)
---------------------------------------------
if(newcar >= alexcar[0] && newcar <= alexcar[1])
{
if(GetPlayerVehicleID(playerid) == HouseInfo[PlayerInfo[playerid][pPHousekey]][hVehicle] ==
364) { }
else
{
SCM(playerid, COLOR_GREY, "У вас нет ключей от этой машины!.");
RemovePlayerFromVehicle(playerid);
}
}
Выдает 2 ошибки - C:\Users\user\Desktop\Grace Global-Rp v3.0\gamemodes\Grace_Global.pwn(15210) : warning 213: tag mismatch
C:\Users\user\Desktop\Grace Global-Rp v3.0\gamemodes\Grace_Global.pwn(15210) : warning 213: tag mismatch

Len1n Дата: Суббота, 26.09.2015, 23:07 | Сообщение # 305
Боец
Сообщений: 89
Статус: Offline
Leha2282562, а. Статические авто...

Код
if(newcar >= alexcar[0] && newcar <= alexcar[1])  
{  
if(PlayerInfo[playerid][pHousekey] != 364)   
{  
SCM(playerid, COLOR_GREY, "У вас нет ключей от этой машины!.");  
RemovePlayerFromVehicle(playerid);  
}  
}


Код правильный. Игроку с ID'ом дома 364 доступны эти авто.

Если более динамично, то как я сказал:

Код
if(newcar >= alexcar[0] && newcar <= alexcar[1])  
{  
if(GetPlayerVehicleID(playerid) != HouseInfo[PlayerInfo[playerid][pHousekey]][hVehicle])  
{
SCM(playerid, COLOR_GREY, "У вас нет ключей от этой машины!.");  
RemovePlayerFromVehicle(playerid);  
}  
}

Добавлено (26.09.2015, 23:07)
---------------------------------------------
Ах, уточнить забыл. Если это не личный авто, а что-то другое, то делайте так:

new alexcar[2] (Как и было)

Код
alexcar[0] = CreateVehicle(.....);
HouseInfo[228][hVehicle] = alexcar[0];
HouseInfo[241][hVehicle] = CreateVehicle(.....);
HouseInfo[251][hVehicle] = CreateVehicle(.....);
HouseInfo[252][hVehicle] = CreateVehicle(.....);
HouseInfo[253][hVehicle] = CreateVehicle(.....);
HouseInfo[254][hVehicle] = CreateVehicle(.....);
alexcar[1] = CreateVehicle(.....);
HouseInfo[255][hVehicle] = alexcar[1];


Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}
Leha2282562 Дата: Вторник, 29.09.2015, 23:22 | Сообщение # 306
Любитель
Сообщений: 42
Статус: Offline
Len1n, Разобрался smile При много благодарен biggrin

Добавлено (29.09.2015, 23:22)
---------------------------------------------
Драсте smile У меня опять проблемка sad Вообщем яделаю перевод из армии в пд из пд в ФБР, но когда я кидаю приглашение оно появляется у меня, а не у игрока.Подскажите.
Вот код: if(strcmp(cmd, "/iinvite", true) == 0)
{
if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 10 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 21 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 27 && PlayerInfo[playerid][pRank] >= 14 ||
PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pRank] >= 7 || PlayerInfo[playerid][pMember] == 24 && PlayerInfo[playerid][pRank] > 14)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /iinvite [id èãðîêà]");
new ftext[12];
para1 = ReturnUser(tmp);
new invite[256];
if(para1 == playerid) { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Âû óêàçàëè ñâîé ID"); return true; }
if(PlayerInfo[para1][pLeader] >= 1) { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Âû óêàçàëè ID ëèäåðà"); return true; }
if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 10 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 21 && PlayerInfo[playerid][pRank] >= 14 ||
PlayerInfo[playerid][pMember] == 27 && PlayerInfo[playerid][pRank] >= 14)
{
if(!IsPlayerConnected(para1)) return true;
if(para1 == INVALID_PLAYER_ID) return true;
if((PlayerInfo[para1][pMember] == 3 || PlayerInfo[para1][pMember] == 19 || PlayerInfo[para1][pMember] == 25) && PlayerInfo[para1][pRank] >= 3)
{
if(PlayerInfo[playerid][pLeader] == 1) { ftext = "LSPD"; InviteSkin[para1] = 285; }
else if(PlayerInfo[playerid][pLeader] == 10) { ftext = "SFPD";InviteSkin[para1] = 285; }
else if(PlayerInfo[playerid][pLeader] == 21) { ftext = "SWAT"; InviteSkin[para1] = 285; }
else if(PlayerInfo[playerid][pLeader] == 27) { ftext = "Road Police"; InviteSkin[para1] = 285; }
else { return true; }
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pMember];
PlayerInfo[para1][pRank] = 1;
InviteOffer[giveplayerid] = PlayerInfo[playerid][pMember];
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
SetPlayerToTeamColor(para1);
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s ïðèãëàøàåò Âàñ ïðèñîåäåíèòüñÿ ê %s", playername, ftext);
SCM(para1, COLOR_WHITE, string);
format(invite,sizeof(invite), "%s ïðèãëàøàåò Âàñ ïðèñîåäåíèòüñÿ ê %s\n- Âû ñîãëàñíû?", giveplayer,ftext);
ShowPlayerDialog(giveplayerid,76,DIALOG_STYLE_MSGBOX,"Ïðèãëàøåíèå",invite, "Äà", "Íåò");
format(string, sizeof(string), "Âû ïðèãëàñèëè %s ïðèñîåäåíèòñÿ ê %s", giveplayer,ftext);
SCM(playerid, COLOR_WHITE, string);
}
else return SendClientMessage(playerid, COLOR_GREY, "Ó ÷åëîâåêà íåò 3 ðàíãà â àðìèè");
}
if(PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pRank] >= 9)
{
if(!IsPlayerConnected(para1)) return true;
if(para1 == INVALID_PLAYER_ID) return true;
if((PlayerInfo[para1][pMember] == 1 || PlayerInfo[para1][pMember] == 10 || PlayerInfo[para1][pMember] == 21 || PlayerInfo[para1][pMember] == 27) && PlayerInfo[para1][pRank] > 7)
{
if(PlayerInfo[playerid][pLeader] == 2) { ftext = "ÔÁÐ"; InviteSkin[giveplayerid] = 286; }
else { return true; }
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pMember];
PlayerInfo[para1][pRank] = 1;
GPN
InviteOffer[giveplayerid] = PlayerInfo[playerid][pMember];
format(string, sizeof(string), "Âû ïðèãëàñèëè %s ïðèñîåäåíèòñÿ ê %s.", playername,ftext);
SendClientMessage(para1, COLOR_BLUE, string);
format(invite,sizeof(invite), "%s ïðèãëàøàåò Âàñ ïðèñîåäåíèòüñÿ ê %s\n- Âû ñîãëàñíû?", playername,ftext);
ShowPlayerDialog(giveplayerid,76,DIALOG_STYLE_MSGBOX,"Ïðèãëàøåíèå",invite, "Äà", "Íåò");
FormaFrac[para1] = 2;
}
else return SendClientMessage(playerid, COLOR_GREY, "Ó ÷åëîâåêà íåò 8 ðàíãà â ïîëèöèè");
}
}
else return true;
return true;
}
Извиняюсь за буквы! Просто кодировка не меняется smile

Len1n Дата: Среда, 30.09.2015, 07:30 | Сообщение # 307
Боец
Сообщений: 89
Статус: Offline
Leha2282562, замените везде giveplayerid на para1

Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}
Leha2282562 Дата: Среда, 30.09.2015, 19:23 | Сообщение # 308
Любитель
Сообщений: 42
Статус: Offline
Цитата Len1n ()
Len1n

Благодарю за помощь smile Буду дома испробую.

Добавлено (30.09.2015, 18:21)
---------------------------------------------
Len1n, Не помогло sad

Добавлено (30.09.2015, 19:05)
---------------------------------------------
Leha2282562, С Этим разобрался, но теперь новая проблемка smile Когда я кидаю приглашения и игрок жмёт отказ он все равно попадает ко мне во фракцию.

Добавлено (30.09.2015, 19:23)
---------------------------------------------
Код забыл smile
if(strcmp(cmd, "/iinvite", true) == 0)
{
if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 10 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 21 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 27 && PlayerInfo[playerid][pRank] >= 14 ||
PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pRank] >= 7 || PlayerInfo[playerid][pMember] == 24 && PlayerInfo[playerid][pRank] > 14)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /iinvite [id èãðîêà]");
new ftext[12];
para1 = ReturnUser(tmp);
new invite[256];
if(para1 == playerid) { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Âû óêàçàëè ñâîé ID"); return true; }
if(PlayerInfo[para1][pLeader] >= 1) { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Âû óêàçàëè ID ëèäåðà"); return true; }
if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 10 && PlayerInfo[playerid][pRank] >= 14 || PlayerInfo[playerid][pMember] == 21 && PlayerInfo[playerid][pRank] >= 14 ||
PlayerInfo[playerid][pMember] == 27 && PlayerInfo[playerid][pRank] >= 14)
{
if(!IsPlayerConnected(para1)) return true;
if(para1 == INVALID_PLAYER_ID) return true;
if((PlayerInfo[para1][pMember] == 3 || PlayerInfo[para1][pMember] == 19 || PlayerInfo[para1][pMember] == 25) && PlayerInfo[para1][pRank] >= 3)
{
if(PlayerInfo[playerid][pLeader] == 1) { ftext = "LSPD"; InviteSkin[para1] = 285; }
else if(PlayerInfo[playerid][pLeader] == 10) { ftext = "SFPD"; InviteSkin[para1] = 285; }
else if(PlayerInfo[playerid][pLeader] == 21) { ftext = "LVPD"; InviteSkin[para1] = 285; }
else if(PlayerInfo[playerid][pLeader] == 27) { ftext = "SWAT"; InviteSkin[para1] = 285; }
else { return true; }
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pMember];
PlayerInfo[para1][pRank] = 1;
InviteOffer[para1] = PlayerInfo[playerid][pMember];
format(string, sizeof(string), "Âû ïðèãëàñèëè %s ïðèñîåäåíèòñÿ ê %s.", giveplayer,ftext);
SendClientMessage(playerid, COLOR_BLUE, string);
format(invite,sizeof(invite), "%s ïðèãëàøàåò Âàñ ïðèñîåäåíèòüñÿ ê %s\n- Âû ñîãëàñíû?", playername,ftext);
ShowPlayerDialog(para1,76,DIALOG_STYLE_MSGBOX,"Ïðèãëàøåíèå",invite, "Äà", "Íåò");
}
else return SendClientMessage(playerid, COLOR_GREY, "Ó ÷åëîâåêà íåò 3 ðàíãà â àðìèè");
}
if(PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pRank] >= 9)
{
if(!IsPlayerConnected(para1)) return true;
if(para1 == INVALID_PLAYER_ID) return true;
if((PlayerInfo[para1][pMember] == 1 || PlayerInfo[para1][pMember] == 10 || PlayerInfo[para1][pMember] == 21 || PlayerInfo[para1][pMember] == 27) && PlayerInfo[para1][pRank] > 7)
{
if(PlayerInfo[playerid][pLeader] == 2) { ftext = "ÔÁÐ"; InviteSkin[para1] = 286; }
else { return true; }
PlayerInfo[para1][pMember] = PlayerInfo[playerid][pMember];
PlayerInfo[para1][pRank] = 1;
GPN
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
InviteOffer[para1] = PlayerInfo[playerid][pMember];
format(string, sizeof(string), "Âû ïðèãëàñèëè %s ïðèñîåäåíèòñÿ ê %s.", giveplayer,ftext);
SendClientMessage(playerid, COLOR_BLUE, string);
format(invite,sizeof(invite), "%s ïðèãëàøàåò Âàñ ïðèñîåäåíèòüñÿ ê %s\n- Âû ñîãëàñíû?", playername,ftext);
ShowPlayerDialog(para1,76,DIALOG_STYLE_MSGBOX,"Ïðèãëàøåíèå",invite, "Äà", "Íåò");
FormaFrac[para1] = 2;
}
else return SendClientMessage(playerid, COLOR_GREY, "Ó ÷åëîâåêà íåò 8 ðàíãà â ïîëèöèè");
}
}
else return true;
return true;
}

Len1n Дата: Среда, 30.09.2015, 19:43 | Сообщение # 309
Боец
Сообщений: 89
Статус: Offline
в диалоге
Код
if(!response) return 1; добавь


Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}
Leha2282562 Дата: Среда, 30.09.2015, 20:21 | Сообщение # 310
Любитель
Сообщений: 42
Статус: Offline
Len1n, error 017: undefined symbol "response" smile
Len1n Дата: Четверг, 01.10.2015, 19:55 | Сообщение # 311
Боец
Сообщений: 89
Статус: Offline
Leha2282562, Оу, извиняюсь. В OnDialogResponse под ID диалога. Вот.

Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}
Leha2282562 Дата: Четверг, 01.10.2015, 20:42 | Сообщение # 312
Любитель
Сообщений: 42
Статус: Offline
Len1n, Я сделал так smile Не помогло public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
while(strfind(inputtext, "%s",true) != -1) { strdel(inputtext,strfind(inputtext, "%s",true),strfind(inputtext, "%s",true)+2); }
while(strfind(inputtext, "%",true) != -1) { strdel(inputtext,strfind(inputtext, "%",true),strfind(inputtext, "%",true)+2); }
new gun,ammo, money;
new string[256];
new gunname[32];
if(!response) return 1;
GPN
switch(dialogid)
И что значит под ID диалога ? Какого диалога ? smile
Len1n Дата: Пятница, 02.10.2015, 13:41 | Сообщение # 313
Боец
Сообщений: 89
Статус: Offline
Leha2282562, не в начале OnDialogResponse. В таком случае у тебя многие функции на диалогах будут работать некорректно. В OnDialogResponse найди
Код
case 76:
И в начале его уже добавляй. 76 - ID диалога.


Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}
Leha2282562 Дата: Пятница, 02.10.2015, 19:52 | Сообщение # 314
Любитель
Сообщений: 42
Статус: Offline
Len1n, case 76:
{
if(!response) return 1;
if(response) {
SetPlayerSkin(playerid,InviteSkin[playerid]); PlayerInfo[playerid][pMember] = InviteOffer[playerid]; PlayerInfo[playerid][pRank] = 1; PlayerInfo[playerid][pJob] = 1;
OnPlayerUpdateAc(playerid); }
else { InviteSkin[playerid] = 0; InviteOffer[playerid] = 999; }
}
Все равно во фраку вступает smile
Len1n Дата: Пятница, 02.10.2015, 20:23 | Сообщение # 315
Боец
Сообщений: 89
Статус: Offline
Leha2282562, даже не знаю

Связь со мной:
Skype: po61-rap
E-Mail: len1nthe@gmail.com

if(time>=1500 && rep<500) {
cout « "200 репы накручено!";
rep+=200;
}
Поиск: