Вопрос-Ответ
|
|
Голубь |
Дата: Понедельник, 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, то ты можешь ехать, иначе тебе выбрасывает. Ахаха я так и делал А как через ключи тогда ?
|
|
|
|
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 дома пихать Добавлено (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, Разобрался При много благодарен Добавлено (29.09.2015, 23:22) --------------------------------------------- Драсте У меня опять проблемка Вообщем яделаю перевод из армии в пд из пд в ФБР, но когда я кидаю приглашение оно появляется у меня, а не у игрока.Подскажите. Вот код: 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; } Извиняюсь за буквы! Просто кодировка не меняется
|
|
|
|
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 Благодарю за помощь Буду дома испробую.Добавлено (30.09.2015, 18:21) --------------------------------------------- Len1n, Не помогло Добавлено (30.09.2015, 19:05) --------------------------------------------- Leha2282562, С Этим разобрался, но теперь новая проблемка Когда я кидаю приглашения и игрок жмёт отказ он все равно попадает ко мне во фракцию. Добавлено (30.09.2015, 19:23) --------------------------------------------- Код забыл 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"
|
|
|
|
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, Я сделал так Не помогло 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 диалога ? Какого диалога ?
|
|
|
|
Len1n |
Дата: Пятница, 02.10.2015, 13:41 | Сообщение # 313
|
Боец
Сообщений: 89
Статус: Offline
|
Leha2282562, не в начале OnDialogResponse. В таком случае у тебя многие функции на диалогах будут работать некорректно. В OnDialogResponse найди И в начале его уже добавляй. 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; } } Все равно во фраку вступает
|
|
|
|
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; }
|
|
|
|