h656 Дата: Среда, 03.08.2011, 11:57:23 | Сообщение # 1
Группа: Пользователи
Сообщений: 23
Сделал регистрацию, не сохраняет: Member, ну назначаю себя лидером, в файле пишит Leader = 1 а Member не пишит, и Rank тоже не пишит, и ещё хочу спросить я прописал инфо спавна (паблик spawn)почему-то не появляется перс...хелп Code
public OnPlayerConnect(playerid) { new string[128]; PlayerInfo[playerid][pMoney] = 0; PlayerInfo[playerid][pLevel] = 1; PlayerInfo[playerid][pChar] = 0; PlayerInfo[playerid][pMember] = 0; PlayerInfo[playerid][pAdmin] = 0; PlayerInfo[playerid][pLeader] = 0; PlayerInfo[playerid][pRank] = 0; format(string,sizeof(string),AccauntBD,PlayerName(playerid)); if(fexist(string)) // ищем файл игрока { ShowPlayerLoginDialog(playerid); // если он есть открываем диолог логина } else { ShowPlayerRegisterDialog(playerid); // если его нет открываем диолог регистрации } return 1; } public OnPlayerDisconnect(playerid, reason) { OnPlayerSave(playerid); // сохраняет акк игрока при выходе с сервера return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_LOGIN) // диалог логина { if(!response) Kick(playerid); if(strlen(inputtext) == 0) return ShowPlayerLoginDialog(playerid); OnPlayerLogged(playerid, inputtext); return 1; } if(dialogid == DIALOG_REGISTER) // диалог регистрации { if(!response) Kick(playerid); if(strlen(inputtext) == 0) return ShowPlayerRegisterDialog(playerid); ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Регистрация","Какого пола будет ваш персонаж:","Мужского","Женского"); PlayerPlaySound(playerid, 1185, 0.0, 0.0, 0.0); OnPlayerRegistered(playerid, inputtext); return 1; } if(dialogid == 10) { switch(listitem) { case 0: { SendClientMessage(playerid,COLOR_GREY, "Вы выбрали Мужской пол"); SetPlayerSkin(playerid,26); } case 1: { SendClientMessage(playerid,COLOR_GREY, "Вы выбрали Женский пол"); SetPlayerSkin(playerid,12); } } } return 1; } public OnPlayerRegistered(playerid, password[]) { new IP[24],strdate[24],string[128]; new year,month,day; getdate(year, month, day); GetPlayerIp(playerid, IP, sizeof(IP)); format(string,sizeof(string),AccauntBD,PlayerName(playerid)); new iniFile = ini_createFile(string); if(iniFile < 0) iniFile = ini_openFile(string); ini_setString(iniFile, "Password",password); format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year); ini_setString(iniFile, "RegDate", strdate); ini_setString(iniFile, "IP",IP); ini_setInteger(iniFile,"Money",0); ini_setInteger(iniFile,"Level",1); ini_setInteger(iniFile,"Skin",0); ini_setInteger(iniFile,"Member",0); ini_setInteger(iniFile,"AdminLevel",0); ini_setInteger(iniFile,"Leader",0); ini_setInteger(iniFile,"Rank",0); ini_closeFile(iniFile); OnPlayerLogged(playerid,password); format(string,sizeof(string), "Вы зарегистрировались и автоматически залогинились. Ваш пароль: %s .",password); SendClientMessage(playerid,COLOR_ORANGE,string); SpawnPlayer(playerid); return 1; } public OnPlayerLogged(playerid, password[]) { new string[128]; format(string,sizeof(string),AccauntBD,PlayerName(playerid)); new iniFile = ini_openFile(string); ini_getString(iniFile, "Password",string); if(strcmp(string,password, true, 10) == 0) { ini_getInteger(iniFile,"Money",PlayerInfo[playerid][pMoney]); ini_getInteger(iniFile,"Level",PlayerInfo[playerid][pLevel]); ini_getInteger(iniFile,"Skin",PlayerInfo[playerid][pChar]); ini_getInteger(iniFile,"Member",PlayerInfo[playerid][pMember]); ini_getInteger(iniFile,"AdminLevel",PlayerInfo[playerid][pAdmin]); ini_getInteger(iniFile,"Leader",PlayerInfo[playerid][pLeader]); ini_getInteger(iniFile,"Rank",PlayerInfo[playerid][pRank]); ini_closeFile(iniFile); GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]); SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]); } else { ShowPlayerLoginDialog(playerid); SendClientMessage(playerid,COLOR_RED,"Неверный пароль. Попробуйте еще раз"); ini_closeFile(iniFile); } return 1; } public OnPlayerSave(playerid) { new string[128]; format(string,sizeof(string),AccauntBD,PlayerName(playerid)); new iniFile = ini_openFile (string); ini_setInteger(iniFile,"Money",PlayerInfo[playerid][pMoney]); ini_setInteger(iniFile,"Level",PlayerInfo[playerid][pLevel]); ini_setInteger(iniFile,"Skin",PlayerInfo[playerid][pChar]); ini_setInteger(iniFile,"Member",PlayerInfo[playerid][pMember]); ini_setInteger(iniFile,"AdminLevel",PlayerInfo[playerid][pAdmin]); ini_setInteger(iniFile,"Leader",PlayerInfo[playerid][pLeader]); ini_setInteger(iniFile,"Rank",PlayerInfo[playerid][pRank]); ini_closeFile(iniFile); return 1; } public ShowPlayerRegisterDialog(playerid) // тут изменять то что пишет игроку если он первый раз на сервере { new string[256]; format(string,sizeof(string), "Добро пожаловать на сервер!\nПожалуйста зарегистрируйтесь ваш ник '%s'\nвведите пароль и нажмите 'Ок'",PlayerName(playerid)); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация:", string, "Ок", "Выход"); return 1; } public ShowPlayerLoginDialog(playerid) // тут изменять то что пишет игроку если он уже зареган { new string[256]; format(string,sizeof(string), "Здраствуйте %s вы здесь уже зарегистрированы\nпожалуйтса введите свой пароль\nуказанный при регистрации в окошко ниже",PlayerName(playerid)); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация:", string, "Ок", "Выход"); return 1; } stock PlayerName(playerid) // функция узнающая име игрока (автора не знаю) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; } public OnPlayerSpawn(playerid) { if (PlayerInfo[playerid][pMember] == 0) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerFacingAngle(playerid, 0); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); return 1; } }
Сообщение отредактировал h656 - Среда, 03.08.2011, 11:57:53
Сообщение Сделал регистрацию, не сохраняет: Member, ну назначаю себя лидером, в файле пишит Leader = 1 а Member не пишит, и Rank тоже не пишит, и ещё хочу спросить я прописал инфо спавна (паблик spawn)почему-то не появляется перс...хелп Code
public OnPlayerConnect(playerid) { new string[128]; PlayerInfo[playerid][pMoney] = 0; PlayerInfo[playerid][pLevel] = 1; PlayerInfo[playerid][pChar] = 0; PlayerInfo[playerid][pMember] = 0; PlayerInfo[playerid][pAdmin] = 0; PlayerInfo[playerid][pLeader] = 0; PlayerInfo[playerid][pRank] = 0; format(string,sizeof(string),AccauntBD,PlayerName(playerid)); if(fexist(string)) // ищем файл игрока { ShowPlayerLoginDialog(playerid); // если он есть открываем диолог логина } else { ShowPlayerRegisterDialog(playerid); // если его нет открываем диолог регистрации } return 1; } public OnPlayerDisconnect(playerid, reason) { OnPlayerSave(playerid); // сохраняет акк игрока при выходе с сервера return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_LOGIN) // диалог логина { if(!response) Kick(playerid); if(strlen(inputtext) == 0) return ShowPlayerLoginDialog(playerid); OnPlayerLogged(playerid, inputtext); return 1; } if(dialogid == DIALOG_REGISTER) // диалог регистрации { if(!response) Kick(playerid); if(strlen(inputtext) == 0) return ShowPlayerRegisterDialog(playerid); ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Регистрация","Какого пола будет ваш персонаж:","Мужского","Женского"); PlayerPlaySound(playerid, 1185, 0.0, 0.0, 0.0); OnPlayerRegistered(playerid, inputtext); return 1; } if(dialogid == 10) { switch(listitem) { case 0: { SendClientMessage(playerid,COLOR_GREY, "Вы выбрали Мужской пол"); SetPlayerSkin(playerid,26); } case 1: { SendClientMessage(playerid,COLOR_GREY, "Вы выбрали Женский пол"); SetPlayerSkin(playerid,12); } } } return 1; } public OnPlayerRegistered(playerid, password[]) { new IP[24],strdate[24],string[128]; new year,month,day; getdate(year, month, day); GetPlayerIp(playerid, IP, sizeof(IP)); format(string,sizeof(string),AccauntBD,PlayerName(playerid)); new iniFile = ini_createFile(string); if(iniFile < 0) iniFile = ini_openFile(string); ini_setString(iniFile, "Password",password); format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year); ini_setString(iniFile, "RegDate", strdate); ini_setString(iniFile, "IP",IP); ini_setInteger(iniFile,"Money",0); ini_setInteger(iniFile,"Level",1); ini_setInteger(iniFile,"Skin",0); ini_setInteger(iniFile,"Member",0); ini_setInteger(iniFile,"AdminLevel",0); ini_setInteger(iniFile,"Leader",0); ini_setInteger(iniFile,"Rank",0); ini_closeFile(iniFile); OnPlayerLogged(playerid,password); format(string,sizeof(string), "Вы зарегистрировались и автоматически залогинились. Ваш пароль: %s .",password); SendClientMessage(playerid,COLOR_ORANGE,string); SpawnPlayer(playerid); return 1; } public OnPlayerLogged(playerid, password[]) { new string[128]; format(string,sizeof(string),AccauntBD,PlayerName(playerid)); new iniFile = ini_openFile(string); ini_getString(iniFile, "Password",string); if(strcmp(string,password, true, 10) == 0) { ini_getInteger(iniFile,"Money",PlayerInfo[playerid][pMoney]); ini_getInteger(iniFile,"Level",PlayerInfo[playerid][pLevel]); ini_getInteger(iniFile,"Skin",PlayerInfo[playerid][pChar]); ini_getInteger(iniFile,"Member",PlayerInfo[playerid][pMember]); ini_getInteger(iniFile,"AdminLevel",PlayerInfo[playerid][pAdmin]); ini_getInteger(iniFile,"Leader",PlayerInfo[playerid][pLeader]); ini_getInteger(iniFile,"Rank",PlayerInfo[playerid][pRank]); ini_closeFile(iniFile); GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]); SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]); } else { ShowPlayerLoginDialog(playerid); SendClientMessage(playerid,COLOR_RED,"Неверный пароль. Попробуйте еще раз"); ini_closeFile(iniFile); } return 1; } public OnPlayerSave(playerid) { new string[128]; format(string,sizeof(string),AccauntBD,PlayerName(playerid)); new iniFile = ini_openFile (string); ini_setInteger(iniFile,"Money",PlayerInfo[playerid][pMoney]); ini_setInteger(iniFile,"Level",PlayerInfo[playerid][pLevel]); ini_setInteger(iniFile,"Skin",PlayerInfo[playerid][pChar]); ini_setInteger(iniFile,"Member",PlayerInfo[playerid][pMember]); ini_setInteger(iniFile,"AdminLevel",PlayerInfo[playerid][pAdmin]); ini_setInteger(iniFile,"Leader",PlayerInfo[playerid][pLeader]); ini_setInteger(iniFile,"Rank",PlayerInfo[playerid][pRank]); ini_closeFile(iniFile); return 1; } public ShowPlayerRegisterDialog(playerid) // тут изменять то что пишет игроку если он первый раз на сервере { new string[256]; format(string,sizeof(string), "Добро пожаловать на сервер!\nПожалуйста зарегистрируйтесь ваш ник '%s'\nвведите пароль и нажмите 'Ок'",PlayerName(playerid)); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация:", string, "Ок", "Выход"); return 1; } public ShowPlayerLoginDialog(playerid) // тут изменять то что пишет игроку если он уже зареган { new string[256]; format(string,sizeof(string), "Здраствуйте %s вы здесь уже зарегистрированы\nпожалуйтса введите свой пароль\nуказанный при регистрации в окошко ниже",PlayerName(playerid)); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация:", string, "Ок", "Выход"); return 1; } stock PlayerName(playerid) // функция узнающая име игрока (автора не знаю) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; } public OnPlayerSpawn(playerid) { if (PlayerInfo[playerid][pMember] == 0) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerFacingAngle(playerid, 0); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); return 1; } }
Автор - h656 Дата добавления - 03.08.2011 в 11:57:23