Hallo,
Ich habe ein kleines Problem mit meinem Item System, angenommen ich erstelle 3 Items, dann habe ich in der MySQL Tabelle 3 Zeilen, einmal Item 1 mit der DBID 1 dann Item 2 mit DBID 2 und Item 3 mit der DBID 3.
Wenn ich jetzt die Items einsammeln möchte, kann immer nur das letzte Item einsammeln, sprich DBID 3. Starte ich den Server danach neu, habe ich noch 2 Items DBID 1 & 2. Wenn ich nun diese einsammeln möchte, kann ich wieder nur DBID 2 einsammeln, aber warum?
C
public OnPlayerPickUpDynamicPickup(playerid, pickupid){
LOOP(MAX_ITEMS, i){
if(pickupid == iData[i][itemPickup]){
GivePlayerItem(playerid, iData[i][itemID], iData[i][itemNumber]);
RemoveItem(i);
return 1;
}
}
return 1;
}
C
Function LoadItems(){
new num_fields,num_rows;
cache_get_data(num_rows,num_fields);
if(!num_rows)return print("["SERVER_DEBUG"] Es konnten keine Items geladen werden (rows = 0)");
LOOP(num_rows, i){
new id = GetFreeItemID(), str[32];
iData[id][itemX] = cache_get_field_content_float(i, "itemX", dbhandle);
iData[id][itemY] = cache_get_field_content_float(i, "itemY", dbhandle);
iData[id][itemZ] = cache_get_field_content_float(i, "itemZ", dbhandle);
if(iData[id][itemX] == 0 && iData[id][itemY] == 0 && iData[id][itemZ] == 0)continue;
iData[id][itemInteriorid] = cache_get_field_content_int(i, "itemInteriorid", dbhandle);
iData[id][itemID] = cache_get_field_content_int(i, "itemID", dbhandle);
iData[id][itemNumber] = cache_get_field_content_int(i, "itemNumber", dbhandle);
iData[id][itemDBID] = cache_get_field_content_int(i, "itemDBID", dbhandle);
format(str,sizeof str,"%s(%d)", GetItemName(iData[id][itemID]), iData[id][itemNumber]);
iData[ExistItems][itemTextLabel] = CreateDynamic3DTextLabel(str, COLOR_WHITE, iData[id][itemX], iData[id][itemY], iData[id][itemZ], 20.0, _, _, _, _, iData[id][itemInteriorid]);
iData[ExistItems][itemPickup] = CreateDynamicPickup(GetItemObjectID(iData[id][itemID]), 1, iData[id][itemX], iData[id][itemY], iData[id][itemZ], _, iData[id][itemInteriorid]);
new hour,minute,second;
gettime(hour,minute,second);
printf("[%02d:%02d:%02d] Item mit der ID %d wurde geladen.",hour,minute,second,iData[id][itemID]);
}
return 1;
}
Alles anzeigen
Mit freundlichen Grüßen.
//Edit.