Szövegosszúság

Indította KrisT, 2014. augusztus 29. - 12:26:49

Előző téma - Következő téma

KrisT

Sziasztok!
Lenne egy olyan problémám, hogy van egy parancs, és ha azt egy admin berija, akkor mindenkinek pirossal azt kiírja. De nekem csak pár szót ír ki. Hogyan lehet meghosszabbítani, hogy ne csak mondjuk 25szót írjon ki?
 
CMD:asayn(playerid,params[])
{
if(Belepve[playerid])
{
    if(IsPlayerAdmin(playerid) || JatekosInfo[playerid][AdminSzint] >= 1)
    {
        new szoveg[1024];
   if(sscanf(params,\"s\",szoveg)) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Használata: /asayn [szöveg]\");
   {
        new string[300];
        GetPlayerName(playerid,nev,sizeof(nev));
        format(string,sizeof(string),\"*Admin %s: %s\",nev,szoveg);
        SendClientMessageToAll(COLOR_PIROS,string);
        printf(string);
        }
       
    }
    else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy admin!\");
   
}
else SendClientMessage(playerid,COLOR_LIGHTRED,\"Nem vagy belépve!\");
return 1;
}

 
[mod]Kiraktam a tageket[/mod]

Andriis

A string számát ha feljebbteszed???

divkn

25 szót egy 300-as karakterláncban? Oh wow.
Csak annyi hogy a \'new string[300]\'-at döveled 1024-re, vagyis amit megadtál \'szoveg\' változónak.
De szerintem az 1024 túl sok, mert nem hiszem hogy egy üzenetben el lehet küldeni több mint 1024 karaktert, inkább sortördeléssel.

rayle

if(sscanf(params,\"s\",szoveg)) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Használata: /asayn [szöveg]\");

 
Meg kell adni a szöveg hosszúságát is. Így:
 
if(sscanf(params,\"s[1024]\",szoveg)) return SendClientMessage(playerid,COLOR_LIGHTRED,\"Használata: /asayn [szöveg]\");

 
De 1024 az valóban sok, 256 bõven elég és akkor még színezheted is nyugodtan.

KrisT

Köszönöm.
ryle, a te ötleted mûködött  :)
Köszönöm a segítségekeet!