Hey Ho, ich mal wieder
Folgendes Problem:
Ich erstelle mir Propertys diese man dann Betreten kann etc.
Das Problem dabei ist, dass ich wenn ich Shops Erstelle wie Burger Shoot oder Pizzer Hut oder sowas, diese nicht Betreten kann.
Die Häuser kann ich Betreten komischerweiße, obwohl es im Selben Script aufgebaut ist.
Hier mal der Code:
ShowDialog:Shop(playerID)
{
FormatNew:title[64](LanguageString(playerID, StringID:17("Shop")), GetMySQLValue("properties", "name", "id", val2str(PVar:playerID[DIALOGPROPERTYID])));
new options[1024];
AddLine(options, LanguageString(playerID, StringID:268("Enter")));// Item 0
AddLine(options, LanguageString(playerID, StringID:328("Sell")));// Item 1
AddLine(options, LanguageString(playerID, StringID:476("Lock/Unlock")));// Item 2
CreateDialog(playerID, "Shop", DIALOG_STYLE_LIST, title, options, "OK", LanguageString(playerID, StringID:165("Cancel")));
}
DialogResponse:Shop(playerID, response, listItem, inputText[])
{
if (response){switch (listItem)
{
case 0:// Enter
{
printf("Press Button Enter");
MySQLQuery("SELECT `locked` FROM `properties` LEFT JOIN `pickups` ON `pickups`.`id` = `properties`.`pickupId` WHERE `properties`.`id` = '%d' AND `locked`", PVar:playerID[DIALOGPROPERTYID]);
mysql_store_result();
printf("MySQL Query Loading... Locking or not = PropertyID:%d", PVar:playerID[DIALOGPROPERTYID]);
new isLocked = mysql_num_rows();
mysql_free_result();
printf("MySQL Query Loaded...");
if (isLocked)
{
printf("House is Locked...");
SendClientMessage(playerID, COLOR_ERROR, LanguageString(playerID, StringID:481("This house is locked!")));
}
else
{
printf("Teleporting to Property Iterior");TeleportToProperty(playerID, PVar:playerID[DIALOGPROPERTYID]);
}
printf("Entring... ");
} //.... Code geht hier weiter aber das ist der Enter...
Die IDs, etc. sind alle Vorhanden auch alles in der MySQL datenbank stimmt und ich bekomme auch keine MySQL errors...
Print geht auch bis Entring... er zeigt mir alle printfs an...
Hier noch TeleportToProperty:
TeleportToProperty(playerID, propertyID)
{
new interiorID = strval(GetMySQLValue("properties", "interiorId", "id", val2str(propertyID)));
if (interiorID)
{
if (TeleportToInterior(playerID, interiorID)){printf("TeleportToProperty???");
PVar:playerID[CURRENTPROPERTYID] = propertyID;
SetPlayerVirtualWorld(playerID, propertyID);return true;
}
}
return false;
}
Die TeleportToInterior läd er
//Edit ich hab nun herrausgefunden, wo der Fehler ist und zwar Liest er nicht die PropertyID...
printf("Press Button Enter");
MySQLQuery("SELECT `locked` FROM `properties` LEFT JOIN `pickups` ON `pickups`.`id` = `properties`.`pickupId` WHERE `properties`.`id` = '%d' AND `locked`", PVar:playerID[DIALOGPROPERTYID]);
mysql_store_result();new isLocked = mysql_num_rows();
printf("MySQL Query Loading... Locking? = %d on PropertyID:%d", isLocked, PVar:playerID[DIALOGPROPERTYID]);
mysql_free_result();
printf("MySQL Query Loaded...");
if (isLocked)
{
printf("House is Locked...");
SendClientMessage(playerID, COLOR_ERROR, LanguageString(playerID, StringID:481("This house is locked!")));
}
else
{
printf("Teleporting to Property Interior");
printf("TeleportToProperty %d", PVar:playerID[DIALOGPROPERTYID]);
TeleportToProperty(playerID, PVar:playerID[DIALOGPROPERTYID]);
}
printf("Entring... ");
Aber wie man sieht, lese ich alles normal aus.
Das steht dann in der Log: