Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van. 2236
Játékok / [segítség] Counter Strike: Source« Dátum: 2010. május 08. - 08:59:07 »
Rowlend, nem akarok veled vitatkozni, de egy szóval sem mondtam, hogy nem vettem meg, meg ha ez nem is így lenne, akkor sem híresztelném ( a ti helyetekben sem ) mert az wareznak számít, amit itt nem lehet. Amúgy a megoldás az volt, hogy 55°-s processzorom volt, és 60°után autorestartol a gép. Szóval ez a megoldás, mostmár jó.
2237
Archívum / [BTD|HUN/ENG]Before The Dawn Zombie Server« Dátum: 2010. május 07. - 19:04:26 »
A szervermbe én már ksézítettem egy kooperaktív modot, elég sokat kellett vele szórakozni, ez teljesen más ahogy nézem, amúgy gl.
2238
Játékok / [segítség] Counter Strike: Source« Dátum: 2010. május 06. - 17:01:12 »
Az indításánál a gép fogja magát, és újraindul. A konfig megvan hozzá, mindennek muködnie kéne. Azt olvastam, talán leterheli a gépet, de más (COD4, SWAT 4, stb..) játékoknál ez nem fordul elo.
Valami megoldás? 2239
Szkript kérések / pályák« Dátum: 2010. május 05. - 17:33:06 »
én hasonló scriptet írok az rp szerómhoz, megoldható, de nem úgy ahogy te gondolod...
2240
Szkript kérések / Ajtó bezérás (/lock)« Dátum: 2010. május 05. - 17:28:10 »
Globális Változók:
new bool: Locked[MAX_VEHICLES]; if(strcmp(cmdtext, \"/lock\", true)==0) public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) 2241
Leírások/Útmutatók / [TUT]Object "betölto" (teleportnál)« Dátum: 2010. május 05. - 17:21:18 »
uf.inc (Useful Functions) -ban van egy wait(); függvény, azzal sokkal egyszerubb lehet.
2242
Szkript kérések / Város« Dátum: 2010. május 02. - 17:06:08 »
Én már megtettem, nem sokárra indul egy szeró az én általam objectelt mappal
2243
Segítségkérés / 1 találatnál szöveg írás« Dátum: 2010. május 02. - 13:24:24 »
OnPlayerKeyStateChange callbackbe
Funkció amit használ stock IsPlayerAiming(playerid, aimid) 2244
Segítségkérés / Ne lehessen bannolni.« Dátum: 2010. május 02. - 11:20:07 »
Nah szóval
Magyarul az admin scriptedbe szúrd be ezeket a sorokat:
2245
Segítségkérés / Ne lehessen bannolni.« Dátum: 2010. május 02. - 09:28:20 »
Ooo ha RCON-os bant akarod megakadályozni akkor..
public OnRconCommand(cmd[]) Elméletben így muködnie kell 2246
Leírások/Útmutatók / [TuT]Boostok« Dátum: 2010. május 02. - 09:07:03 »
Csináljunk pár globális változót
new Float:x, Float:y, Float:z; Ezzel megkíméljük magunkat a sokszoros újrabeírkálástól, egyszerubb lesz a munka. Aztán, leegyszerusíthetjük a scriptünket public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) Ám, ha csak a speedboostokra használjuk a gombokat, akkor használhatjuk csak egyszer, a callback elején: public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) 2247
Leírások/Útmutatók / String Takarékosság - Spóroljunk memóriát!« Dátum: 2010. május 02. - 08:42:27 »
Köszönöm a dicséretet.
Updateltem benne pár dolgot. 2248
Leírások/Útmutatók / String Takarékosság - Spóroljunk memóriát!« Dátum: 2010. május 01. - 22:57:18 »
Stringek
Nos, ahogy Y_Less is leírta az ő SAMPos topicjába, az embereknek elég eltérő nézetük van a stringekkel kapcsolatba. Valaki azt gondolja, nem lehet nagyobb mint 256 cella (ami hülyeség, ugyanis a string limit 1024), valaki azt gondolja, alapból 256 cellát foglal el, és a többi. Nos, megmutatjuk, hogy pazarlás, és meglátjuk, mennyi helyet takaríthatunk meg. Alapvető tudnivalók A STRING a pawno-ban karakterek tömbje. Viszont van egy lényeges eltérés. A stringek alapból 1 cella hosszúak. Ugyanis, ha valaki már programozott más nyelveken, tudja, hogy az ASCII minden karakterláncot a \"NULL\" vagy \"\\0\" karakterrel zár le. Lássunk egy jó példát a stringek használatára: new string[3] = \"hi\" Ez három cella hosszú, egy a \"h\" karakternek, egy az \"i\" karakternek, egy pedig a \"NULL\"-nak. new string[3] = { \'h\', \'i\', \'\\0\' } Ez tulajdonképp ugyanaz, csak itt cellánként vannak felosztva a karakterek. A Pawno a stringben minden karaktert a terminátor NULL-ra álílt be, ha meghívjuk, ezért ha ezt írjuk be: new string[256] Tulajdonképp ezt tesszük: for(new i = 0, i < *stringhosszúság*, i++) return str = 0; Rendben, de miért ne használjam? Mert lassú. Ahogy láthattuk, minnél több stringet adunk meg, annál több lesz a stringhosszúság, így annál több ideig tart a ciklus, echte annál többször kell a karaktereket 0-znia a PAWNO-nak. Mert nincs rá szükséged. Pl. new modlevel[256]; if(PeepThatShit == 0) new string[256]; format(string,sizeof(string),\"Csak a %d szint feletti adminok tekinthetik meg ezt a valamit.\",ModLevel); Ez egy abszolút rossz példa. Vegyük úgy, egy 5 szintes admin scripttel van dolgunk. Akkor az maximum 1 cellát foglal le, + a NULL. Szóval: new modlevel[2]; A stringnek se muszály ekkora értéket adni. Nézzük meg mennyi karakterből áll ez a string: Ez összesen 61 cellából áll, ugyanis a \"%d\" nem számít bele, szóval -2 karaktert levontunk, ám ezt rögtön a 2 cella hosszú modlevel miatt vissza is kell adni. + a NULL. new modlevel[2]; if(PeepThatShit == 0) new string[61]; format(string,sizeof(string),\"Csak a %d szint feletti adminok tekinthetik meg ezt a valamit.\",ModLevel); Mivel tudjuk, hogy 1 cella 4 bájtból áll, ezért kiszámolhatjuk, hogy össz. 192 cellát mentettünk meg. Ha ezt megszorozzuk néggyel, 768 byte, több mint fél megabájt memóriát vesztettünk. Chat: Ha a chattel kapcsolatos funkciókat nézzük, akkor a chat imput 128 karakter. Tehát ennyit tudunk összesen a chatbe írni. A 256 cellának a 3/4-ét takarítottuk meg így. A chat output 256 karakter, tehát ennyit tud maximum a chat kijelezi. Ugyanazt tudom elmondani, mint az előbb, minek 512 cella, ha a fele kárbavész? Ezenkívül további limiteket is szem előtt tarthatunk ha takarékosságról van szó. Például ha egy adott változóba a játékos nevét tároljuk el, és ha nem vagyunk biztosak a mértékében, jobb, ha az a_samp.inc függvénykönyvtárból hívjuk be a cellahosszot. new IsAnRPName[MAX_PLAYER_NAME] Ugyanez vonatkozik a többi hasonló limitált mennyiségű script property-re. Másik érdekes példa: public OnPlayerCommandText(playerid, cmdtext[]) Ez teljesen hibás.
Miért kéne a cmd string ide? Mért csinálunk 2 hatalmas változót a parancsnak, és az adatnak is? Az adatot csak akkor használod, ha beírtad a parancsot. Szóval egyszerűsítsük le.
Miért 256 cella hosszú? Ahogy előbb már letárgyaltuk, a chatbe max 128 karaktert tudunk beírni. Ezért írjuk is át.
Memória (stack): Ha meghívunk egy funkciót, akkor az eltárolódik egy bizonyos stack-ban.
Nézzük meg mi történik. adunk gVar-nak egy értéket, ami 2, majd csinálunk egy 9 cella értékű stringet (nem pazarlunk) ugyanis a következő érték: \"gVar = \" 7 cellából áll, + a gVar értéke, ami 2. Elküldi a változó értékét, majd lekérdezi, hogy a gVar meghívódott-e. Ha igen, akkor a gVar-t egyesével csökkentjük. Mivel 9 cellával van dolgunk, és a gVar 2, ezt csökkentjük 3 alkalommal (2 > 1 > NULL) mindegyik között a funkció meghívódik mégegyszer. És mi történik ha 256-tal használunk? new gVar = 2; A gVar-t továbbra is ürítjük, ám a pawno-nak időbe tellik, mire a 256 stringből mindet átírja NULL-ra, ezért a memóriahasználat 2800%-a az eredtinek. Mikor használjak 256-ot? MySQL adatbázis lekéréseknél, mivel azoknál nem biztos az adat mennyisége, különösen nem a TEXT típusú adatmezőkben. Fájlkiolvasás: Szintén nem tudhatjuk, mekkora lesz az output. Írta Y_Less, kibővítette krisk. 2249
Segítségkérés / NPC: Enemy, HP« Dátum: 2010. május 01. - 21:44:35 »
Az a fele sikerült, hogy ha eltalálják mondjuk lefreezeli, és berakja animba. Mert: Anim -> KEY_FIRE = Lövés, ez tökéletes megy a 2. kérdésnél
Na de az 1.-nél nem, ugyanis nem tudom beállítani, hogy az NPC-m lenyomjon egy gombot vagy ne. 2250
Segítségkérés / NPC: Enemy, HP« Dátum: 2010. május 01. - 09:46:19 »
A kérdéseim:
- Lehet-e egy NPC-t ellenséggé tenni? (mint SP-be?), szóval hogy lo rád ha el mész mellette, stb...? - Lehet-e az NPC életét átállítani? (SetPlayerHealth)? |