admin | Дата: Среда, 12.10.2011, 18:59:19 | Сообщение # 1 |
Группа: Администраторы
Сообщений: 3869
| Исправлены ошибки с диологом.. Начнем уроку. верху мода: Code forward ADD_OnPlayerUpdate(playerid); forward ADD_OnPlayerDisconnect(playerid, reason); forward Desktop_Function(playerid); forward ADD_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]); forward ShowPlayerDialogWithAntiDesktop(playerid, dialogid, style, caption[], info[], button1[], button2[]); После этого ищем public OnPlayerUpdate(playerid) и туда вставляем: Code if(GetPVarType(playerid, "DesktopTimer") == 0) { SetPVarInt(playerid, "DesktopTimer", SetTimerEx("Desktop_Function",1000,1,"d",playerid)); } SetPVarInt(playerid, "DesktopCount", GetPVarInt(playerid, "DesktopCount")+1); CallLocalFunction("ADD_OnPlayerUpdate", "d", playerid); return 1; Примерно так должен быть public: Code public OnPlayerUpdate(playerid) { if(GetPVarType(playerid, "DesktopTimer") == 0) { SetPVarInt(playerid, "DesktopTimer", SetTimerEx("Desktop_Function",1000,1,"d",playerid)); } SetPVarInt(playerid, "DesktopCount", GetPVarInt(playerid, "DesktopCount")+1); CallLocalFunction("ADD_OnPlayerUpdate", "d", playerid); return 1; } После этого public добавьте: Code #if defined _ALS_OnPlayerUpdate #undef OnPlayerUpdate #else #define _ALS_OnPlayerUpdate #endif #define OnPlayerUpdate ADD_OnPlayerUpdate если вы делаете в FS. После этого ищем public OnPlayerDisconnect(playerid, reason) и туда вставляем: Code KillTimer(GetPVarInt(playerid, "DesktopTimer")); return CallLocalFunction("ADD_OnPlayerDisconnect", "dd", playerid, reason); Примерно так должен быть public: Code public OnPlayerDisconnect(playerid, reason) { KillTimer(GetPVarInt(playerid, "DesktopTimer")); return CallLocalFunction("ADD_OnPlayerDisconnect", "dd", playerid, reason); } И после этого public добавьте: Code #if defined _ALS_OnPlayerDisconnect #undef OnPlayerDisconnect #else #define _ALS_OnPlayerDisconnect #endif #define OnPlayerDisconnect ADD_OnPlayerDisconnect Если вы делаете в FS. После этого добавляем функции в любое место: Code public Desktop_Function(playerid) { if(GetPlayerState(playerid) != PLAYER_STATE_WASTED && !IsPlayerNPC(playerid) && IsPlayerConnected(playerid)) { if(GetPVarInt(playerid, "DesktopCount") > 0) { SetPVarInt(playerid, "DesktopStatus", 0); } else if(GetPVarInt(playerid, "DesktopCount") <= 0) { SetPVarInt(playerid, "DesktopStatus", GetPVarInt(playerid, "DesktopStatus")+1); } SetPVarInt(playerid, "DesktopCount", 0); } return 1; }
stock ReturnPVarString(playerid, varname[]) { new varstring[256]; GetPVarString(playerid, varname, varstring, sizeof(varstring)); return varstring; } public ShowPlayerDialogWithAntiDesktop(playerid, dialogid, style, caption[], info[], button1[], button2[]) { SetPVarInt(playerid, "PrevDialogID", dialogid); SetPVarInt(playerid, "PrevDialogStyle", style); SetPVarString(playerid, "PrevDialogCaption", caption); SetPVarString(playerid, "PrevDialogInfo", info); SetPVarString(playerid, "PrevDialogButton1", button1); SetPVarString(playerid, "PrevDialogButton2", button2); SendClientMessage(playerid, 0xFFFFFFFF, "ShowPlayerDialog"); return ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2); } После этого ищем public OnDialogResponse и туда вставляем: Code if(GetPVarInt(playerid, "DesktopStatus") > 1) { return ShowPlayerDialog(playerid, GetPVarInt(playerid, "PrevDialogID"), GetPVarInt(playerid, "PrevDialogStyle"), ReturnPVarString(playerid, "PrevDialogCaption"), ReturnPVarString(playerid, "PrevDialogInfo"), ReturnPVarString(playerid, "PrevDialogButton1"), ReturnPVarString(playerid, "PrevDialogButton2")); } if(inputtext[0] == '\0' || !strlen(inputtext)) { format(inputtext, 128, " "); } return CallLocalFunction("ADD_OnDialogResponse", "dddds", playerid, dialogid, response, listitem, inputtext); Примерно так должен быть public: Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(GetPVarInt(playerid, "DesktopStatus") > 1) { return ShowPlayerDialog(playerid, GetPVarInt(playerid, "PrevDialogID"), GetPVarInt(playerid, "PrevDialogStyle"), ReturnPVarString(playerid, "PrevDialogCaption"), ReturnPVarString(playerid, "PrevDialogInfo"), ReturnPVarString(playerid, "PrevDialogButton1"), ReturnPVarString(playerid, "PrevDialogButton2")); } if(inputtext[0] == '\0' || !strlen(inputtext)) { format(inputtext, 128, " "); } return CallLocalFunction("ADD_OnDialogResponse", "dddds", playerid, dialogid, response, listitem, inputtext); } #define ShowPlayerDialog ShowPlayerDialogWithAntiDesktop И после этого public вставьте: Code #if defined _ALS_OnDialogResponse #undef OnDialogResponse #else #define _ALS_OnDialogResponse #endif #define OnDialogResponse ADD_OnDialogResponse Если вы делаете это в FS. Урок by - 26_RUSSS Авторы кода:Greetz, Meta.
zm-jail.ru Разработка сайта samp-pawno.ru
|
|
|
|