[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 1 gost 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



Dude

*

zerocoolos

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]);
}
}
}


Dude

*

zerocoolos

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

Dude

*

zerocoolos

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.

Dude

*

zerocoolos

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