как реализовать
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 13:53 | Сообщение # 1 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| Добрый день сново я Вчера целый вечер мучался с реализацией простой команды /stats, без окон а в чате что бы выводилась простенькая статистика и всё таки сделал (могу выложить) Тут с утра решил протестить что да как и дошла одна вещь самая последня что я пока хочу сделать.
1. Как реализовать что бы файл данных игрока (сохранения) грузились когда он входит на сервер. Я у себя менях файл данных зашёл всё по нулям 2. Как сделать когдя я убиваю мне дают +1 убийство и деньги допустим 5000, а у того кого я убил -1 в смерти и -1000 денег например и что бы это всё сохранялось 3. Как сделать что бы это всё сохранялось? и после выходы и захода вся стата загружалась ?
Что то наверное много вопросов задал
Желательно на пример я ещё со слов очень плохо понимаю. Если нужны куски мода или сам пишите дам посмеяться
Сообщение отредактировал
SeryogaPlus - Воскресенье, 24.06.2012, 13:57 |
|
| |
[S]ilverbac[k] | Дата: Воскресенье, 24.06.2012, 14:56 | Сообщение # 2 |
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17
Статус
отсутствует
| какой инклуд ты используеш(Dini, mxINI, ...)?
[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
|
|
| |
ZioHik | Дата: Воскресенье, 24.06.2012, 15:08 | Сообщение # 3 |
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29
Статус
отсутствует
| 2.Делай переменную потом в паблике OnPlayerDeath для killerid эту переменную ++ а для того кого убил playerid -- переменную и GivePlayerMoney(playerid,-1000); 3.Подгляди в моде godfather итд там есть паблики update login и registerДобавлено (24.06.2012, 14:08) --------------------------------------------- Например: Code PlayerInfo[killerid][pKills] ++; PlayerInfo[playerid][pKills] --; GivePlayerMoney(playerid,-1000); GivePlayerMoney(killerid,1000);
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 15:19 | Сообщение # 4 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| mxINI
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 15:30 | Сообщение # 5 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1)// Ид диалога Для Логина { if(response)// Если игрок нажал первую кнопку входа { if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. return 1; } new pass[64];// Масив с паролем strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога OnPlayerLogin(playerid,pass);// Запускаем паблик входа } else// Если игрок нажал Esc, вернём ему диалог { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. } } if(dialogid == 2)// Ид диалога для регистрации { if(response)// Если игрок нажал первую кнопку { if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. return 1; } new pass[64];// Масив с паролем strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога OnPlayerRegister(playerid,pass);// Запускаем паблик регистрации } else// Если игрок нажал Esc, вернём ему диалог { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. } } return 1; }
|
|
| |
[S]ilverbac[k] | Дата: Воскресенье, 24.06.2012, 15:31 | Сообщение # 6 |
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17
Статус
отсутствует
| Кинь public OnPlayerLogin
[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 15:33 | Сообщение # 7 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| А вот весь если что Code #include <a_samp> #include <mxINI> //------------------------------------------------------------------------------ forward ShowStats(playerid, targetid); //------------------------------------------------------------------------------ #define COLOR_GREEN 0x33AA33AA #define COLOR_ORANGE 0xFF9900AA //----------------- new PAccount[MAX_PLAYERS];// Есть аккаунт, или нет
enum pInfo { pPass[64], pAdmin, pCash, pKills, pDeaths, } new Player[MAX_PLAYERS][pInfo]; //-------------------------------[РАНДОМНЫЙ ЦВЕТ ИГРОКОВ]----------------------- new playerColors[200] = {0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF, 0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF, 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF, 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF, 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF, 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF, 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF, 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF, 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF, 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF, 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF, 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF, 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF, 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF, 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF, 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF, 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF, 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF, 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF, 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF, 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF, 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF, 0xD8C762FF,0xD8C762FF,0xFF1493FF,0xF4A460FF}; //------------------------------------------------------------------------------ public OnGameModeInit() { DisableInteriorEnterExits();//Убирает все маркеры от сингла что есть SetGameModeText("[RU]"); AddPlayerClass(5, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; }
main() { print("\n----------------------------------"); print("[RU]"); print("----------------------------------\n"); }
public OnGameModeExit() { return 1; }
public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; }
public OnPlayerConnect(playerid) { SetPlayerColor(playerid,playerColors[random(sizeof(playerColors))]);//Выдача рандомного цвета игрокам new playername[MAX_PLAYER_NAME];// Масив для имени игрока new string[128];// Путь до папки с именем игрока GetPlayerName(playerid,playername,sizeof(playername));// Узнаём имя игрока format(string,sizeof(string),"players/%s.ini", playername);// Путь к файлу с аккаунтом if(fexist(string))// Проверка на файл, если он есть то выполняется следующее действие. { PAccount[playerid] = 1;// Аккаунт есть } else// Если файла с именем нет, то выполняется это действие. { PAccount[playerid] = 0;// Аккаунта нет } if(PAccount[playerid] == 1)// Если аккаунт есть { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. Стиль диалога выставляем на ввод текста. } else// Если аккаунта нет { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. Стиль диалога выставляем на ввод текста. } return 1; } public OnPlayerDisconnect(playerid, reason) { SavePlayer(playerid); return 1; }
public OnPlayerSpawn(playerid) { return 1; }
public OnPlayerDeath(playerid, killerid, reason) { return 1; }
public OnVehicleSpawn(vehicleid) { return 1; }
public OnVehicleDeath(vehicleid, killerid) { return 1; }
public OnPlayerText(playerid, text[]) { return 1; } //------------------------------[КОМАНДЫ]--------------------------------------- public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256]; //-------------------------------[/STATS]--------------------------------------- if(!strcmp(cmd, "/stats", true) && IsPlayerConnected(playerid)) return ShowStats(playerid,playerid); return 0; } //------------------------------------------------------------------------------ public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; }
public OnPlayerExitVehicle(playerid, vehicleid) { return 1; }
public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; }
public OnPlayerEnterCheckpoint(playerid) { return 1; }
public OnPlayerLeaveCheckpoint(playerid) { return 1; }
public OnPlayerEnterRaceCheckpoint(playerid) { return 1; }
public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; }
public OnRconCommand(cmd[]) { return 1; }
public OnPlayerRequestSpawn(playerid) { return 1; }
public OnObjectMoved(objectid) { return 1; }
public OnPlayerObjectMoved(playerid, objectid) { return 1; }
public OnPlayerPickUpPickup(playerid, pickupid) { return 1; }
public OnVehicleMod(playerid, vehicleid, componentid) { return 1; }
public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; }
public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; }
public OnPlayerSelectedMenuRow(playerid, row) { return 1; }
public OnPlayerExitedMenu(playerid) { return 1; }
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; }
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; }
public OnRconLoginAttempt(ip[], password[], success) { return 1; }
public OnPlayerUpdate(playerid) { return 1; }
public OnPlayerStreamIn(playerid, forplayerid) { return 1; }
public OnPlayerStreamOut(playerid, forplayerid) { return 1; }
public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; }
public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1)// Ид диалога Для Логина { if(response)// Если игрок нажал первую кнопку входа { if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. return 1; } new pass[64];// Масив с паролем strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога OnPlayerLogin(playerid,pass);// Запускаем паблик входа } else// Если игрок нажал Esc, вернём ему диалог { ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. } } if(dialogid == 2)// Ид диалога для регистрации { if(response)// Если игрок нажал первую кнопку { if(!strlen(inputtext))// Если окно ввода пустое, выводим диалог снова { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. return 1; } new pass[64];// Масив с паролем strmid(pass,inputtext,0,strlen(inputtext),64);// Считываем текст с диалога OnPlayerRegister(playerid,pass);// Запускаем паблик регистрации } else// Если игрок нажал Esc, вернём ему диалог { ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Окно Регистрации","Здравствуйте\nВаш аккаунт не найден.\nЗарегистрируйтесь введя пароль в окошко","Ввод","");// Показываем диалог регистрации. } } return 1; }
public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; }
stock SavePlayer(playerid) { new string[64];// Масив с путём для файла new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока format(string, sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения new iniFile = ini_openFile(string);// Открываем файл по тому пути который указали. ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл ini_setInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Записываем админ уровень в файл ini_setInteger(iniFile,"Cash",Player[playerid][pCash]);// Записываем колличество денег к файл ini_setInteger(iniFile,"Kills",Player[playerid][pKills]);// Запиаем коллсывичество убийст к файл ini_setInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Запиаем коллсывичество смертей в файл ini_closeFile(iniFile);// Закрываем файл }
forward OnPlayerRegister(playerid, password[]); public OnPlayerRegister(playerid, password[])// Паблик регистрации { if(IsPlayerConnected(playerid))// Проверка на подключение игрока { new string[64];// Масив с путём для файла new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения new iniFile = ini_createFile(string);// Создаём файл с именем игрока в папке players if(iniFile < 0)// Если Файла нет { iniFile = ini_openFile(string);// Открываем } if(iniFile >= 0)// Если файл есть { strmid(Player[playerid][pPass],password,0,strlen(password),255);// Присваиваем масиву pPass, значение password[] ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл ini_closeFile(iniFile);// Закрываем файл ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. } } return 1; }
forward OnPlayerLogin(playerid,password[]); public OnPlayerLogin(playerid,password[]) { if(IsPlayerConnected(playerid))// Проверка на подключение игрока { new string[64];// Масив с путём для файла new pass[64];// Масив с паролем new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для загрузки new iniFile = ini_openFile(string);// Открываем файл ini_getString(iniFile,"Pass",pass,64);// Загружаем пароль if(strcmp(pass,password,true) == 0)// Если введёный пароль, соответсвует паролю при регистрации, то загружаем акк { ini_getString(iniFile,"Pass",Player[playerid][pPass],64);// Загружаем пароль ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Загружаем админ уровень ini_getInteger(iniFile,"Cash",Player[playerid][pCash]);// Загружаем кол-во денег ini_getInteger(iniFile,"Kills",Player[playerid][pKills]);// Загружаем кол-во убийств ini_getInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Загружаем кол-во смертей ini_closeFile(iniFile);// Закрываем файл } else// Если пароль не верен.. { ini_closeFile(iniFile);// Закрываем файл ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. return 1; } SendClientMessage(playerid,0xFF00000,"Добро пожаловать на наш сервер");// Выводим игрок сообщение SpawnPlayer(playerid);// Спавним игрока } return 1; }
public ShowStats(playerid,targetid) // /stats и всё что с ним связано { if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid)) { new coordsstring[256]; new kills = Player[playerid][pKills]; new deaths = Player[playerid][pDeaths]; new cash = Player[playerid][pCash]; new name[MAX_PLAYER_NAME]; format(coordsstring, sizeof(coordsstring),"{DB1111}---------------------------[Сататистика]---------------------------",name); SendClientMessage(playerid, COLOR_GREEN,coordsstring); format(coordsstring, sizeof(coordsstring), "{ffffff}Убийства:{DB1111}[%d] {ffffff}Cмерти:{DB1111}[%d] {ffffff}Деньги:{DB1111}[%d]",kills,deaths,cash); SendClientMessage(playerid, COLOR_GREEN,coordsstring); if(Player[playerid][pAdmin] == 1) { SendClientMessage(playerid,COLOR_ORANGE,"{db1111}Вы модератор {ffffff}[TDM] Сервера"); SendClientMessage(playerid,COLOR_ORANGE,"{DB1111}----------------------------------------------------------------------"); return 1; } else if(Player[playerid][pAdmin] == 2) { SendClientMessage(playerid,COLOR_ORANGE,"{db1111}Вы администратор {ffffff}[TDM] Сервера"); SendClientMessage(playerid,COLOR_ORANGE,"{DB1111}----------------------------------------------------------------------"); return 1; } } return 1; } Добавлено (24.06.2012, 14:33) ---------------------------------------------
Code forward OnPlayerLogin(playerid,password[]); public OnPlayerLogin(playerid,password[]) { if(IsPlayerConnected(playerid))// Проверка на подключение игрока { new string[64];// Масив с путём для файла new pass[64];// Масив с паролем new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для загрузки new iniFile = ini_openFile(string);// Открываем файл ini_getString(iniFile,"Pass",pass,64);// Загружаем пароль if(strcmp(pass,password,true) == 0)// Если введёный пароль, соответсвует паролю при регистрации, то загружаем акк { ini_getString(iniFile,"Pass",Player[playerid][pPass],64);// Загружаем пароль ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Загружаем админ уровень ini_getInteger(iniFile,"Cash",Player[playerid][pCash]);// Загружаем кол-во денег ini_getInteger(iniFile,"Kills",Player[playerid][pKills]);// Загружаем кол-во убийств ini_getInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Загружаем кол-во смертей ini_closeFile(iniFile);// Закрываем файл } else// Если пароль не верен.. { ini_closeFile(iniFile);// Закрываем файл ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. return 1; } SendClientMessage(playerid,0xFF00000,"Добро пожаловать на наш сервер");// Выводим игрок сообщение SpawnPlayer(playerid);// Спавним игрока } return 1; }
|
|
| |
[S]ilverbac[k] | Дата: Воскресенье, 24.06.2012, 15:41 | Сообщение # 8 |
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17
Статус
отсутствует
| Замени весь паблик OnPlayerLogin на это:
Code forward OnPlayerLogin(playerid,password[]); public OnPlayerLogin(playerid,password[]) { if(IsPlayerConnected(playerid))// Ïðîâåðêà íà ïîäêëþ÷åíèå èãðîêà { new string[64];// Ìàñèâ ñ ïóò¸ì äëÿ ôàéëà new pass[64];// Ìàñèâ ñ ïàðîëåì new playername[MAX_PLAYER_NAME];// Ìàñèâ äëÿ ïîëó÷åíèÿ èìåíè èãðîêà GetPlayerName(playerid, playername, sizeof(playername));// Ïîëó÷àåì Èìÿ èãðîêà format(string,sizeof(string), "players/%s.ini", playername);// Äîáàâëÿåì èìÿ èãðîêà, â ïóòü äëÿ çàãðóçêè new iniFile = ini_openFile(string);// Îòêðûâàåì ôàéë ini_getString(iniFile,"Pass",pass,64);// Çàãðóæàåì ïàðîëü if(strcmp(pass,password,true) == 0)// Åñëè ââåä¸íûé ïàðîëü, ñîîòâåòñâóåò ïàðîëþ ïðè ðåãèñòðàöèè, òî çàãðóæàåì àêê { ini_getString(iniFile,"Pass",Player[playerid][pPass],64);// Çàãðóæàåì ïàðîëü Player[playerid][pAdmin] = ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]);// Çàãðóæàåì àäìèí óðîâåíü Player[playerid][pCash] = ini_getInteger(iniFile,"Cash",Player[playerid][pCash]);// Çàãðóæàåì êîë-âî äåíåã Player[playerid][pKills] = ini_getInteger(iniFile,"Kills",Player[playerid][pKills]);// Çàãðóæàåì êîë-âî óáèéñòâ Player[playerid][pDeaths] = ini_getInteger(iniFile,"Deaths",Player[playerid][pDeaths]);// Çàãðóæàåì êîë-âî ñìåðòåé SetPlayerScore(playerid,Player[playerid][pKills]); GivePlayerMoney(playerid,Player[playerid][pCash]); ini_closeFile(iniFile);// Çàêðûâàåì ôàéë } else// Åñëè ïàðîëü íå âåðåí.. { ini_closeFile(iniFile);// Çàêðûâàåì ôàéë ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Îêíî Âõîäà","Çäðàâñòâóéòå\nÂàø àêêàóíò åñòü íà ñåðâåðå\nÂâåäèòå ñâîé ïàðîëü â îêîøêî","Ââîä","");// Ïîêàçûâàåì äèàëîã âõîäà â èãðó. return 1; } SendClientMessage(playerid,0xFF00000,"Äîáðî ïîæàëîâàòü íà íàø ñåðâåð");// Âûâîäèì èãðîê ñîîáùåíèå SpawnPlayer(playerid);// Ñïàâíèì èãðîêà } return 1; } Добавлено (24.06.2012, 14:41) --------------------------------------------- Не обращай внимание на иероглифы
[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 15:43 | Сообщение # 9 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| C:\Documents and Settings\Администратор\Рабочий стол\[RU]\gamemodes\new.pwn(377) : warning 217: loose indentation
вот тут какую то ошибку выдаёт
SendClientMessage(playerid,0xFF00000,"Aia?i ii?aeiaaou ia iao na?aa?");// Auaiaei ea?ie niiauaiea
Сообщение отредактировал
SeryogaPlus - Воскресенье, 24.06.2012, 15:45 |
|
| |
ZioHik | Дата: Воскресенье, 24.06.2012, 15:45 | Сообщение # 10 |
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29
Статус
отсутствует
| #pragma tabsize 0 в начало мода после инклудов
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 15:48 | Сообщение # 11 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| Всё ошибок нет щас протестюДобавлено (24.06.2012, 14:48) --------------------------------------------- хм зарегался и вот такая штука Pass = 12345 Admin = -9 Cash = -9 Kills = -9 Deaths = -9 везде -9 выдало
|
|
| |
ZioHik | Дата: Воскресенье, 24.06.2012, 15:56 | Сообщение # 12 |
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29
Статус
отсутствует
| При реге 0 выстави
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 15:57 | Сообщение # 13 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| Quote (ZioHik) При реге 0 выстави где ?
|
|
| |
[S]ilverbac[k] | Дата: Воскресенье, 24.06.2012, 16:21 | Сообщение # 14 |
.::Offline::.
Пахан
Сообщений: 723
[ 86 ]
Награды: 17
Статус
отсутствует
| Замени public OnPlayerRegister на этот
Code forward OnPlayerRegister(playerid, password[]); public OnPlayerRegister(playerid, password[])// Паблик регистрации { if(IsPlayerConnected(playerid))// Проверка на подключение игрока { new string[64];// Масив с путём для файла new playername[MAX_PLAYER_NAME];// Масив для получения имени игрока GetPlayerName(playerid, playername, sizeof(playername));// Получаем Имя игрока format(string,sizeof(string), "players/%s.ini", playername);// Добавляем имя игрока, в путь для сохранения new iniFile = ini_createFile(string);// Создаём файл с именем игрока в папке players if(iniFile < 0)// Если Файла нет { iniFile = ini_openFile(string);// Открываем } if(iniFile >= 0)// Если файл есть { strmid(Player[playerid][pPass],password,0,strlen(password),255);// Присваиваем масиву pPass, значение password[] ini_setString(iniFile,"Pass",Player[playerid][pPass]);// Записываем пароль игрока в файл ini_setInteger(iniFile,"Admin",0);// Загружаем админ уровень ini_setInteger(iniFile,"Cash",1000);// Загружаем кол-во денег ini_setInteger(iniFile,"Kills",0);// Загружаем кол-во убийств ini_setInteger(iniFile,"Deaths",0);// Загружаем кол-во смертей ini_closeFile(iniFile);// Закрываем файл ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Окно Входа","Здравствуйте\nВаш аккаунт есть на сервере\nВведите свой пароль в окошко","Ввод","");// Показываем диалог входа в игру. } } return 1; }
[FS]Neon[APP]FCP[APP]Vehicle Tuning Generator ||||| 20% -- Работа приостановленаОбложка:
|
|
| |
SeryogaPlus | Дата: Воскресенье, 24.06.2012, 16:27 | Сообщение # 15 |
.::Offline::.
Разбойник
Сообщений: 39
[ 0 ]
Награды: 0
Статус
отсутствует
| всё работает как я понял ini_setInteger(iniFile,"Cash",1000);// Загружаем кол-во денег Выдаёт 1000 после регистрации в теории, а на деле не даёт
|
|
| |
|