-
Hello.
uj parancsomnál elakadtam. elbiztam amgam
és azt hittem megoldom könnyen, mert egyszerünek tünt. csakhogy tévedtem :D
project: /parancs [név] [szöveg]
eredmény lenne:
\"név\" üzenete: \"szöveg\"
gondolatmenetem és saját próbálkozásom:
if(strcmp(cmdtext,\"/pari\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new offset = idx;
new result[128];
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= \' \'))
{
idx++;
}
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_WHITE, \"Használata: /pari [név] [szöveg].\");
return 1;
}
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, \"Használata: /pari [név] [szöveg].\");
return 1;
}
format(string, sizeof(string), \"%s mondja: %s\", tmp, result);
ProxDetector(3.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
}
return 1;
}
ez hogy lenne helyesen? :\\
zsomaa
-
if(strcmp(cmd, \"/uzineki\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, kuldonev, sizeof(kuldonev));
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFFFFFFFF, \"/uzineki [iD/NÉVRÉSZLET] [ÜZENET]\");
return 1;
}
giveplayerid = strval(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= \' \'))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, 0xFFFFFFFF, \"/uzineki [iD/NÉVRÉSZLET] [ÜZENET]\");
return 1;
}
format(string, sizeof(string), \"%s üzenete: %s\",PlayerName(playerid),result);
SendClientMessage(giveplayerid, 0xFFFFFFFF, string);
}
}
}
return 1;
}
nem teszteltem xD
Hibák elkerülésére:
new kuldonev[MAX_PLAYER_NAME];
new tmp[256];
new idx;
new giveplayerid;
new string[128];
stock PlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
-
nem erre gondoltam :D
hanem beirom hogy
/parancs megadok egy nevet: alma pl.. beadok egy sszöveget: répa
kiadja igy a chatben:
alma mondja: répa
tehát \"fake chat\" :D szal? valaki más?
-
CMD:parancs( playerid, params[ ] ) {
new szFakeName[ MAX_PLAYER_NAME ];
new szFakeMsg[ 100 ];
if( sscanf( params, \"s[24]s[100]\", szFakeName, szFakeMsg ) ) {
SendClientMessage( playerid, COLOR_RED, \"Használat: /parancs <Név> <Üzenet>\" );
} else {
static szFakeString[ 128 ];
format( szFakeString, sizeof szFakeString, \"%s mondja: %s\", szFakeName, szFakeMsg );
SendClientMessageToAll( COLOR_WHITE, szFakeString );
}
return 1;
}
-
beirtam müködés szerint tesztként hogy /parancs alma répa és nem történt semmi sem. kiadta azt hogy használata.. :o
szerk.: javitva :P
CMD:parancs( playerid, params[ ] ) {
new szFakeName[ MAX_PLAYER_NAME ];
new szFakeMsg[ 100 ];
if( sscanf( params, \"ss\", szFakeName, szFakeMsg ) ) {
SendClientMessage( playerid, COLOR_RED, \"Használat: /parancs <Név> <Üzenet>\" );
} else {
static szFakeString[ 128 ];
format( szFakeString, sizeof szFakeString, \"%s mondja: %s\", szFakeName, szFakeMsg );
SendClientMessageToAll( COLOR_WHITE, szFakeString );
}
return 1;
}
igy müködik :D :P
-
Akkor le vagy maradva, te még nem a pluginos sscanf-ot használod( 10-szer gyorsabb a réginél ). Itt egy leírásom róla: http://sampforum.hu/index.php?topic=4400.0
-
ja oké :D
nemtudtam :D köszi zero nagyon :D
telepitem és megértettem legalább a használtatát mostmár :D
zárok..
zsomaa