PDA

Просмотр полной версии : [Вопрос] Изменение переменной pMoney



Albert
29.12.2014, 13:55
Сделал пикап на респауне с выдочей $100.000


if(pickupid == admmoney) // Admin Money
{
GivePlayerMoney(playerid, 100000);

}

Как сделать чтобы к pMoney прибавлялось $100.000?
Пробовал PlayerInfo[playerid][pMoney] +100000; потом пробовал PlayerInfo[playerid][pMoney] =+100000; Выдаёт ошибки

L0ndl3m
29.12.2014, 13:56
А вы попробуйте так:

PlayerInfo[playerid][pMoney] += 100000;

#Gabriel
29.12.2014, 13:58
if(pickupid == admmoney)
{
PlayerInfo[playerid][pMoney] += 100000;
return true;
}

Ошибки пиши сюда.

L0ndl3m
29.12.2014, 14:11
if(pickupid == admmoney)
{
PlayerInfo[playerid][pMoney] += 100000;
return true;
}
Ошибки пиши сюда.
Зачем возврат здесь? Никто не просил завершать паблик преждевременно.

Albert
29.12.2014, 14:16
if(pickupid == admmoney) // Admin Money
{
GivePlayerMoney(playerid, 100000);
PlayerInfo[playerid][pMoney] += 100000;

}

В итоге:



E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(311) : error 028: invalid subscript (not an array or too many subscripts): "PlayerInfo"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(311) : warning 215: expression has no effect
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(311) : error 001: expected token: ";", but found "]"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(311) : error 029: invalid expression, assumed zero
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(311) : fatal error 107: too many error messages on one line

L0ndl3m
29.12.2014, 14:21
У Вас энумератора вообще нет. Не удивляюсь, что сохранения аккаунтов тоже нет.

Albert
29.12.2014, 14:38
Взял new.pwn с регистрацией и сохранением аккаунтов с этого форума.
Вот часть кода


enum PlayerInfo//Даём название нашему enum
{
pName[MAX_PLAYER_NAME],//Создаём новый массив для записи имени и ставим запятую
pPassword[64],//Создаём новый массив для записи пароля и ставим запятую
pMoney,//Создадим новую переменную для записи денег и ставим запятую
bool: pLogged,//Создадим новую переменную логического типа для записи статистики авторизации и ставим запятую
}
new pInfo[MAX_PLAYERS][PlayerInfo];


public OnPlayerDisconnect(playerid)
{
SavePlayer(playerid);
//Тут остальной код
RemovePlayerInfo(playerid);
return 1;
}


stock SavePlayer(playerid)
{
new account[37];
format(account,sizeof(account),"users/%s.ini",pNick(playerid));
new iniFile = ini_openFile(account);
ini_setString(iniFile, "Пароль", pInfo[playerid][pPassword]);
ini_setInteger(iniFile, "Деньги", pInfo[playerid][pMoney]);
ini_closeFile(iniFile);
return 1;
}

Privies
29.12.2014, 14:54
Убери
GivePlayerMoney(playerid, 100000);


Добавь

PlayerInfo[playerid][pMoney] += 100000;

Albert
29.12.2014, 15:32
Убери
GivePlayerMoney(playerid, 100000);


Добавь

PlayerInfo[playerid][pMoney] += 100000;

Всёравно ошибки

L0ndl3m
29.12.2014, 15:50
pInfo[playerid][pMoney] += 100000;

Privies
29.12.2014, 15:58
Ооой.. Не заметил. Вообще странно ты сделал, но да ладно.

Albert
29.12.2014, 16:37
pInfo[playerid][pMoney] += 100000;


Ответ решён. Большое спасибо. При перезаходе деньги взятые сохраняются.