Guten Tag liebe Breadfisher,
Habe Problem mit meinem Drogensystem.
Dieses Wurde selbst erstellt.
Mein Problem /pflugen und /pflanzen und /pflanzegiesen.
bei /pflanzen 1/2/3/4 wird das Object erstellt und in der Datenbank auch erstellt nur der Text wird nicht erstellt.
bei /pflugen wird nur die Letzte Pflanze mit der Größten ID der Datenbank funktioniert es nur eine einzigen will aber alle haben.
Das gleiche Problem bei /pflanzegiesen.
Hier meine Codes:
enum drugsEnum{
d_id,
Float:d_x,
Float:d_y,
Float:d_z,
d_type,
d_wasser,
d_prog,
d_obj,
Text3D:d_text,
d_dbid,
d_fraktion
};
new dPlant[100][drugsEnum];
forward DrugsLoads();
forward DrugsUpdate();
forward DrugsSave();
forward DrugsTimer();
OnGameModeInit
new query2[128];
format(query2,128,"SELECT * FROM drugs");
mysql_function_query(Handle, query2, true, "DrugsLoads", "");
SetTimer("DrugsTimer", 3600000, true);
public DrugsTimer()
{
for(new i=0; i<sizeof(dPlant); i++)
{
if(dPlant[i][d_wasser] >= 3)
{
dPlant[i][d_prog] += 10;
dPlant[i][d_wasser] -= 1;
}
else if(dPlant[i][d_wasser] == 2)
{
dPlant[i][d_wasser] -= 1;
dPlant[i][d_prog] += 10;
for (new p=0; p<MAX_PLAYERS; p++)
{
if(pInfo[p][pFrak] == dPlant[i][d_fraktion])
{
new str[128];
format(str,128,"Hinweis Pflanze(%i) braucht Wasser sonst Stirbt die Pflanze aus.", dPlant[i][d_id]);
SendClientMessage(p, COLOR_YELLOW, str);
}
}
}
else
{
}
}
DrugsUpdate();
return 1;
}
public DrugsSave()
{
new query[128];
for(new i=0; i<sizeof(dPlant); i++)
{
if(dPlant[i][d_wasser] >= 1)
{
format(query,128,"UPDATE drugs SET Wasser='%i', Fortschritt='%i' WHERE id='%i'",dPlant[i][d_wasser], dPlant[i][d_prog], dPlant[i][d_dbid]);
mysql_function_query(Handle, query, false, "", "");
}
else if(dPlant[i][d_wasser] == 0)
{
format(query,128,"DELETE FROM drugs WHERE id='%i'", dPlant[i][d_dbid]);
mysql_function_query(Handle, query, false, "", "");
}
}
return 1;
}
public DrugsUpdate()
{
for(new i=0; i<sizeof(dPlant); i++)
{
new dddtext[128];
format(dddtext,128,"[Pflanze]\nID: %i\nWasser %i/5l\nFortschritt: %i/100",i,dPlant[i][d_wasser],dPlant[i][d_prog]);
Update3DTextLabelText(dPlant[i][d_text], COLOR_WHITE, dddtext);
DrugsSave();
}
return 1;
}
public DrugsCreate(id)
{
hInfo[id][h_id]=cache_insert_id();
return 1;
}
public DrugsLoads()
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,Handle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id=getFreeDrugsID();
new dddtext[128];
dPlant[id][d_x]=cache_get_field_content_float(i, "X", Handle);
dPlant[id][d_y]=cache_get_field_content_float(i, "Y", Handle);
dPlant[id][d_z]=cache_get_field_content_float(i, "Z", Handle);
dPlant[id][d_wasser]=cache_get_field_content_int(i, "Wasser", Handle);
dPlant[id][d_prog]=cache_get_field_content_int(i, "Fortschritt", Handle);
dPlant[id][d_type]=cache_get_field_content_int(i, "Type", Handle);
dPlant[id][d_dbid] = cache_get_field_content_int(i, "id", Handle);
dPlant[id][d_obj]=CreateObject(dPlant[id][d_type], dPlant[id][d_x], dPlant[id][d_y], dPlant[id][d_z], 0.0, 0.0, 0.0);
format(dddtext,128,"[Pflanze]\nID: %i\nWasser %i/5l\nFortschritt: %i/100",dPlant[id][d_dbid],dPlant[id][d_wasser],dPlant[id][d_prog]);
dPlant[id][d_text] = Create3DTextLabel(dddtext,COLOR_WHITE,dPlant[id][d_x],dPlant[id][d_y],dPlant[id][d_z],20,0,0);
dPlant[id][d_fraktion] = cache_get_field_content_int(i, "FraktionsID", Handle);
}
return 1;
}
getFreeDrugsID()
{
for(new i=0; i<sizeof(dPlant); i++)
{
if(dPlant[i][d_id]==0)return i;
}
return 0;
}
Befehle:
ocmd:pflugen(playerid, params[])
{
for(new i=0; i<sizeof(dPlant); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 8, dPlant[i][d_x], dPlant[i][d_y], dPlant[i][d_z]))
{
new msg[128];
format(msg,128,"Du stehst an der Pflanze(%i)", dPlant[i][d_dbid]);
SendClientMessage(playerid, COLOR_CYAN, msg);
return 1;
}
}
/*for(new i=0; i<sizeof(dPlant); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 8, dPlant[i][d_x], dPlant[i][d_y], dPlant[i][d_z]))
{
if(pInfo[playerid][pFrak] == dPlant[i][d_fraktion])
{
if(dPlant[i][d_prog] == 100)
{
new erbung = random(50) + 10;
switch(dPlant[i][d_type])
{
case 1580:{pInfo[playerid][pMarh] += erbung;}//Marihuana
case 1577:{pInfo[playerid][pLSD] += erbung;}//LSD
case 1578:{pInfo[playerid][pKoks] += erbung;}//Kokain
case 1579:{pInfo[playerid][pHeroin] += erbung;}//Heroin
}
dPlant[i][d_prog] = 0;
SendClientMessage(playerid, COLOR_CYAN, "Erfolgreich die Pflanze gepflügt!");
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Diese Pflanze ist nicht Reif genug!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Diese Pflanze gehört nicht dir!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du stehst an keiner Pflanze!");
return 1;
}
}*/
return 1;
}
ocmd:pflanzegiesen(playerid, params[])
{
for(new i=0; i<sizeof(dPlant); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, dPlant[i][d_x], dPlant[i][d_y], dPlant[i][d_z]))
{
if(pInfo[playerid][pFrak] == dPlant[i][d_fraktion])
{
if(dPlant[i][d_wasser] < 5)
{
dPlant[i][d_wasser] = 5;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "Deine Pflanze hat genug Wasser!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Diese Pflanze gehört nicht dir!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du stehst an keiner Pflanze!");
}
}
return 1;
}
ocmd:pflanzen(playerid, params[])
{
new cmdint;
if(sscanf(params,"i",cmdint))return SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /pflanzen [1 = Marihuana, 2 = Kokain, 3 = LSD, 4 = Heroin]");
if(cmdint == 1)
{
if(pInfo[playerid][sMarh] >= 1)
{
new Float:ppx, Float:ppy, Float:ppz;
GetPlayerPos(playerid, ppx, ppy, ppz);
new Query[999];
format(Query, 999, "INSERT INTO drugs (X, Y, Z, Wasser, Fortschritt, Type, FraktionsID) VALUES ('%f', '%f', '%f', '5', '0', '1580', '%i')", ppx, ppy, ppz, pInfo[playerid][pFrak]);
mysql_function_query(Handle, Query, true, "DrugsCreate", "");
pInfo[playerid][sMarh] -= 1;
for(new i=0; i<sizeof(dPlant); i++)
{
dPlant[i][d_obj] = CreateObject(1580, ppx, ppy, ppz, 0.0, 0.0, 0.0);
new dddtext[128];
format(dddtext,128,"[Pflanze]\nID: %i\nWasser %i/5l\nFortschritt: %i/100",dPlant[i][d_dbid],dPlant[i][d_wasser],dPlant[i][d_prog]);
dPlant[i][d_text] = Create3DTextLabel(dddtext,COLOR_WHITE,dPlant[i][d_x],dPlant[i][d_y],dPlant[i][d_z],20,0,1);
DrugsSave();
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Marihuana Samen!");
}
}
else if(cmdint == 2)
{
if(pInfo[playerid][sKoks] >= 1)
{
new Float:ppx, Float:ppy, Float:ppz;
GetPlayerPos(playerid, ppx, ppy, ppz);
new Query[999];
format(Query, 999, "INSERT INTO drugs (X, Y, Z, Wasser, Fortschritt, Type, FraktionsID) VALUES ('%f', '%f', '%f', '5', '0', '1578', '%i')", ppx, ppy, ppz, pInfo[playerid][pFrak]);
mysql_function_query(Handle, Query, true, "DrugsCreate", "i", getFreeDrugsID());
pInfo[playerid][sKoks] -= 1;
for(new i=0; i<sizeof(dPlant); i++)
{
dPlant[i][d_obj] = CreateObject(1578, ppx, ppy, ppz, 0.0, 0.0, 0.0);
new dddtext[128];
format(dddtext,128,"[Pflanze]\nID: %i\nWasser %i/5l\nFortschritt: %i/100",dPlant[i][d_dbid],dPlant[i][d_wasser],dPlant[i][d_prog]);
dPlant[i][d_text] = Create3DTextLabel(dddtext,COLOR_WHITE,dPlant[i][d_x],dPlant[i][d_y],dPlant[i][d_z],20,0,1);
DrugsSave();
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Kokain Samen!");
}
}
else if(cmdint == 3)
{
if(pInfo[playerid][sLSD] >= 1)
{
new Float:ppx, Float:ppy, Float:ppz;
GetPlayerPos(playerid, ppx, ppy, ppz);
new Query[999];
format(Query, 999, "INSERT INTO drugs (X, Y, Z, Wasser, Fortschritt, Type, FraktionsID) VALUES ('%f', '%f', '%f', '5', '0', '1577', '%i')", ppx, ppy, ppz, pInfo[playerid][pFrak]);
mysql_function_query(Handle, Query, true, "DrugsCreate", "i", getFreeDrugsID());
pInfo[playerid][sLSD] -= 1;
for(new i=0; i<sizeof(dPlant); i++)
{
dPlant[i][d_obj] = CreateObject(1577, ppx, ppy, ppz, 0.0, 0.0, 0.0);
new dddtext[128];
format(dddtext,128,"[Pflanze]\nID: %i\nWasser %i/5l\nFortschritt: %i/100",dPlant[i][d_dbid],dPlant[i][d_wasser],dPlant[i][d_prog]);
dPlant[i][d_text] = Create3DTextLabel(dddtext,COLOR_WHITE,dPlant[i][d_x],dPlant[i][d_y],dPlant[i][d_z],20,0,1);
DrugsSave();
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine LSD Samen!");
}
}
else if(cmdint == 4)
{
if(pInfo[playerid][sHeroin] >= 1)
{
new Float:ppx, Float:ppy, Float:ppz;
GetPlayerPos(playerid, ppx, ppy, ppz);
new Query[999];
format(Query, 999, "INSERT INTO drugs (X, Y, Z, Wasser, Fortschritt, Type, FraktionsID) VALUES ('%f', '%f', '%f', '5', '0', '1579', '%i')", ppx, ppy, ppz, pInfo[playerid][pFrak]);
mysql_function_query(Handle, Query, true, "DrugsCreate", "i", getFreeDrugsID());
pInfo[playerid][sHeroin] -= 1;
for(new i=0; i<sizeof(dPlant); i++)
{
dPlant[i][d_obj] = CreateObject(1579, ppx, ppy, ppz, 0.0, 0.0, 0.0);
new dddtext[128];
format(dddtext,128,"[Pflanze]\nID: %i\nWasser %i/5l\nFortschritt: %i/100",dPlant[i][d_dbid],dPlant[i][d_wasser],dPlant[i][d_prog]);
dPlant[i][d_text] = Create3DTextLabel(dddtext,COLOR_WHITE,dPlant[i][d_x],dPlant[i][d_y],dPlant[i][d_z],20,0,1);
DrugsSave();
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Heroin Samen!");
}
}
return 1;
}
Hoffe ihr könnt ihr mir Helfen.
Liebe Grüße,
SkoMe