Просмотр полной версии : [Вопрос] Проблема с диалогами ничего не происходит
Здравствуйте уважаемые форумчане вот у меня такая проблема,я делаю что либо через диалог и ничего не работает вот например сделал раздевалку
говно-инфо
И когда выбирай скин за 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)
Скорее всего где то выше стоит возврат и код обрывается не доходя до этого места.
ставьте условие что я дал выше.
все равно не работают диалоги подхожу он вкл но нажимаю да нет не отвечает.
Ну кинь весь паблик
- - - Добавлено - - -
И вызов диалога
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;
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;
}
И что мне сейчас так все заного написать?
- - - Добавлено - - -
У меня много if(dialogid ==
И что мне их переделывать все в case? есть какой нибудь другой вариант?
И что мне сейчас так все заного написать?
- - - Добавлено - - -
У меня много if(dialogid ==
И что мне их переделывать все в case? есть какой нибудь другой вариант?
А что там переделывать? Дел на 10-15 минут
Я тебе, кстати, не только переделал в кейсы, а ещё кое-чего подровнял
Spectrum
11.07.2014, 20:48
можешь не переделывать, можешь после всех диалогов сделать свич и засунуть туда кейс
можешь не переделывать, можешь после всех диалогов сделать свич и засунуть туда кейс
Можно примерчик?
Spectrum
11.07.2014, 21:04
switch(dialogid)
{
case id_dialog:
{
if(!response)
{
// Something
}
}
}
вот сделал все вроде норм
Но захожу ничего не выдает и так все что не сделаю на диалоге не выдается.
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;
}
Проверьте, нет ли у вас второй такой же проверки на ID диалога ( if(dialogid == 2423) )
Да не, там всё не так
Увидеть бы весь код...
А остальные диалоги работают?
delete сделано,просто нужно было сменить SPD
Spectrum
13.07.2014, 22:07
delete сделано,просто нужно было сменить SPD
лол
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot