Здравствуйте, возникла такая проблема - у меня есть массив в котором записаны иды и координаты пикапов, с него идёт создание для каждого игрока и собственно сохранение и считывание при дальнейшей загрузке:
И собственно сама загрузка:PHP код:
При регистрации игрока :
new str[250];
for(new i = 0; i < ArtefaktPiCkUpS;i ++)
{
if( i < (ArtefaktPiCkUpS-1) ) strcat(str, "0 ");
else strcat(str, "0");
PlayerInfo[playerid][PlayerPickup][i] = CreateDynamicPickup(ArtZones[i][ObjID], 23, ArtZones[i][CoordPick][0], ArtZones[i][CoordPick][1], ArtZones[i][CoordPick][2], -1, -1, playerid);
}
сток
Pick_SaveInfo(playerid)
{
new string[350], str[256];
strcat(string, "UPDATE `Accounts` SET `Upped` = '");
for(new i = 0; i < ArtefaktPiCkUpS;i ++)
{
if( i < (ArtefaktPiCkUpS-1) ) format(str, sizeof(str), "%d ", UppedArtefaktPiCkUpS[playerid][i]);
else format(str, sizeof(str), "%d", UppedArtefaktPiCkUpS[playerid][i]);
strcat(string, str);
}
format(str, sizeof(str), "', `AllPick` = '%d' WHERE `Nickname` = '%s'", PlayerInfo[playerid][AllPick], PlayerInfo[playerid][pName]);
strcat(string, str);
mysql_tquery(MYSQL_ARG, string, "", "");
return true;
}
сам подбор:
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
for(new i = 0; i < ArtefaktPiCkUpS; i++)
if(pickupid == PlayerInfo[playerid][PlayerPickup][i])
{
PlayerInfo[playerid][AllPick]++;
UppedArtefaktPiCkUpS[playerid][i] = 1;
DestroyDynamicPickup(PlayerInfo[playerid][PlayerPickup][i]);
Pick_SaveInfo(playerid);
new string[144];
if(PlayerInfo[playerid][AllPick] == ArtefaktPiCkUpS)
{
SendClientMessageToAll(0xCC6699FF,string);
GivePlayerMoney(playerid, 1000000*COMBO_PREDMER_EARN);
}
else
{
GivePlayerMoney(playerid, (ArtZones[i][ObjID]*random(7))*COMBO_PREDMER_EARN);
}
break;
}
return 1;
}
При коннекте и дисконнекте обнуляю:
PlayerInfo[playerid][AllPick] = 0;
for(new i = 0; i < ArtefaktPiCkUpS;i ++)
UppedArtefaktPiCkUpS[playerid][i] = 0;
Но дело в том, что можно подбирать уже собранные пикапы при перезаходе, что не так в коде?PHP код:
if(PlayerInfo[playerid][AllPick] != ArtefaktPiCkUpS)
{
new result[ArtefaktPiCkUpS];//+1
cache_get_field_content(0, "Upped", result, MYSQL_ARG, sizeof(result));
sscanf(result, "a<i>[115]", UppedArtefaktPiCkUpS[playerid]);
for(new i = 0; i < ArtefaktPiCkUpS; i++)
if(UppedArtefaktPiCkUpS[playerid][i] == 0)
PlayerInfo[playerid][PlayerPickup][i] = CreateDynamicPickup(ArtZones[i][ObjID], 23, ArtZones[i][CoordPick][0], ArtZones[i][CoordPick][1], ArtZones[i][CoordPick][2], -1, -1, playerid);
}