Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4016 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, dėl ko gali mesti tokias klaidas?

 

 

[20:16:28] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"

[20:16:28] [debug]  Stack pointer (STK) is 0x472EA4, heap pointer (HEA) is 0x472E78
[20:16:28] [debug] AMX backtrace:
[20:16:28] [debug] #0 000ca4c4 in ?? (56, -988932027, 1105781483, 1108035764)
[20:16:28] [debug] #1 000ca5c0 in ?? (56, -988932027, 1105781483, 1108035764)

Šias klaidas meta po OnUnoccupiedVehicleUpdate ir po OnVehicleSpawn.

Po OnVehicleSpawn:

new String[10];

VehicleInfo[vehicleid][vBakas]		= 100.0 + randomfloat(150.0);
VehicleInfo[vehicleid][vKuroTipas] 	= BENZINAS; 

format(String, sizeof(String), "%d.%d", 1 + random(2), 1 + random(5));
VehicleInfo[vehicleid][vSanaudos] = floatstr(String);

VehicleInfo[vehicleid][vKuras] = 50.0 + randomfloat(20.0);

Čia visas kodas?

new String[10];
gali pakeist į (problema aišku ne čia):

new String[4];
randomfloat klaidų nėra?

P.S: Yra tokių vietų mode kur dėl tam tikrų sąlygų pastoviai atstato tr. pr?

 

Kodas ne mano, bet atrodo teisingas.

f_public: Float: randomfloat(Float: maxnumber)
{
	new RandomNumber[15];

	format(RandomNumber, sizeof(RandomNumber), "%d.%d", random(floatround(maxnumber)), random(10));

	return floatstr(RandomNumber);
}

Po OnGameModeInit nustatinėju visoms mašinoms informaciją (ant kintamųjų) ir tada jas vėl respawninu, kad nusistatytų ant mašinos. O šiaip atstatinėju tik tam tikrais atvėjais, ta prasme kada mašina sprogsta ir t.t.

Žodžiu, be kodo aš tau ne padėsiu. Galiu pasiūlyti patikrinti vieną versiją. Pas mane buvo analogiškas crash'as - stack'o perpildymas, dėl to, kad žmogus priparkuodavo apverstą tr. pr. aikštelėje. Dėl tam tikrų sąlygų tą tr. pr. pastoviai sukurdavo su HP < 250 ir ji pastoviai sprogdavo, taip perpildydama stack'ą.

  • Teigiamai 3

Žodžiu, be kodo aš tau ne padėsiu. Galiu pasiūlyti patikrinti vieną versiją. Pas mane buvo analogiškas crash'as - stack'o perpildymas, dėl to, kad žmogus priparkuodavo apverstą tr. pr. aikštelėje. Dėl tam tikrų sąlygų tą tr. pr. pastoviai sukurdavo su HP < 250 ir ji pastoviai sprogdavo, taip perpildydama stack'ą.

Galimas toks variantas, net nepagalvojau apie tai, nes aš pakeičiau mode daug mappų, o mašinas palikau senas, t.y. jos gali būti įstrigusios pastatuose arba kristi po žeme. Pabandysiu įkelti naujas ir tada parašysiu jei ką. Ačiū. :)

Galimas toks variantas, net nepagalvojau apie tai, nes aš pakeičiau mode daug mappų, o mašinas palikau senas, t.y. jos gali būti įstrigusios pastatuose arba kristi po žeme. Pabandysiu įkelti naujas ir tada parašysiu jei ką. Ačiū. :)

Abejoju, kad kaltos mašinos iškritusios iš map'o, nebent dėl tam tikrų sąlygų jos niekad normaliai nebe susikuria.
  • Teigiamai 3
(redaguota)

Tas pats vaizdelis..

http://www.part.lt/perziura/b3fc270046bcbc0150ab2c1c44a85f399.jpg

 

EDIT:


Temą galite rakinti, Edgaras padėjo privačiai.

 

Problema buvo tame, kad buvo sukurtas stock'as AC_CreateVehicle, o pačiam stock'e buvo panaudotas tas pats stock'as, tai yra kuriau mašiną ne CreateVehicle, o AC_CreateVehicle.

Redaguota , nario Rocky'
(redaguota)

Stack/heap collision reiskia kad tu allocatinai tiek atminties stack'e, kad jos neuztenka. dazniausiai stack'o dydis siekia iki 1 MB, taigi pasiziurek ar funkcijos call stack'e neuzema tiek atminties

kaip matai is logo, stack pointeris yra 0x472EA4, o heap 0x472E78. kadangi heap atmintis turi but auksciau nei stack, o pas tau jinai yra zemiau, ivyksta susidurimas.

tavo sakinys

 

 

Šias klaidas meta po OnUnoccupiedVehicleUpdate ir po OnVehicleSpawn.

nera is tikruju patvirtintas, nes kaip matai debuggingo simboliai nera ikelti ir jei viska gerai darai debugginant, jei tikrai turi but ikelti. tai gali reikst kad klaida ivyko ne tavo kode.

Redaguota , nario samp-gamer

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4016 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...