Ich habe mein dynamisches Fahrradverleihsystem soweit fertig, habe aber ein Problem, dass sich einfach beheben lässt.
Und zwar wird der Fahrradverleih aus der Datenbank ausgelesen, erstellt und ist vollkommen sichtbar.
Ein Harken bleibt dennoch, sobald ich auf das erstellte Icon gehe und die Taste ENTER/F Drücke erscheint einfach der Dialog nicht wie geplant.
Die Console gibt wiederrum beide erstellten Verleihs als druchlauf an.
Ich hoffe Ihr könnt mir helfen
Code
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
new str[256];
switch(newkeys)
{
case 16: //Enter
{
for(new i; i!=FVerleihCount; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, FVerleih[i][fCoords][0], FVerleih[i][fCoords][1], FVerleih[i][fCoords][2]))
{
SetPVarInt(playerid, "FVerleih", i);
format(str, sizeof(str),"{FFFFFF}Herzlich Willkommen "#SERVERFARBE"%s{FFFFFF},\nMöchtest du dir ein Fahrrad für 30 Minuten leihen ?", SpielerInfo[playerid][pName]);
ShowPlayerDialog(playerid, DIALOG_FAHRRADLEIH, DIALOG_STYLE_MSGBOX, ""#SERVERFARBE"Fahrradverleih",str, "Ja","Nein");
return 1;
}
printf("Fahrradverleih ENTER NR. %d", i);
}
//...
Alles anzeigen
im nachfolgenden ist der Ausschnitt, wo ich den Verleih lade und auch erfolgreich erstellt wird
Code
public LoadDataInfo(database)
{
switch(database)
{
case 0: // fahrradverleih_list
{
if(cache_num_rows() != 0)
{
for(new i; i!=cache_num_rows(); i++)
{
cache_get_value_name_int(i,"pID",FVerleih[i][fID]);
cache_get_value_name_int(i,"PickupID",FVerleih[i][fIconID]);
cache_get_value_name(i,"Name",FVerleih[i][fName]);
cache_get_value_name_float(i,"coordsX",FVerleih[i][fCoords][0]);
cache_get_value_name_float(i,"coordsY",FVerleih[i][fCoords][1]);
cache_get_value_name_float(i,"coordsZ",FVerleih[i][fCoords][2]);
cache_get_value_name_float(i,"coordsX2",FVerleih[i][fCoords][3]);
cache_get_value_name_float(i,"coordsY2",FVerleih[i][fCoords][4]);
cache_get_value_name_float(i,"coordsZ2",FVerleih[i][fCoords][5]);
cache_get_value_name_float(i,"coordsFA",FVerleih[i][fCoords][6]);
cache_get_value_name_int(i,"BikePrice",FVerleih[i][fBikePrice]);
cache_get_value_name_int(i,"BMXPrice",FVerleih[i][fBMXPrice]);
cache_get_value_name_int(i,"MBikePrice",FVerleih[i][fMBikePrice]);
cache_get_value_name_int(i,"SchlossPrice",FVerleih[i][fSchlossPrice]);
cache_get_value_name_int(i,"GPSPrice",FVerleih[i][fGPSPrice]);
cache_get_value_name_int(i,"Konto",FVerleih[i][fKonto]);
FVerleih[i][fLogged] = true;
new str[128];
FVerleih[i][fPickupID] = CreatePickup(FVerleih[i][fIconID], 1, FVerleih[i][fCoords][0],FVerleih[i][fCoords][1],FVerleih[i][fCoords][2]);
format(str, sizeof(str), ""#SERVERFARBE"%s\n{FFFFFF}Drücke ENTER/F",FVerleih[i][fName]);
FVerleih[i][fTXT3D] = Create3DTextLabel(str, 0xFFFFFFFF, FVerleih[i][fCoords][0],FVerleih[i][fCoords][1],FVerleih[i][fCoords][2], 5, 0);
}
}
else
{
return printf("[DATABASE] '%s' wurde kein Eintrag gefunden.", TableName[database]);
}
FVerleihCount = cache_num_rows();
return printf("[DATABASE] '%s' wurden %d Einträge geladen.", TableName[database], cache_num_rows());
}
Alles anzeigen