Overlapping text -
Jowere - 21.11.2016
When using the command/viptex if I already have a text on the machine instead of delete text il overlaps ... How can I solve?
HTML Code:
CMD:vipname(playerid, params[])
{
new
text[6],
vText,
query[128];
if( PlayerInfo[ playerid ][ pDonateRank ] < 0 )
return SendClientMessage(playerid, COLOR_WHITE, "Trebuie sa ai VIP !");
new vehicleid = GetPlayerVehicleID(playerid);
if(sscanf(params, "s[50]", text)) return SCM(playerid, COLOR_WHITE, "Info: /vipname [name]");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && GetPlayerState(playerid) != PLAYER_STATE_PASSENGER) return SCM(playerid, COLOR_WHITE, "Nu te afli intr-un vehicul");
{
format(query, sizeof(query), "SELECT * FROM `cars` WHERE `id`='%d' ORDER BY `id`",playerid);
if(OwnedVeh(vehicleid))
{
if(strlen(text) > 6) return SCM(playerid, COLOR_WHITE, "Ai depasit cele 6 caractere!");
if(Viptext[playerid] == 0)
{
vText =CreateObject(19327, -2597.0762, -2630.4270, -5.3536, -87.6999, 90.4001, -97.1805);
SetObjectMaterialText(vText, text, 0, 50, "Arial", 25, 1, 0xFFFFFFFF, 0, 1);
AttachObjectToVehicle(vText, vehicleid, 0.0, -1.9, 0.3, 270.0, 0.0, 0.0);
}
else
{
if(Viptext[playerid] == 0)
{
vText =CreateObject(19327, -2597.0762, -2630.4270, -5.3536, -87.6999, 90.4001, -97.1805);
SetObjectMaterialText(vText, text, 0, 50, "Arial", 25, 1, -16777216, 0, 1);
AttachObjectToVehicle(vText, vehicleid, 0.000000, -1.634998, 0.394999, -78.364997, 0.000000, 0.000000);
}
else if(Viptext[playerid] == 0)
{
vText =CreateObject(19327, -2597.0762, -2630.4270, -5.3536, -87.6999, 90.4001, -97.1805);
SetObjectMaterialText(vText, text, 0, 50, "Arial", 25, 1, -16777216, 0, 1);
AttachObjectToVehicle(vText, vehicleid, 0.000000, 2.115000, 0.294999, -104.519912, -177.885086, 0.000000);
}
format(query, sizeof(query), "UPDATE `cars` SET `Viptext`='%s' WHERE `ID`='%s'",Viptext[playerid], vText);
mysql_query(SQL ,query);
}
}
}
return 1;
}
Re: Overlapping text -
IceBilizard - 21.11.2016
Use
PHP Code:
DestroyObject(vText);
before creating new text object.
Re: Overlapping text -
Jowere - 21.11.2016
Well and where to put it I do not destroy the text elsewhere. Genus nor grab to put and delete
Re: Overlapping text -
IceBilizard - 21.11.2016
PHP Code:
CMD:vipname(playerid, params[])
{
new text[6], vText, query[128];
if( PlayerInfo[ playerid ][ pDonateRank ] < 0 ) return SendClientMessage(playerid, COLOR_WHITE, "Trebuie sa ai VIP !");
new vehicleid = GetPlayerVehicleID(playerid);
if(sscanf(params, "s[50]", text)) return SCM(playerid, COLOR_WHITE, "Info: /vipname [name]");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && GetPlayerState(playerid) != PLAYER_STATE_PASSENGER) return SCM(playerid, COLOR_WHITE, "Nu te afli intr-un vehicul");
{
format(query, sizeof(query), "SELECT * FROM `cars` WHERE `id`='%d' ORDER BY `id`",playerid);
if(OwnedVeh(vehicleid))
{
if(strlen(text) > 6) return SCM(playerid, COLOR_WHITE, "Ai depasit cele 6 caractere!");
DestroyObject(vText);
vText =CreateObject(19327, -2597.0762, -2630.4270, -5.3536, -87.6999, 90.4001, -97.1805);
SetObjectMaterialText(vText, text, 0, 50, "Arial", 25, 1, 0xFFFFFFFF, 0, 1);
AttachObjectToVehicle(vText, vehicleid, 0.0, -1.9, 0.3, 270.0, 0.0, 0.0);
format(query, sizeof(query), "UPDATE `cars` SET `Viptext`='%s' WHERE `ID`='%s'",Viptext[playerid], vText);
mysql_query(SQL ,query);
}
}
return 1;
}
Re: Overlapping text -
Jowere - 21.11.2016
No, all name overlap
Re: Overlapping text -
Konstantinos - 21.11.2016
vText will always be 0 which is invalid objectid anyway. You should store the objectid globally.
pawn Code:
// global:
new gPlayer_VipObjectMaterial[MAX_PLAYERS];
// OnPlayerConnect:
gPlayer_VipObjectMaterial[playerid] = INVALID_OBJECT_ID;
// when destroying (on disconnect for example or anywhere else) without re-creating the object, always reset to avoid problems:
DestroyObject(gPlayer_VipObjectMaterial[playerid]);
gPlayer_VipObjectMaterial[playerid] = INVALID_OBJECT_ID;
// command /vipname
DestroyObject(gPlayer_VipObjectMaterial[playerid]);
gPlayer_VipObjectMaterial[playerid] = CreateObject(19327, -2597.0762, -2630.4270, -5.3536, -87.6999, 90.4001, -97.1805);
SetObjectMaterialText(gPlayer_VipObjectMaterial[playerid], text, 0, 50, "Arial", 25, 1, 0xFFFFFFFF, 0, 1);
AttachObjectToVehicle(gPlayer_VipObjectMaterial[playerid], vehicleid, 0.0, -1.9, 0.3, 270.0, 0.0, 0.0);
By the way, you don't need sscanf for a single string parameter. You can use i
snull + params.
Re: Overlapping text -
Jowere - 21.11.2016
Nice but why not save in mysql text
Code:
format(query, sizeof(query), "UPDATE `cars` SET `Viptext`='%s' WHERE `ID`='%s'",Viptext[playerid], vText);
mysql_query(SQL ,query);
Re: Overlapping text -
Konstantinos - 21.11.2016
This line has no use, remove it:
pawn Code:
format(query, sizeof(query), "SELECT * FROM `cars` WHERE `id`='%d' ORDER BY `id`",playerid);
About the code in your post above,
vText holds the text so it must be first and then the player's unique SQL ID and not the in-game ID.
Re: Overlapping text -
Jowere - 21.11.2016
And how do I do?
Re: Overlapping text -
Jimmi - 22.11.2016
Bump