#define _SCMR_MAX_SIZE 110
#define _SCMR_MAX_WORD_SIZE 24
SCMR(const playerid, const color, const text[], const maxSize = _SCMR_MAX_SIZE, const maxWSize = _SCMR_MAX_WORD_SIZE)
SCMTAR(const color, const text[], const maxSize = _SCMR_MAX_SIZE, const maxWSize = _SCMR_MAX_WORD_SIZE)
SendClientMessageToAll(COLOR_GREEN, \"Az M1 Abrams amerikai harckocsi, amely az Amerikai Egyesült Államok Hadseregének és Tengerészgyalogságának fő típusa. 1980-ban állították szolgálatba, három fő változatát rendszeresítették (M1, M1A1, M1A2). Névadója Creighton Abrams tábornok, aki az Egyesült Államok hadseregének vezérkari főnöke és a 37. Páncélos Ezred parancsnoka volt. Az M1 Abrams az M60 Patton és az M48A5 típusokat váltotta le. Ennek ellenére nem vonták ki valamennyi M60A3...\");
//------------------------------------------------------------------------------
// By: M1A1
//------------------------------------------------------------------------------
#if defined _SCMR_included
#endinput
#elseif !defined _samp_included
#error Please include a_samp before SCMR!
#endif
#if !defined _SCMR_MAX_SIZE
#define _SCMR_MAX_SIZE 128
#else
#assert _SCMR_MAX_SIZE <= 144 && _SCMR_MAX_SIZE >= 64
#endif
#if !defined _SCMR_MAX_WORD_SIZE
#define _SCMR_MAX_WORD_SIZE 15
#else
#assert _SCMR_MAX_WORD_SIZE < _SCMR_MAX_SIZE && _SCMR_MAX_WORD_SIZE >= 15
#endif
#define _SCMR_included
stock SCMR(const playerid, const color, const message[], const maxSize = _SCMR_MAX_SIZE, const maxWSize = _SCMR_MAX_WORD_SIZE)
{
new from = 0;
if(strlen(message) < maxSize)
{
return SendClientMessage(playerid, color, message);
}
do
{
new length = maxSize - 1;
for(new i = 0; i < maxWSize; i++)
{
if(message[(from + length) - i] == \' \')
{
if(i != 0) length -= i - 1;
break;
}
}
if(from + length > strlen(message)) SendClientMessage(playerid, color, SCMR_getStrPart(message, from + 1, strlen(message)));
else SendClientMessage(playerid, color, SCMR_getStrPart(message, from, from + length));
from += length;
}
while(from < strlen(message) - 1);
return 1;
}
stock SCMTAR(const color, const message[], const maxSize = _SCMR_MAX_SIZE, const maxWSize = _SCMR_MAX_WORD_SIZE)
{
new from = 0;
if(strlen(message) < maxSize)
{
return SendClientMessageToAll(color, message);
}
do
{
new length = maxSize - 1;
for(new i = 0; i < maxWSize; i++)
{
if(message[(from + length) - i] == \' \')
{
if(i != 0) length -= i - 1;
break;
}
}
if(from + length > strlen(message)) SendClientMessageToAll(color, SCMR_getStrPart(message, from + 1, strlen(message)));
else SendClientMessageToAll(color, SCMR_getStrPart(message, from, from + length));
from += length;
}
while(from < strlen(message) - 1);
return 1;
}
#if defined _ALS_SendClientMessage
#undef SendClientMessage
#else
#define _ALS_SendClientMessage
#endif
#define SendClientMessage SCMR
#if defined _ALS_SendClientMessageToAll
#undef SendClientMessageToAll
#else
#define _ALS_SendClientMessageToAll
#endif
#define SendClientMessageToAll SCMTAR
stock SCMR_getStrPart(const string[], const start, const end)
{
new tmp[144];
strmid(tmp, string, start, end);
return tmp;
}
Tetszik. Írd ki a készítõt, valamint rossz helyre nyitottad.A készítõ én vagyok, és jó helyre nyitottam. :)
Ha még a színkódokat is megtalálja ({,} karakterek) akkor lesz az igazi bár így is többet tud mint az SCMEX.Sebességet még nem mértem, de mindjárt mérek.
Sebességet mértél?
Futtasd le 10000-szer és úgy mérd.Rendben, köszi.
Maga a kód lehetne optimalizáltabb, meg sokkal kisebb is. Túl van bonyolítva, sokkal egyszerűbb módon is meglehet írni.+1
+1
Maga a kód lehetne optimalizáltabb, meg sokkal kisebb is. Túl van bonyolítva, sokkal egyszerűbb módon is meglehet írni.
Nevettem, mikor megláttam ezt a megoldást :D Az én 10 soros megoldásomhoz képest elég bonyolult.
[/quote]
:D Hát.. Van még mit tanulnom...
Majd átgondolom az egészet. Egyenlőre nem igen érek rá..
Szerk.:
FRISSÍTVE!
Kód újraírva, most optimalizáltabb.
Szerk2.:
FRISSÍTVE!
Megint újraírtam a kódot, most mégkevésbé optimalizálatlan és bonyolult.