SCMEX
Leírás:
Gondolom, már nálatok is elõfordult, hogy ha hosszú szöveg jött ki a chatboxban, nem tudtad elolvasni, és ketté kellet osztanod, vagy/és folytatnod kellet az elõzõ szöveget. Ennek segítségével könnyen szétdarabolhatod a (több mint 128) hosszúságú karaktereket, anélkül, hogy valamit is meg kellene csinálnod. A telepítése igen egyszerû, csak a(z) \"a_samp\" függvénykönyvtár alatt kell lenni.
Alap értékként daraboláskor 128 van beállítva, viszont ezt beállíthatod MAXMIMUM 148 karakterre!
Kép:

Amint láthatjátok, a hosszú szöveget 4 része bontotta, így olvashatóbbá téve.
Figyelem:
Ha színezed a szöveget, akkor a színkódot is ketté vágja/vághatja, így elveszheti a színhatását a szöveg!
Letöltés:
PastebinSolidfiles
#if defined scmex_included
#endinput
#endif
#define scmex_included
stock
darabolas_SCM(playerid, color, const text[], darabolas = 128)
{
new
seged1[148 + 1],
valami = 0 - darabolas,
lenght = strlen(text);
while(lenght > (valami += darabolas))
strmid(seged1, text[valami], 0, darabolas), SendClientMessage(playerid, color, seged1);
}
#if defined _ALS_SendClientMessage
#undef SendClientMessage
#else
#define _ALS_SendClientMessage
#endif
#define SendClientMessage darabolas_SCM
stock
darabolas_SCMToAll(color, const text[], darabolas = 128)
{
new
seged1[148 + 1],
valami = 0 - darabolas,
lenght = strlen(text);
while(lenght > (valami += darabolas))
strmid(seged1, text[valami], 0, darabolas), SendClientMessageToAll(color, seged1);
}
#if defined _ALS_SendClientMessageToAll
#undef SendClientMessageToAll
#else
#define _ALS_SendClientMessageToAll
#endif
#define SendClientMessageToAll darabolas_SCMToAll
Gyönyõrû! ;) Szép Munka!
Õ, most megkérdezném hogy 144 karakter az az egész képernyõ szélességét felhasználja? (ebben az esetben pl. elsõ 3 sor)
és nem 128 a max?
Nos, igazság szerint, a SendClientMessage maximális hossza 144 karakter (már többen is írták), és ez úgy vélem, hogy felbontás függõ. Részemrõl a 128. karakter utáni rész nem jelenne meg, vagy zavaró lenne.
zsoleszka, ezzel a képpel mire akartál célozni? :D
Az én szerény angol tudásommal lefordítva, körülbelül így hangzik magyarul:
Átrendezzem a program lefutását, vagy használjam inkább a goto utasítást.
Eh, ez a csavaros megoldás vajon mennyire rossz lehet?
Hát a képek alapján katasztrófa lett a vége. :D
És ez alatt azt akarod mondani, hogy rossz, hogy goto utasítást használtam? :D
És ez alatt azt akarod mondani, hogy rossz, hogy goto utasítást használtam? :D
yep
Nos, igazság szerint, a SendClientMessage maximális hossza 144 karakter (már többen is írták), és ez úgy vélem, hogy felbontás függõ. Részemrõl a 128. karakter utáni rész nem jelenne meg, vagy zavaró lenne.
tényleg felbontástól függ. 640x480on 70-80 körül van, 800x600on már 100 korül. Írná tovább is, csak a betûméret miatt kimegy a kép jobb oldalán a képernyõbõl :whistle:
Szép kód. Megoldhatnád, hogy ott darabolja, ahol \' \' (space) van. :thumbsup:
Frissítve!
Így megfelel zsoleszka? :)
Nos, igazság szerint, a SendClientMessage maximális hossza 144 karakter (már többen is írták), és ez úgy vélem, hogy felbontás függõ. Részemrõl a 128. karakter utáni rész nem jelenne meg, vagy zavaró lenne.
tényleg felbontástól függ. 640x480on 70-80 körül van, 800x600on már 100 korül. Írná tovább is, csak a betûméret miatt kimegy a kép jobb oldalán a képernyõbõl :whistle:
Szép kód. Megoldhatnád, hogy ott darabolja, ahol \' \' (space) van. :thumbsup:
[/quote]
Éppen meglehet
Frissítve!
Így megfelel zsoleszka? :)
Sokkal jobb. :D
Valaki leírná pontosan mér rossz ez a goto utasítás? :D
Mert énis használom pár helyen, de szeretném tudni.
Mindenhol csak azt írják, hogy rossz.
Nem arra akartam kilyukadni, hanem hogy akk ahol formázott sendclientmessage-t használok és 128-ra van állítva a string mérete, ha azt megnövelném 148-ra akkor több mindent is megjeleníthetnék?
@Kurta999
Itt találsz valami leírást róla:
http://www.scribd.com/doc/76955552/c-kernighan
Frissítve!
Kimaradt a SendClientMessageToAll :D
Jobb lett volna eztis újra létrehozni ciklus nélkül.
Amúgy köszönöm a leírást.
Y_Less kedvéért frissítettem a függvénykönyvtárat!
A ciklust megváltoztattam, illetve az ALS-ot is beleraktam az esetleges hibák elkerülése végett.
Nagyon jo munka!Grat! :smokin: