CMD wont work
#1

Hey have made a zcmd to sell a house, but it wont work. I have no idea what's wrong here.

Код:
CMD:myymaja(playerid,params[])
{
	for(new id; id < MAX_HOUSES; id++) // <------I THINK THE PROBLEM IS HERE
	{
		new string[256];
		new query[400];
		if(!MillelgiLigidal(2.3, playerid, Houses[id][Posx], Houses[id][Posy], Houses[id][Posz]))
		{
		    SendClientMessage(playerid, -1,""VIGA" Sa ei ole ьhegi maja ligidal !");
		    return 1;
		}
		if(Houses[id][mOstetud] == 0) return SendClientMessage(playerid, -1,""VIGA" See maja on juba mььgis !");
		if(M2ngijaInfo[playerid][pHouse] == id)
	 	{
			format(string, sizeof(string), "> Sa oled mььnud oma maja(ID:%d)!", id);
	  		SendClientMessage(playerid, -1, string);
	  		GivePlayerMoney(playerid, Houses[id][mHind]);
			M2ngijaInfo[playerid][pHouse] = 0;
			format(Houses[id][mOmanik], 32, "");
			Houses[id][mOstetud] = 0;
			format(query, sizeof(query), "UPDATE `houses` SET mOstetud = `%d`, mOmanik = `%s` WHERE KoduID = `%d`", Houses[id][mOstetud], Houses[id][mOmanik],id);
			mysql_query(query);
			DestroyDynamic3DTextLabel(Houses[id][LabelID]);
			format(string, sizeof(string), "Hind %d /n MЬЬGIKS!", Houses[id][mHind]);
			Houses[id][LabelID] = CreateDynamic3DTextLabel(string, -1, Houses[id][Posx],Houses[id][Posy],Houses[id][Posz], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
			DestroyDynamicPickup(Houses[id][PickupID]);
			CreateDynamicPickup(1273, 23, Houses[id][Posx], Houses[id][Posy], Houses[id][Posz], 0, 0, -1, 250);
			return 1;
		}
		else return SendClientMessage(playerid, -1,""VIGA" Sul ei ole selle maja vхtit!");
	}
	return 1;
}
Reply
#2

You're using strcmp anywhere in the script?
Reply
#3

Here's a version without the loop (if the loop is the problem, but probably not)

pawn Код:
CMD:mymaja(playerid, params[])
{
    new tmp = M2ngijaInfo[playerid][pHouse];
    if(tmp == 0) return SendClientMessage(playerid, -1,""VIGA" You don't have a house !"); //if there's no house id 0...idk what your starting house id is
    if(!MillelgiLigidal(2.3, playerid, Houses[tmp][Posx], Houses[tmp][Posy], Houses[tmp][Posz])) return SendClientMessage(playerid, -1,""VIGA" You aren't near your house !");

    format(string, sizeof(string), "> Sa oled mььnud oma maja(ID:%d)!", tmp);
    SendClientMessage(playerid, -1, string);
    GivePlayerMoney(playerid, Houses[tmp][mHind]);
    M2ngijaInfo[playerid][pHouse] = 0;
    format(Houses[tmp][mOmanik], 32, "");
    Houses[tmp][mOstetud] = 0;
    format(query, sizeof(query), "UPDATE `houses` SET mOstetud = `%d`, mOmanik = `%s` WHERE KoduID = `%d`", Houses[tmp][mOstetud], Houses[tmp][mOmanik],tmp);
    mysql_query(query);
    DestroyDynamic3DTextLabel(Houses[tmp][LabelID]);
    format(string, sizeof(string), "Hind %d /n MЬЬGIKS!", Houses[tmp][mHind]);
    Houses[tmp][LabelID] = CreateDynamic3DTextLabel(string, -1, Houses[tmp][Posx],Houses[tmp][Posy],Houses[tmp][Posz], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
    DestroyDynamicPickup(Houses[tmp][PickupID]);
    CreateDynamicPickup(1273, 23, Houses[tmp][Posx], Houses[tmp][Posy], Houses[tmp][Posz], 0, 0, -1, 250);
    return 1;
}
You'll have to translate some of that stuff
Reply
#4

No, I dont think so..
Reply
#5

[ABK]Antonio

Will try this
Reply
#6

Did it work?
Reply
#7

[ABK]Antonio, thanks alot, selling works, but buying wont work

Код:
CMD:ostamaja(playerid, params[])
{
	new string[128], query[400];
	for(new id = 1; id < MAX_HOUSES; id++)
	{
		if(!MillelgiLigidal(2.3, playerid, Houses[id][Posx], Houses[id][Posy], Houses[id][Posz]))
		{
		    SendClientMessage(playerid, -1,""VIGA" Sa ei ole ьhegi maja ligidal !");
		    return 1;
		}
		if(Houses[id][mOstetud] == 1) return SendClientMessage(playerid, -1,""VIGA" See maja on juba ostetud !");
		new pcash = GetPlayerMoney(playerid);
		if(Houses[id][mHind] <= pcash)
		{
			format(string, sizeof(string), "> Sa oled ostnud omale uue maja(ID:%d)!", id);
	  		SendClientMessage(playerid, -1, string);
	    	GivePlayerMoney(playerid, -Houses[id][mHind]);
		    M2ngijaInfo[playerid][pHouse] = id;
			//Houses[id][SQLID] = M2ngijaInfo[playerid][pID];
			format(Houses[id][mOmanik], 32, "%s", V6taRoleplayNimi(playerid));
			Houses[id][mOstetud] = 1;
			format(query, sizeof(query), "UPDATE `houses` SET mOmanik = '%s', mOstetud = %d WHERE KoduID = %d", Houses[id][mOmanik],Houses[id][mOstetud],id);
			mysql_query(query);
			DestroyDynamic3DTextLabel(Houses[id][LabelID]);
			format(string, sizeof(string), "See maja on %s oma", Houses[id][mOmanik]);
			Houses[id][LabelID] = CreateDynamic3DTextLabel(string, -1, Houses[id][Posx],Houses[id][Posy],Houses[id][Posz], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
			DestroyDynamicPickup(Houses[id][PickupID]);
			CreateDynamicPickup(1318, 23, Houses[id][Posx], Houses[id][Posy], Houses[id][Posz], 0, 0, -1, 250);
	 	}
	 	else
		{
			SendClientMessage(playerid, -1, " Sul ei ole raha selle maja ostmiseks.");
			return 1;
		}
	}
	return 1;
}
Anyways, can you fix this too please ?
And repped.
Reply
#8

Basically this?

pawn Код:
CMD:ostamaja(playerid, params[])
{
    new tmp_h_id;
   
    //find the closest house here, then set tmp_h_id to the index, which will be the house they want to purchase. after its set, we break out of the loop since we don't need to loop anymore
    for(new i=1; i < MAX_HOUSES; ++i) if(MillelgiLigidal(2.3, playerid, Houses[tmp_h_id][Posx], Houses[tmp_h_id][Posy], Houses[tmp_h_id][Posz])) { tmp_h_id=i; break; }
    //if tmp_h_id ends up being 0, they aren't near a house so we do this
    if(!tmp_h_id) return SendClientMessage(playerid, 0xCC0000AA, "You aren't near a house!");
    if(Houses[tmp_h_id][mOstetud]) return SendClientMessage(playerid, -1,""VIGA" See maja on juba ostetud !");
   
   
    new p_cash = GetPlayerMoney(playerid);
    if(Houses[tmp_h_id][mHind] > p_cash) return SendClientMessage(playerid, -1, " Sul ei ole raha selle maja ostmiseks.");
   
    format(string, sizeof(string), "> Sa oled ostnud omale uue maja(ID:%d)!", tmp_h_id);
    SendClientMessage(playerid, -1, string);
    GivePlayerMoney(playerid, -Houses[tmp_h_id][mHind]);
    M2ngijaInfo[playerid][pHouse] = tmp_h_id;
    //Houses[id][SQLID] = M2ngijaInfo[playerid][pID];
    format(Houses[tmp_h_id][mOmanik], 32, "%s", V6taRoleplayNimi(playerid));
    Houses[tmp_h_id][mOstetud] = 1;
    format(query, sizeof(query), "UPDATE `houses` SET mOmanik = '%s', mOstetud = %d WHERE KoduID = %d", Houses[tmp_h_id][mOmanik],Houses[tmp_h_id][mOstetud],tmp_h_id);
    mysql_query(query);
    DestroyDynamic3DTextLabel(Houses[tmp_h_id][LabelID]);
    format(string, sizeof(string), "See maja on %s oma", Houses[tmp_h_id][mOmanik]);
    Houses[tmp_h_id][LabelID] = CreateDynamic3DTextLabel(string, -1, Houses[tmp_h_id][Posx],Houses[tmp_h_id][Posy],Houses[tmp_h_id][Posz], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
    DestroyDynamicPickup(Houses[tmp_h_id][PickupID]);
    CreateDynamicPickup(1318, 23, Houses[tmp_h_id][Posx], Houses[tmp_h_id][Posy], Houses[tmp_h_id][Posz], 0, 0, -1, 250);

    return 1;
}
Reply
#9

Quote:
Originally Posted by [ABK]Antonio
Посмотреть сообщение
Basically this?

pawn Код:
CMD:ostamaja(playerid, params[])
{
    new tmp_h_id;
   
    //find the closest house here, then set tmp_h_id to the index, which will be the house they want to purchase. after its set, we break out of the loop since we don't need to loop anymore
    for(new i=1; i < MAX_HOUSES; ++i) if(MillelgiLigidal(2.3, playerid, Houses[tmp_h_id][Posx], Houses[tmp_h_id][Posy], Houses[tmp_h_id][Posz])) { tmp_h_id=i; break; }
    //if tmp_h_id ends up being 0, they aren't near a house so we do this
    if(!tmp_h_id) return SendClientMessage(playerid, 0xCC0000AA, "You aren't near a house!");
    if(Houses[tmp_h_id][mOstetud]) return SendClientMessage(playerid, -1,""VIGA" See maja on juba ostetud !");
   
   
    new p_cash = GetPlayerMoney(playerid);
    if(Houses[tmp_h_id][mHind] > p_cash) return SendClientMessage(playerid, -1, " Sul ei ole raha selle maja ostmiseks.");
   
    format(string, sizeof(string), "> Sa oled ostnud omale uue maja(ID:%d)!", tmp_h_id);
    SendClientMessage(playerid, -1, string);
    GivePlayerMoney(playerid, -Houses[tmp_h_id][mHind]);
    M2ngijaInfo[playerid][pHouse] = tmp_h_id;
    //Houses[id][SQLID] = M2ngijaInfo[playerid][pID];
    format(Houses[tmp_h_id][mOmanik], 32, "%s", V6taRoleplayNimi(playerid));
    Houses[tmp_h_id][mOstetud] = 1;
    format(query, sizeof(query), "UPDATE `houses` SET mOmanik = '%s', mOstetud = %d WHERE KoduID = %d", Houses[tmp_h_id][mOmanik],Houses[tmp_h_id][mOstetud],tmp_h_id);
    mysql_query(query);
    DestroyDynamic3DTextLabel(Houses[tmp_h_id][LabelID]);
    format(string, sizeof(string), "See maja on %s oma", Houses[tmp_h_id][mOmanik]);
    Houses[tmp_h_id][LabelID] = CreateDynamic3DTextLabel(string, -1, Houses[tmp_h_id][Posx],Houses[tmp_h_id][Posy],Houses[tmp_h_id][Posz], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0);
    DestroyDynamicPickup(Houses[tmp_h_id][PickupID]);
    CreateDynamicPickup(1318, 23, Houses[tmp_h_id][Posx], Houses[tmp_h_id][Posy], Houses[tmp_h_id][Posz], 0, 0, -1, 250);

    return 1;
}
This wont work, keeps tellin this SendClientMessage(playerid, 0xCC0000AA, "You aren't near a house!"); even if im near a house.
Reply
#10

Try changing
pawn Код:
if(MillelgiLigidal(2.3, playerid, Houses[tmp_h_id][Posx], Houses[tmp_h_id][Posy], Houses[tmp_h_id][Posz]))
to
pawn Код:
if(!MillelgiLigidal(2.3, playerid, Houses[tmp_h_id][Posx], Houses[tmp_h_id][Posy], Houses[tmp_h_id][Posz]))
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)