PDA

Просмотр полной версии : [Вопрос] Что бы я не делал, всегда переменная == 0 .__.



KakbeYura
02.01.2014, 20:34
case GANG_CREATE_FIN: // Регистрация банды
{
if(response == 1)
{
new str[700];
GangsCount++;
new g = (random(50)+random(50)+random(50)+random(50)+1);
new color[7], y,m,d, regdate[50], name[50];
getdate(y,m,d);
GetPVarString(playerid,"Gang_Create_Name",name,sizeof(name));
GetPVarString(playerid,"Gang_Create_Color",color,sizeof(color));
format(regdate,sizeof(regdate),"%02d.%02d.%d",d,m,y);
format(str,700,"INSERT INTO \
GANGS (ID, NAME, COLOR, REGDATE, SX, SY, SZ, SA, SI, SW, CASH, SKIN, KILLS, DEATHS, DRIFTSCR, CREATOR, RNAME1, RNAME2, RNAME3, RNAME4, RNAME5, RNAME6) \
VALUES ('%d', '%s', '%s', '%s', '-304.7875', '1298.8138', '53.4743', '0', '0', '0', '0', '23', '0', '0', '0', '%s', 'Новичёк', 'Боец', 'Продвинутый', 'Ветеран', 'Элита', 'Лидер');", \
g, name, color, regdate, pNick(playerid));
db_query(ServerBase, str);
PlayerInfo[playerid][GangID] = g;
PlayerInfo[playerid][GangR] = 6;
SetPlayerSkin(playerid, 23);
SetPlayerColor(playerid,HexToInt(color));
format(GangInfo[g][Name],50,"%s",name);
GangInfo[g][Color] = color;
GangInfo[g][Spawn_X] = -304.7875;
GangInfo[g][Spawn_Y] = 1298.8138;
GangInfo[g][Spawn_Z] = 53.4743;
GangInfo[g][Spawn_A] = 0;
GangInfo[g][Spawn_Interior] = 0;
GangInfo[g][Spawn_VirtualWorld] = 0;
GangInfo[g][Cash] = 0;
GangInfo[g][Skin] = 23;
GangInfo[g][AllKills] = 0;
GangInfo[g][AllDeaths] = 0;
GangInfo[g][AllDrift] = 0;
format(GangInfo[g][RangName1],50,"Новичёк");
format(GangInfo[g][RangName2],50,"Боец");
format(GangInfo[g][RangName3],50,"Продвинутый");
format(GangInfo[g][RangName4],50,"Ветеран");
format(GangInfo[g][RangName5],50,"Элита");
format(GangInfo[g][RangName6],50,"Лидер");
ShowPlayerDialog(playerid,NOMENU,DIALOG_STYLE_MSGBOX,"Регистрация","{FF0000}___________________________________\n\n{FFFFFF}Вы успешно создали банду!\n", "OK", "");
}
else return SendClientMessage(playerid,COLOR_MSG,""WARN_MSG"Вы отменили создание банды");
}
Переменная g ВСЕГДА почему то 0! Я пробовал всячески, не получается почему то.
По идеи мне нужен свободный ID для банды, от 1 и выше.

enum GangData
{
Name[50],
Color[7],
Float:Spawn_X,
Float:Spawn_Y,
Float:Spawn_Z,
Float:Spawn_A,
Spawn_Interior,
Spawn_VirtualWorld,
Cash,
Skin,
AllKills,
AllDeaths,
AllDrift,
RangName1[50],
RangName2[50],
RangName3[50],
RangName4[50],
RangName5[50],
RangName6[50],
}

new GangInfo[MAX_GANGS][GangData];

Я пробовал и циклами, и создавал глобальную переменную со счётом банд и добавлял один и уравнивал, всё-равно g == 0, хоть убейся. А если g == 0, то банды, которую я создаю, не существует, ибо проверки у меня if(PlayerInfo[playerid][GangID] != 0) ну вы поняли. Я убил на это часа 2-3.

Пельмень
02.01.2014, 23:19
Возможно у тебя в базе данных на ID стоит автоинкремент, по этому и 0 всегда (c) Tracker1, проверил только-что, с рандомом всё в порядке.

KakbeYura
03.01.2014, 17:27
Исправил сам, ну а если кому то интересно, то вот:

enum GangData
{
bool:BusyID = false,
Name[50],
Color[7],
Float:Spawn_X,
Float:Spawn_Y,
Float:Spawn_Z,
Float:Spawn_A,
Spawn_Interior,
Spawn_VirtualWorld,
Cash,
Skin,
AllKills,
AllDeaths,
AllDrift,
RangName1[50],
RangName2[50],
RangName3[50],
RangName4[50],
RangName5[50],
RangName6[50],
}

new GangInfo[MAX_GANGS][GangData];

for(new count = 1; count<MAX_GANGS; count++)
{
new str[500];
format(str,500,"SELECT * FROM GANGS WHERE ID = '%d' LIMIT 1",count);
u_result = db_query(ServerBase,str);
if(db_num_rows(u_result))
{
new Field[50];
db_get_field_assoc(u_result, "NAME", Field, sizeof(Field)), GangInfo[count][Name] = Field;
db_get_field_assoc(u_result, "COLOR", Field, sizeof(Field)), format(GangInfo[count][Color],7,"%s",Field);
db_get_field_assoc(u_result, "SX", Field, sizeof(Field)), GangInfo[count][Spawn_X] = floatstr(Field);
db_get_field_assoc(u_result, "SY", Field, sizeof(Field)), GangInfo[count][Spawn_Y] = floatstr(Field);
db_get_field_assoc(u_result, "SZ", Field, sizeof(Field)), GangInfo[count][Spawn_Z] = floatstr(Field);
db_get_field_assoc(u_result, "SA", Field, sizeof(Field)), GangInfo[count][Spawn_A] = float(strval(Field));
db_get_field_assoc(u_result, "SI", Field, sizeof(Field)), GangInfo[count][Spawn_Interior] = strval(Field);
db_get_field_assoc(u_result, "SW", Field, sizeof(Field)), GangInfo[count][Spawn_VirtualWorld] = strval(Field);
db_get_field_assoc(u_result, "CASH", Field, sizeof(Field)), GangInfo[count][Cash] = strval(Field);
db_get_field_assoc(u_result, "SKIN", Field, sizeof(Field)), GangInfo[count][Skin] = strval(Field);
db_get_field_assoc(u_result, "KILLS", Field, sizeof(Field)), GangInfo[count][AllKills] = strval(Field);
db_get_field_assoc(u_result, "DEATHS", Field, sizeof(Field)),GangInfo[count][AllDeaths] = strval(Field);
db_get_field_assoc(u_result, "RNAME1", Field, sizeof(Field)),GangInfo[count][RangName1] = Field;
db_get_field_assoc(u_result, "RNAME2", Field, sizeof(Field)),GangInfo[count][RangName2] = Field;
db_get_field_assoc(u_result, "RNAME3", Field, sizeof(Field)),GangInfo[count][RangName3] = Field;
db_get_field_assoc(u_result, "RNAME4", Field, sizeof(Field)),GangInfo[count][RangName4] = Field;
db_get_field_assoc(u_result, "RNAME5", Field, sizeof(Field)),GangInfo[count][RangName5] = Field;
db_get_field_assoc(u_result, "RNAME6", Field, sizeof(Field)),GangInfo[count][RangName6] = Field;
GangInfo[count][BusyID] = true;
}
else GangInfo[count][BusyID] = false;
}

case GANG_CREATE_FIN: // Регистрация банды
{
if(response == 1)
{
new str[700];
new g;
do g++;
while(GangInfo[g][BusyID] != false);

new color[7], y,m,d, regdate[50], name[50];
getdate(y,m,d);
GetPVarString(playerid,"Gang_Create_Name",name,sizeof(name));
GetPVarString(playerid,"Gang_Create_Color",color,sizeof(color));
DeletePVar(playerid,"Gang_Create_Name");
DeletePVar(playerid,"Gang_Create_Color");
format(regdate,sizeof(regdate),"%02d.%02d.%d",d,m,y);

format(str,700,"INSERT INTO \
GANGS (ID, NAME, COLOR, REGDATE, SX, SY, SZ, SA, SI, SW, CASH, SKIN, KILLS, DEATHS, DRIFTSCR, CREATOR, RNAME1, RNAME2, RNAME3, RNAME4, RNAME5, RNAME6) \
VALUES ('%d', '%s', '%s', '%s', '-304.7875', '1298.8138', '53.4743', '0', '0', '0', '0', '23', '0', '0', '0', '%s', 'Новичёк', 'Боец', 'Продвинутый', 'Ветеран', 'Элита', 'Лидер');", \
g, name, color, regdate, pNick(playerid));
db_query(ServerBase, str);

new color2[10];
format(color2,sizeof(color2), "%sFF", color);
SetPlayerColor(playerid,HexToInt(color2));
PlayerInfo[playerid][GangID] = g;
PlayerInfo[playerid][GangR] = 6;
SetPlayerSkin(playerid, 23);
SavePlayerGang(playerid);

format(GangInfo[g][Name],50,"%s",name);
GangInfo[g][BusyID] = true;
GangInfo[g][Color] = color;
GangInfo[g][Spawn_X] = -304.7875;
GangInfo[g][Spawn_Y] = 1298.8138;
GangInfo[g][Spawn_Z] = 53.4743;
GangInfo[g][Spawn_A] = 0;
GangInfo[g][Spawn_Interior] = 0;
GangInfo[g][Spawn_VirtualWorld] = 0;
GangInfo[g][Cash] = 0;
GangInfo[g][Skin] = 23;
GangInfo[g][AllKills] = 0;
GangInfo[g][AllDeaths] = 0;
GangInfo[g][AllDrift] = 0;
format(GangInfo[g][RangName1],50,"Новичёк");
format(GangInfo[g][RangName2],50,"Боец");
format(GangInfo[g][RangName3],50,"Продвинутый");
format(GangInfo[g][RangName4],50,"Ветеран");
format(GangInfo[g][RangName5],50,"Элита");
format(GangInfo[g][RangName6],50,"Лидер");

ShowPlayerDialog(playerid,NOMENU,DIALOG_STYLE_MSGBOX,"Регистрация","{FF0000}___________________________________\n\n{FFFFFF}Вы успешно создали банду!\n", "OK", "");
}
else return SendClientMessage(playerid,COLOR_MSG,""WARN_MSG"Вы отменили создание банды");
}

Osetin
03.01.2014, 21:43
Закрыто