[Pomoc] previse kuca lag stvara

Započeo [GU:RP] Ivica, Mart 14, 2013, 14:41:19 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Skripta koju koristim:cyber
Detaljan opis problema:Ovako to mi ne ide u glavu dakle radio sam dinamicno kreiranje stanova i vikendica tu sve super radi, problem je u kucama kreirao sam 198 kuca a stanova ima cetverostruko vise takoder i vikendica i ne lagga ni kad editujem lvl i cijenu niti kad kupujem , ali kada kupim kucu koju sam kreirao zallaga na dvadeset sekundi nista ne mozes onda pusti takoder i kad kupim kucu zallaga probao sam da vidim jel do kuca obrisao sam i ostavio 10 kuca i bude u redu dakle zasto mi stvara lag do cega moze biti tIO.Hvala
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):



koristis string pokusaj stavit npr umjesto string[256] na 128 ili 64

u redu do cega bi moglo jos da bude, ali pazi ovo sad ima kreiranih 198 kuca i obrisem sve kuce i ostavim recimo 15 kuca i onda radi sve ne lagga lijepo prodaj mogu editovat i kupovat ali kada vratim kuce na 198 onda kad idem edit kuce te ili prodat ili kupit ona zallaga



ocito da spremas sve kuce kad kupis jednu...

daj dio skripte gdje kupis kucu i callback koji pozoves da spremi kuce...

ovo je di kupujem kucu


