[Ajuda] Bug em Criaзгo de Objeto
#1

Meu problema й o seguinte, quando alguem cria um grafite ele sу aparece pro playerid 0, isso sу acontece no servidor on mesmo

se reiniciar os grafites sгo carregados para todo mundo

Nгo to conseguindo achar o problema


Код:
stock PlayerCreateGrafite(playerid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Ip)
{
	new msg[256], strpt[128], strpt2[128], grafitefile[128],
		grafiteid;

	for(new grafite = 0; grafite < MAX_GRAFITES; grafite++)
	{
		format(strpt2, sizeof(strpt2), PASTA_GRAFITES, grafite);
		if(dini_Exists(strpt2))
		{
			if(IsPlayerInRangeOfPoint(playerid, 30.0, dini_Float(strpt2, "gCordX"), dini_Float(strpt2, "gCordY"), dini_Float(strpt2, "gCordZ")))
			{
				SendClientMessage(playerid, Vermelho, "Nгo pode ser criado mais grafites neste local.");
				return 1;
			}
			if(dini_Int(strpt2, "gDono") == 3)
			{
				dini_FloatSet(strpt2, "gCordX", x);
				dini_FloatSet(strpt2, "gCordY", y);
				dini_FloatSet(strpt2, "gCordZ", z);
				dini_FloatSet(strpt2, "gCordRX", rx);
				dini_FloatSet(strpt2, "gCordRY", ry);
				dini_FloatSet(strpt2, "gCordRZ", rz);

				dini_IntSet(strpt2, "IntID", Ip);
				

				format(msg, 128, "{%s}%s", GraffitiColor[playerid], GraffitiText[playerid]);
				grafiteid = CreateDynamicObject(19482, x, y, z, rx, ry, rz, 0, 0, 0, 200.0);
				SetDynamicObjectMaterialText(grafiteid, 0, msg, OBJECT_MATERIAL_SIZE_256x256, "Arial", 40, 0, 0xFFFFFFFF, 0, 1);



				dini_IntSet(strpt2, "Id", grafiteid);
				dini_IntSet(strpt2, "gDono", 0);
				dini_Set(strpt2, "Dono", GetPlayerNameEx(playerid));
				
				return 1;
			}
		}
	}
	if(proximografite >= MAX_GRAFITES-1)
	{
		format(STRX, sizeof(STRX), "O limite de %d grafites foi atingido, nгo й possнvel criar mais.", MAX_PORTOES);
		SendClientMessage(playerid, Vermelho, STRX);
		return 1;
	}
	format(strpt, sizeof(strpt), PASTA_GRAFITES, proximografite);
	if(dini_Exists(strpt))
	{
		proximografite++;
	}
	format(grafitefile, sizeof(grafitefile), PASTA_GRAFITES, proximografite);
	dini_Create(grafitefile);
	dini_FloatSet(grafitefile, "gCordX", x);
	dini_FloatSet(grafitefile, "gCordY", y);
	dini_FloatSet(grafitefile, "gCordZ", z);
	dini_FloatSet(grafitefile, "gCordRX", rx);
	dini_FloatSet(grafitefile, "gCordRY", ry);
	dini_FloatSet(grafitefile, "gCordRZ", rz);

	dini_IntSet(grafitefile, "IntID", Ip);
	format(msg, 128, "{%s}%s", GraffitiColor[playerid], GraffitiText[playerid]);
	grafiteid = CreateDynamicObject(19482, x, y, z, rx, ry, rz, 0, 0, 0, 200.0);
	SetDynamicObjectMaterialText(grafiteid, 0, msg, OBJECT_MATERIAL_SIZE_256x256, "Arial", 40, 0, 0xFFFFFFFF, 0, 1);


	dini_IntSet(grafitefile, "Id", grafiteid);
	dini_IntSet(grafitefile, "gDono", 0);
	dini_Set(grafitefile, "Dono", GetPlayerNameEx(playerid));
	proximografite++;
	return 1;
}


// ----------------------
Reply
#2

O que eu vir aqui na wiki samp, nгo sei se eu estou certo tenta ai.

