PDA

Просмотр полной версии : [Вопрос] Проблема с диалогами ничего не происходит



Sanek
11.07.2014, 02:21
Здравствуйте уважаемые форумчане вот у меня такая проблема,я делаю что либо через диалог и ничего не работает вот например сделал раздевалку
говно-инфо
И когда выбирай скин за 5к он не дается вообще ничего не происходит из-за чего это может быть ?


if(dialogid == 2423)
{
if(response)
{
if(listitem == 0)
{
SetPlayerSkin(playerid, 68);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 15, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы выбрали форму свещеника");
return 1;
}
Тут вроде бы все правильно правда переделал с
case 2423:
сделал

if(dialogid == 2423)

А вот в другом моде сделал где все case,а не if(dialogid все работает почему так?

- - - Добавлено - - -

вообще что нибудь новое делаю по урокам там стоит


case 2423:

Я меняю на
if(dialogid == 2423)

И не работает подхожу нажимаю да ничего не появляется.

underwoker
11.07.2014, 06:44
Здравствуйте уважаемые форумчане вот у меня такая проблема,я делаю что либо через диалог и ничего не работает вот например сделал раздевалку
http://***********.ru/showthread.php?...E0%E1%EE%F2%E0
павно-инфо.ру напишите там( не реклама)
И когда выбирай скин за 5к он не дается вообще ничего не происходит из-за чего это может быть ?


if(dialogid == 2423)
{
if(response)
{
if(listitem == 0)
{
SetPlayerSkin(playerid, 68);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 15, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы выбрали форму свещеника");
return 1;
}
Тут вроде бы все правильно правда переделал с
case 2423:
сделал

if(dialogid == 2423)

А вот в другом моде сделал где все case,а не if(dialogid все работает почему так?

- - - Добавлено - - -

вообще что нибудь новое делаю по урокам там стоит


case 2423:

Я меняю на
if(dialogid == 2423)

И не работает подхожу нажимаю да ничего не появляется.

else if(dialogid == 2423)
Скорее всего где то выше стоит возврат и код обрывается не доходя до этого места.
ставьте условие что я дал выше.

Sanek
11.07.2014, 14:39
все равно не работают диалоги подхожу он вкл но нажимаю да нет не отвечает.

Sanek
11.07.2014, 15:27
помогите ребят

Edwin
11.07.2014, 16:40
Ну кинь весь паблик

- - - Добавлено - - -

И вызов диалога

Sanek
11.07.2014, 18:07
секу

Edwin
11.07.2014, 18:08
Паблик и вызов диалога

Sanek
11.07.2014, 18:26
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(IsPlayerNPC(playerid)) return true;
if(dialogids[playerid] == dialogid)
{
dialogids[playerid] = 0;
if(strfind(inputtext,"%",true) != -1 || strfind(inputtext, "'",true) != -1 || strfind(inputtext, "=",true) != -1) return send(playerid, COLOR_RED, "Вы используете запрещенные символы.");
new string[300];
if(dialogid == 9237)
{
if(!response)
{
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
SetCameraBehindPlayer(playerid),SetPlayerPosServer(playerid,210.4333,-8.9053,1005.2109);
SetPlayerFacingAngle(playerid,143.9225),SetPlayerInterior(playerid,5);
SelectCharPlace[playerid] = 0,SelectCharID[playerid] = 0,SelectChar[playerid] = 0;
TogglePlayerControllable(playerid, 1);
return true;
}
PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pChar] = GetPlayerSkin(playerid);
SetCameraBehindPlayer(playerid),SetPlayerPosServer(playerid,210.4333,-8.9053,1005.2109);
SetPlayerFacingAngle(playerid,143.9225),SetPlayerInterior(playerid,5);
SelectCharPlace[playerid] = 0,SelectCharID[playerid] = 0,SelectChar[playerid] = 0;
TogglePlayerControllable(playerid, 1);
return true;
}
if(dialogid == DIALOG_SPEC_KICK)
{
if(!response) return true;
if(PlayerInfo[playerid][pAdmin] >= 1)
{
new mess[128];
format(mess, sizeof(mess), "/kick %i %s",SpecAd[playerid],inputtext);
CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
}
return true;
}
if(dialogid == 27)
{
if(response)
{
if(GetPVarInt(playerid, "beach") == 0)
{
SetPVarInt(playerid, "beach",1);
SetPVarInt(playerid, "pack",0);
SetPVarInt(playerid, "skin_old", GetPlayerSkin(playerid));
SetPlayerSkin(playerid, 16);
TextDrawShowForPlayer(playerid,job_td[playerid]);
format(string,sizeof(string),"Mycop: %d~n~$: %d",GetPVarInt(playerid, "pack"),GetPVarInt(playerid, "pack")*4);
TextDrawSetString(job_td[playerid], string);
SendClientMessage(playerid,0xCECFCEFF, "Рабочий день {63cb00}начат.");
SetPlayerAttachedObject(playerid, 1, 1264, 6, 0.189000, -0.014000, 0.000000, 90.000000, -90.500000, 0.000000, 0.2,0.2, 0.2);
coord_obj[playerid][0] = 0.2,coord_obj[playerid][1] = 0.2;
}
else
{
if(GetPVarInt(playerid, "beach") == 0) return SendClientMessage(playerid, 0xCECFCEFF, "Ошибка! Вы еще не работаете уборщиком");
PlayerInfo[playerid][pCash] += GetPVarInt(playerid, "pack")*4;
TextDrawHideForPlayer(playerid,job_td[playerid]);
format(string,sizeof(string), "Вы заработали: {63cb00}%d$", GetPVarInt(playerid, "pack")*4);
SendClientMessage(playerid, 0xCECFCEFF, string);
RemovePlayerAttachedObject(playerid,1);
SetPlayerSkin(playerid, GetPVarInt(playerid, "skin_old"));
DeletePVar(playerid, "pack");
DeletePVar(playerid, "beach");
DeletePVar(playerid, "trash");
}
}
}

вот там есть
if(dialogid == 27)
Он раньше была case 27:
я переделал

Edwin
11.07.2014, 18:54
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(IsPlayerNPC(playerid)) return true;
if(dialogids[playerid] == dialogid)
{
dialogids[playerid] = 0;
if(strfind(inputtext,"%",true) != -1 || strfind(inputtext, "'",true) != -1 || strfind(inputtext, "=",true) != -1) return send(playerid, COLOR_RED, "Вы используете запрещенные символы.");
new string[300];
if(dialogid == 9237)
{
if(!response)
{
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
SetCameraBehindPlayer(playerid),SetPlayerPosServer(playerid,210.4333,-8.9053,1005.2109);
SetPlayerFacingAngle(playerid,143.9225),SetPlayerInterior(playerid,5);
SelectCharPlace[playerid] = 0,SelectCharID[playerid] = 0,SelectChar[playerid] = 0;
TogglePlayerControllable(playerid, 1);
return true;
}
PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pChar] = GetPlayerSkin(playerid);
SetCameraBehindPlayer(playerid),SetPlayerPosServer(playerid,210.4333,-8.9053,1005.2109);
SetPlayerFacingAngle(playerid,143.9225),SetPlayerInterior(playerid,5);
SelectCharPlace[playerid] = 0,SelectCharID[playerid] = 0,SelectChar[playerid] = 0;
TogglePlayerControllable(playerid, 1);
return true;
}
if(dialogid == DIALOG_SPEC_KICK)
{
if(!response) return true;
if(PlayerInfo[playerid][pAdmin] >= 1)
{
new mess[128];
format(mess, sizeof(mess), "/kick %i %s",SpecAd[playerid],inputtext);
CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
}
return true;
}
if(dialogid == 27)
{
if(response)
{
if(GetPVarInt(playerid, "beach") == 0)
{
SetPVarInt(playerid, "beach",1);
SetPVarInt(playerid, "pack",0);
SetPVarInt(playerid, "skin_old", GetPlayerSkin(playerid));
SetPlayerSkin(playerid, 16);
TextDrawShowForPlayer(playerid,job_td[playerid]);
format(string,sizeof(string),"Mycop: %d~n~$: %d",GetPVarInt(playerid, "pack"),GetPVarInt(playerid, "pack")*4);
TextDrawSetString(job_td[playerid], string);
SendClientMessage(playerid,0xCECFCEFF, "Рабочий день {63cb00}начат.");
SetPlayerAttachedObject(playerid, 1, 1264, 6, 0.189000, -0.014000, 0.000000, 90.000000, -90.500000, 0.000000, 0.2,0.2, 0.2);
coord_obj[playerid][0] = 0.2,coord_obj[playerid][1] = 0.2;
}
else
{
if(GetPVarInt(playerid, "beach") == 0) return SendClientMessage(playerid, 0xCECFCEFF, "Ошибка! Вы еще не работаете уборщиком");
PlayerInfo[playerid][pCash] += GetPVarInt(playerid, "pack")*4;
TextDrawHideForPlayer(playerid,job_td[playerid]);
format(string,sizeof(string), "Вы заработали: {63cb00}%d$", GetPVarInt(playerid, "pack")*4);
SendClientMessage(playerid, 0xCECFCEFF, string);
RemovePlayerAttachedObject(playerid,1);
SetPlayerSkin(playerid, GetPVarInt(playerid, "skin_old"));
DeletePVar(playerid, "pack");
DeletePVar(playerid, "beach");
DeletePVar(playerid, "trash");
}
}
}

вот там есть
if(dialogid == 27)
Он раньше была case 27:
я переделал

А зачем?
Кейсы и побыстрее будут
Я бы посоветовал:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(IsPlayerNPC(playerid)) return true;
switch(dialogid)
{
new string[300];
case 9237:
{
if(!response)
{
SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
SetCameraBehindPlayer(playerid),SetPlayerPosServer(playerid,210.4333,-8.9053,1005.2109);
SetPlayerFacingAngle(playerid,143.9225),SetPlayerInterior(playerid,5);
SelectCharPlace[playerid] = 0,SelectCharID[playerid] = 0,SelectChar[playerid] = 0;
TogglePlayerControllable(playerid, 1);
return true;
}
PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pChar] = GetPlayerSkin(playerid);
SetCameraBehindPlayer(playerid),SetPlayerPosServer(playerid,210.4333,-8.9053,1005.2109);
SetPlayerFacingAngle(playerid,143.9225),SetPlayerInterior(playerid,5);
SelectCharPlace[playerid] = 0,SelectCharID[playerid] = 0,SelectChar[playerid] = 0;
TogglePlayerControllable(playerid, 1);
return true;
}
case DIALOG_SPEC_KICK:
{
if(!response) return true;
if(PlayerInfo[playerid][pAdmin] >= 1)
{
new mess[128];
format(mess, sizeof(mess), "/kick %i %s",SpecAd[playerid],inputtext);
CallLocalFunction("OnPlayerCommandText", "is", playerid, mess);
}
return true;
}
case 27:
{
if(response)
{
if(GetPVarInt(playerid, "beach") == 0)
{
SetPVarInt(playerid, "beach",1);
SetPVarInt(playerid, "pack",0);
SetPVarInt(playerid, "skin_old", GetPlayerSkin(playerid));
SetPlayerSkin(playerid, 16);
TextDrawShowForPlayer(playerid,job_td[playerid]);
format(string,sizeof(string),"Mycop: %d~n~$: %d",GetPVarInt(playerid, "pack"),GetPVarInt(playerid, "pack")*4);
TextDrawSetString(job_td[playerid], string);
SendClientMessage(playerid,0xCECFCEFF, "Рабочий день {63cb00}начат.");
SetPlayerAttachedObject(playerid, 1, 1264, 6, 0.189000, -0.014000, 0.000000, 90.000000, -90.500000, 0.000000, 0.2,0.2, 0.2);
coord_obj[playerid][0] = 0.2,coord_obj[playerid][1] = 0.2;
}
else
{
if(GetPVarInt(playerid, "beach") == 0) return SendClientMessage(playerid, 0xCECFCEFF, "Ошибка! Вы еще не работаете уборщиком");
PlayerInfo[playerid][pCash] += GetPVarInt(playerid, "pack")*4;
TextDrawHideForPlayer(playerid,job_td[playerid]);
format(string,sizeof(string), "Вы заработали: {63cb00}%d$", GetPVarInt(playerid, "pack")*4);
SendClientMessage(playerid, 0xCECFCEFF, string);
RemovePlayerAttachedObject(playerid,1);
SetPlayerSkin(playerid, GetPVarInt(playerid, "skin_old"));
DeletePVar(playerid, "pack");
DeletePVar(playerid, "beach");
DeletePVar(playerid, "trash");
}
}
}
}
return 1;
}

Sanek
11.07.2014, 19:05
И что мне сейчас так все заного написать?

- - - Добавлено - - -

У меня много if(dialogid ==
И что мне их переделывать все в case? есть какой нибудь другой вариант?

Edwin
11.07.2014, 19:22
И что мне сейчас так все заного написать?

- - - Добавлено - - -

У меня много if(dialogid ==
И что мне их переделывать все в case? есть какой нибудь другой вариант?

А что там переделывать? Дел на 10-15 минут
Я тебе, кстати, не только переделал в кейсы, а ещё кое-чего подровнял

Sanek
11.07.2014, 20:36
Как переделать то?

Spectrum
11.07.2014, 20:48
можешь не переделывать, можешь после всех диалогов сделать свич и засунуть туда кейс

Sanek
11.07.2014, 20:53
можешь не переделывать, можешь после всех диалогов сделать свич и засунуть туда кейс

Можно примерчик?

Spectrum
11.07.2014, 21:04
switch(dialogid)
{
case id_dialog:
{
if(!response)
{
// Something
}
}
}

Sanek
11.07.2014, 21:36
вот сделал все вроде норм
Но захожу ничего не выдает и так все что не сделаю на диалоге не выдается.

if(dialogid == 2423)
{
if(response)
{
switch(listitem)
{
case 0:
{
SetPlayerSkin(playerid, 68);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 15, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы купили форму священника");
return 1;
}
case 1:
{
PlayerInfo[playerid][pCash] += -3000;
SetPlayerSkin(playerid, 147);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 14, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы купили форму свидетеля");
return 1;
}
case 2:
{
PlayerInfo[playerid][pCash] += -3000;
SetPlayerSkin(playerid, 93);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 14, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы купили форму свидетьницы");
return 1;
}
case 3:
{
PlayerInfo[playerid][pCash] += -5000;
SetPlayerSkin(playerid, 186);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 15, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы купили форму жениха");
return 1;
}
case 4:
{
PlayerInfo[playerid][pCash] += -5000;
SetPlayerSkin(playerid, 219);
SetPlayerHealth(playerid, 100);
GivePlayerWeapon(playerid, 14, 100);
SendClientMessage(playerid, COLOR_GREEN, "Вы купили форму невесты");
return 1;
}
}
}
}

- - - Добавлено - - -

и вот вроде все норм,а даже не работает

if(pickupid == svadba)
{
ShowPlayerDialog(playerid,2423,DIALOG_STYLE_LIST,"Cвадебная форма","Форма священника\nКостюм свидетеля(3.000)\nКостюм свидетельницы(3.000)\nКостюм Жениха(5.000)\nКостюм невесты(5.000)","Выбор","Отмена");
return 1;
}

Sanek
11.07.2014, 22:39
помогите ребят

L0ndl3m
11.07.2014, 22:42
Проверьте, нет ли у вас второй такой же проверки на ID диалога ( if(dialogid == 2423) )

Edwin
12.07.2014, 00:31
Да не, там всё не так
Увидеть бы весь код...
А остальные диалоги работают?

Sanek
12.07.2014, 00:35
delete сделано,просто нужно было сменить SPD

Spectrum
13.07.2014, 22:07
delete сделано,просто нужно было сменить SPD

лол