if(dialogid == kucadialog1)
		{
			if(response)
   {
	    if(IsPlayerConnected(playerid))
	    {
	    	new Float:oldposx, Float:oldposy, Float:oldposz;
	    	new playername[MAX_PLAYER_NAME];
			GetPlayerName(playerid, playername, sizeof(playername));
			GetPlayerPos(playerid, oldposx, oldposy, oldposz);
			for(new h = 0; h < sizeof(KucaInfo); h++)
			{
				if(PlayerToPoint(2.0, playerid, KucaInfo[h][hEntrancex], KucaInfo[h][hEntrancey], KucaInfo[h][hEntrancez]) && KucaInfo[h][hOwned] == 0)
				{
					if(PlayerInfo[playerid][pLevel] < KucaInfo[h][hLevel])
					{
						format(string, sizeof(string), "Morate biti level %d da biste kupili ovo !", KucaInfo[h][hLevel]);
						SendClientMessage(playerid, COLOR_GRAD5, string);
						return 1;
					}
					if(PlayerInfo[playerid][pPhousekey] != 255 &&PlayerInfo[playerid][pPhousekey1] != 255 && strcmp(playername, KucaInfo[PlayerInfo[playerid][pPhousekey1]][hOwner], true) == 0 || strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
					{
						SendClientMessage(playerid, COLOR_WHITE, "   Vec posjedujete kucu, kucajte /prodajkucu ako zelite da kupite ovu !");
						return 1;
					}
					if(GetPlayerMoney(playerid) > KucaInfo[h][hValue])
					{
						PlayerInfo[playerid][pPhousekey1] = h;
						KucaInfo[h][hOwned] = 1;
						GetPlayerName(playerid, sendername, sizeof(sendername));
						strmid(KucaInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
						GivePlayerMoney(playerid,-KucaInfo[h][hValue]);
						SendClientMessage(playerid, ZELEENA, "(kuca) {FFFFFF}Cestitamo uspjesno ste kupili kucu.Za izlaz koristite /exit");
						SendClientMessage(playerid, COLOR_WHITE, "Cestitamo vam na kupovini nove kuce! Sve informacija na /kuca.");
                        DestroyDynamicPickup(pickucica[h]);
						pickucica[h] =	CreateDynamicPickup(1239, 1, KucaInfo[h][hEntrancex], KucaInfo[h][hEntrancey], KucaInfo[h][hEntrancez]);
						new result[500];
					 	format(result,sizeof(result),"{0ed400}Vlasnik Kuce: {FFFFFF}%s\n{0ed400}Opis: {FFFFFF}%s\n{0ed400}Level: {FFFFFF}%d\n{0ed400}Rent: {FFFFFF}%d$\n{0ed400}Najam: {FFFFFF}/rentroom", KucaInfo[h][hOwner],KucaInfo[h][hDiscription],KucaInfo[h][hLevel], KucaInfo[h][hRent]);
						UpdateDynamic3DTextLabelText(housesale[h], 0x00FFFFFF,result);
						OnPlayerUpdate(playerid);
					 	DateProp(playerid);
						SaveKuce();
						return 1;
					}
					else
					{
						SendClientMessage(playerid, SIVA, "{F81414}[Greska!] {C3C3C3}Nemas dovoljno novca!");
						return 1;
					}
				}
			}
			}
		}
		return 1;
	}


ovo je callback koji mi sprema kuce

stock SaveKuce()
{
new FileName[128];
for(new i = 0; i < 999; i++)
{
format(FileName, sizeof(FileName), "kuce/Kuca_%d.ini", i);
if(fexist(FileName) )
{
dini_FloatSet(FileName, "Entrancex", KucaInfo[i][hEntrancex]);
dini_FloatSet(FileName, "Entrancey", KucaInfo[i][hEntrancey]);
dini_FloatSet(FileName, "Entrancez", KucaInfo[i][hEntrancez]);
dini_FloatSet(FileName, "Exitx", KucaInfo[i][hExitx]);
dini_FloatSet(FileName, "Exity", KucaInfo[i][hExity]);
dini_FloatSet(FileName, "Exitz", KucaInfo[i][hExitz]);
dini_IntSet(FileName, "Healthx", KucaInfo[i][hHealthx]);
dini_IntSet(FileName, "Healthy", KucaInfo[i][hHealthy]);
dini_IntSet(FileName, "Healthz", KucaInfo[i][hHealthz]);
dini_IntSet(FileName, "Armourx", KucaInfo[i][hArmourx]);
dini_IntSet(FileName, "Armoury", KucaInfo[i][hArmoury]);
dini_IntSet(FileName, "Armourz", KucaInfo[i][hArmourz]);
dini_Set(FileName, "Owner", KucaInfo[i][hOwner]);
dini_Set(FileName, "Discription", KucaInfo[i][hDiscription]);
dini_IntSet(FileName, "Value", KucaInfo[i][hValue]);
dini_IntSet(FileName, "Hel", KucaInfo[i][hHel]);
dini_IntSet(FileName, "Arm", KucaInfo[i][hArm]);
dini_IntSet(FileName, "Int", KucaInfo[i][hInt]);
dini_IntSet(FileName, "Lock", KucaInfo[i][hLock]);
dini_IntSet(FileName, "Owned", KucaInfo[i][hOwned]);
dini_IntSet(FileName, "Rooms", KucaInfo[i][hRooms]);
dini_IntSet(FileName, "Rent", KucaInfo[i][hRent]);
dini_IntSet(FileName, "Rentabil", KucaInfo[i][hRentabil]);
dini_IntSet(FileName, "Takings", KucaInfo[i][hTakings]);
dini_IntSet(FileName, "Vec", KucaInfo[i][hVec]);
dini_IntSet(FileName, "Vcol1", KucaInfo[i][hVcol1]);
dini_IntSet(FileName, "Vcol2", KucaInfo[i][hVcol2]);
dini_IntSet(FileName, "Date", KucaInfo[i][hDate]);
dini_IntSet(FileName, "Level", KucaInfo[i][hLevel]);
dini_IntSet(FileName, "Neakt", KucaInfo[i][hNeakt]);
dini_IntSet(FileName, "Sef", KucaInfo[i][hSef]);
dini_IntSet(FileName, "Droga", KucaInfo[i][hDroga]);
dini_IntSet(FileName, "Matsi", KucaInfo[i][hMats]);
dini_IntSet(FileName, "Oruzje1", KucaInfo[i][Oruzje1]);
dini_IntSet(FileName, "Municija1", KucaInfo[i][Municija1]);
dini_IntSet(FileName, "Oruzje2", KucaInfo[i][Oruzje2]);
dini_IntSet(FileName, "Municija2", KucaInfo[i][Municija2]);
dini_IntSet(FileName, "Oruzje3", KucaInfo[i][Oruzje3]);
dini_IntSet(FileName, "Municija3", KucaInfo[i][Municija3]);
dini_IntSet(FileName, "Tip", KucaInfo[i][hTip]);
dini_IntSet(FileName, "VirtualWorld", KucaInfo[i][hVirtualWorld]);
dini_IntSet(FileName, "World", KucaInfo[i][hWorld]);
}
}
}


sabljak okani se vise timera... ti bi na sve timere stavljao...

@autor teme:
napravi callback s kojim ces spremit samo jednu kucu i onda pozoves spremanje kuce po id-u kad je kupi...

ne kuzim te bas mozes malo pojasniti, ako nije bed.Hvala

forward SpremiKucu(idkuce);
public SpremiKucu(idkuce) {
     if(idkuce<0 || idkuce>sizeof(KucaInfo)) {
           return 1;//da ne ide spremat nepostojeci id kuce
     }
     //kod za spremanje kuce, isti kao za sve osim sto izbacis for()... i umjesto "i" stavljas idkuce
}

dakle u onaj kod za dialog kupnju kao si vidio u navedenom stavljam

SpremiKucu(idkuce);
ili.

Citat: ivica158 poslato Mart 19, 2013, 13:49:13 POSLE PODNE
dakle u onaj kod za dialog kupnju kao si vidio u navedenom stavljam

SpremiKucu(idkuce);
ili.

ne, stavljas SpremiKucu(h); <- h ti u tom slucaju odredjuje id kuce koju si kupio