PHP код:
CreateDynamicObject(modelidFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rzworldid = -1interiorid = -1playerid = -1Float:streamdistance 300.0); 
PHP код:
stock PlayerCreateGrafite(playeridFloat:xFloat:yFloat:zFloat:rxFloat:ryFloat:rzIp)
{
    new 
msg[256], strpt[128], strpt2[128], grafitefile[128],
        
grafiteid[MAX_PLAYERS];
    for(new 
grafite 0grafite MAX_GRAFITESgrafite++)
    {
        
format(strpt2sizeof(strpt2), PASTA_GRAFITESgrafite);
        if(
dini_Exists(strpt2))
        {
            if(
IsPlayerInRangeOfPoint(playerid30.0dini_Float(strpt2"gCordX"), dini_Float(strpt2"gCordY"), dini_Float(strpt2"gCordZ")))
            {
                
SendClientMessage(playeridVermelho"Nгo pode ser criado mais grafites neste local.");
                return 
1;
            }
            if(
dini_Int(strpt2"gDono") == 3)
            {
                
dini_FloatSet(strpt2"gCordX"x);
                
dini_FloatSet(strpt2"gCordY"y);
                
dini_FloatSet(strpt2"gCordZ"z);
                
dini_FloatSet(strpt2"gCordRX"rx);
                
dini_FloatSet(strpt2"gCordRY"ry);
                
dini_FloatSet(strpt2"gCordRZ"rz);
                
dini_IntSet(strpt2"IntID"Ip);
                
format(msg128"{%s}%s"GraffitiColor[playerid], GraffitiText[playerid]);
                
grafiteid[playerid] = CreateDynamicObject(19482xyzrxryrz00, -1200.0);
                
SetDynamicObjectMaterialText(grafiteid[playerid], 0msgOBJECT_MATERIAL_SIZE_256x256"Arial"4000xFFFFFFFF01);
                
dini_IntSet(strpt2"Id"grafiteid[playerid]);
                
dini_IntSet(strpt2"gDono"0);
                
dini_Set(strpt2"Dono"GetPlayerNameEx(playerid));
                return 
1;
            }
        }
    }
    if(
proximografite >= MAX_GRAFITES-1)
    {
        
format(STRXsizeof(STRX), "O limite de %d grafites foi atingido, nгo й possнvel criar mais."MAX_PORTOES);
        
SendClientMessage(playeridVermelhoSTRX);
        return 
1;
    }
    
format(strptsizeof(strpt), PASTA_GRAFITESproximografite);
    if(
dini_Exists(strpt))
    {
        
proximografite++;
    }
    
format(grafitefilesizeof(grafitefile), PASTA_GRAFITESproximografite);
    
dini_Create(grafitefile);
    
dini_FloatSet(grafitefile"gCordX"x);
    
dini_FloatSet(grafitefile"gCordY"y);
    
dini_FloatSet(grafitefile"gCordZ"z);
    
dini_FloatSet(grafitefile"gCordRX"rx);
    
dini_FloatSet(grafitefile"gCordRY"ry);
    
dini_FloatSet(grafitefile"gCordRZ"rz);
    
dini_IntSet(grafitefile"IntID"Ip);
    
format(msg128"{%s}%s"GraffitiColor[playerid], GraffitiText[playerid]);
    
grafiteid[playerid] = CreateDynamicObject(19482xyzrxryrz00, -1200.0);
    
SetDynamicObjectMaterialText(grafiteid[playerid], 0msgOBJECT_MATERIAL_SIZE_256x256"Arial"4000xFFFFFFFF, -11);
    
dini_IntSet(grafitefile"Id"grafiteid[playerid]);
    
dini_IntSet(grafitefile"gDono"0);
    
dini_Set(grafitefile"Dono"GetPlayerNameEx(playerid));
    
proximografite++;
    return 
1;

Reply
#3

Quote:
Originally Posted by Marllun
Посмотреть сообщение
Use [MAX_PLAYERS]
Aquele й um loop para os grafites, nгo para os players
Reply
#4

se nгo for tente um loop
Reply
#5

PHP код:
grafiteid CreateDynamicObject(19482xyzrxryrz00, -1200.0); 
Reply
#6

Tinha esquecido de tira o [playerid] do test que eu fiz.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)