Page 1 of 1

Maiksimalus sma dydis

Posted: 2011 Oct 16 11:51
by addinol
Hey, nesuprantu kas daros, nebeeina sukompilinti, tiesiog kompilina ir nepabaigia, užlūšta, SMA nedidelis, esu turėjęs didesnių.
Kai pradedu kompilinti, jis palūžta nes išjungus jį dar per processes amxx-pc yra išlikęs su 50 CPU sąnauda.
Kas galėjo atsitikti ?

beje kiti sma susikompiliuoja normalei.

Manau gali būti dėl šito:

Code: Select all

case 300..99999:        {
Bet kaip pakeisti ? pas mane tarkim kas 50 nuo -50 eina iki 299, ir man reikia, jog jei yra daugiau kaip 300 tada tas case būtų, bandžiau su default, bet atrodo netaip veikė.

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 11:59
by hleV
Jo, dėl šito. Kompiliatorius važiuoja po vieną nuo 300 iki 99999, o tai užtrunka. Nemanau, kad toks switch'as atsiliepia plugino performance'ui, bet kompiliavimo laikui tai tikrai. Parodyk pilną switch kodą, gal galima pataisyt šitą.

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 12:13
by addinol
Aj jau supratau, pas mane nelogiškai padarytas visas tas switch, perdarysiu ir veiks su default manau :)

-- 2011 Spa 16 13:15 --

Beje klausimas kaip padaryti lengviau, jog nereiktų daug switchų daryti, kad tarkim pas mane yra PlayerSkill, ir noriu padaryti jog jis padidėtų kažkiek kai nušauna priešą, bet kuo daugiau priešas PlayerSkill turi tuo daugiau ir padidėja, kuo mažiau tuo mažiau padidėja, ir su mirtim tas pats, kuo mažiau žaidėjas turi, tuo daugiau jam to PlayerSkill nuima kai miršta, kuo daugiau turi tuo mažiau nuima.

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 12:18
by hleV
Naudok daugybą/dalybą.

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 12:19
by addinol
Kaip suprast ?

Pavyzdys nepamaišytų :> dėkui :)

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 12:54
by hleV
Nesusiję su Pawn. Pasitelk loginį mąstymą.

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 13:44
by aaarnas
Jis turėjo omenyje matematiškai apskaičiuoti tau reikiamą reikšmę ir užrašyti formulę programoje.

Re: Maiksimalus sma dydis

Posted: 2011 Oct 16 14:00
by addinol
tipo su nužudymu:

SkillRatio = PlayerSkill[victim] / PlayerSkill[attacker];

Tai bus tarkim 112 / 267 = 0.4

Ir tada PlayerSkill[attacker] += 3.5 * SkillRatio ? ir gaunasi 112 += 3.5 *0.4 = 113.4 tai prisideda - 1.4

O jei atvirkščiai būtų tai:

267 / 112 = 2.4

ir tada PlayerSkill[attacker] += 3.5 * 2.4 = 275.4, bet tai jo daugiau skill, ir jis daugiau gavo už nužudymą nei tas kurio mažiau.