-
Üdv!
Megtudná mondani valaki, hogyha az alábbi kódot megcsinálom, és kipróbálom (beirom pl /bsz nyit),
CMD:bsz(playerid, params[])
{
new bString[9+1];
if(sscanf(params, \"s[9]\", bString))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
}
else
{
if(!strcmp(bString, \"kivétel\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
}
if(!strcmp(bString, \"befizetés\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
}
if(!strcmp(bString, \"utalás\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
}
if(!strcmp(bString, \"nyit\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
}
}
return 1;
}
akkor miért mindegyikre \"Használat: /bsz <kivétel | befizetés | utalás>\"-t hoz ki?
-
CMD:bsz(playerid, params[])
{
new bString[9+1];
if(sscanf(params, \"s[9]\", bString)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
if(!strcmp(bString, \"kivétel\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
}
if(!strcmp(bString, \"befizetés\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
}
if(!strcmp(bString, \"utalás\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
}
if(!strcmp(bString, \"nyit\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
}
return 1;
}
-
Nem jó..
-
CMD:bsz(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
if(!strcmp(params, \"kivétel\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
}
else if(!strcmp(params, \"befizetés\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
}
else if(!strcmp(params, \"utalás\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
}
else if(!strcmp(params, \"nyit\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
}
else SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
return 1;
}
-
Le is tesztelted úgy is?
Tessék, újra írtam, ha ez sem jó, akkor rossz a sscanf pluginod, avagy includeod.
CMD:bsz( playerid, params[] )
{
new
szString[ 9 + 1 ];
if( sscanf( params, \"s[9]\", szString ) ) return SendClientMessage( playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivetel/befizetes/utalas/nyit>\" );
if( !strcmp( szString, \"kivetel\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"sör\" );
}
if( !strcmp( szString, \"befizetes\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"pálinka\" );
}
if( !strcmp( szString, \"utalas\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"bor\" );
}
if( !strcmp( szString, \"nyit\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"vodka\" );
}
return 1;
}
Az insull() fügvény használata azért nem elõnyös ilyen esetben, mert sscanf-nél megszabhatod, hogy a változónak( jelen esetben szString ) , amibe belekéred az adatot, mennyi cellája legyen, se több se kevesebb. De isnullnál nem. Ott beírhatok 300 karaktert is, és akkor annyi cella lesz foglalt a memóriában, és így memória pazarlás. Ellenkezõ esetben, 9 cella, + 1 az \\0 karakternek.
-
CMD:bsz(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
if(!strcmp(params, \"kivétel\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
}
else if(!strcmp(params, \"befizetés\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
}
else if(!strcmp(params, \"utalás\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
}
else if(!strcmp(params, \"nyit\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
}
else SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
return 1;
}
AAAA mûködik, köszönöm! De akkor most az sscanfnak mi baja volt? Mit írtam meg benne rosszul?
Dupla hozzászólás automatikusan összefûzve. ( 2012. szeptember 01. - 22:36:04 )
Le is tesztelted úgy is?
Tessék, újra írtam, ha ez sem jó, akkor rossz a sscanf pluginod, avagy includeod.
CMD:bsz( playerid, params[] )
{
new
szString[ 9 + 1 ];
if( sscanf( params, \"s[9]\", szString ) ) return SendClientMessage( playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivetel/befizetes/utalas/nyit>\" );
if( !strcmp( szString, \"kivetel\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"sör\" );
}
if( !strcmp( szString, \"befizetes\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"pálinka\" );
}
if( !strcmp( szString, \"utalas\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"bor\" );
}
if( !strcmp( szString, \"nyit\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"vodka\" );
}
return 1;
}
Az insull() fügvény használata azért nem elõnyös ilyen esetben, mert sscanf-nél megszabhatod, hogy a változónak( jelen esetben szString ) , amibe belekéred az adatot, mennyi cellája legyen, se több se kevesebb. De isnullnál nem. Ott beírhatok 300 karaktert is, és akkor annyi cella lesz foglalt a memóriában, és így memória pazarlás. Ellenkezõ esetben, 9 cella, + 1 az \\0 karakternek.
[/quote]
a tied még mindig nemmûködik GaborXD
-
CMD:bsz(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
if(!strcmp(params, \"kivétel\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"sör\");
}
else if(!strcmp(params, \"befizetés\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"pálinka\");
}
else if(!strcmp(params, \"utalás\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"bor\");
}
else if(!strcmp(params, \"nyit\", true))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"vodka\");
}
else SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivétel | befizetés | utalás>\");
return 1;
}
AAAA mûködik, köszönöm! De akkor most az sscanfnak mi baja volt? Mit írtam meg benne rosszul?
Dupla hozzászólás automatikusan összefûzve. ( 2012. szeptember 01. - 22:36:04 )
Le is tesztelted úgy is?
Tessék, újra írtam, ha ez sem jó, akkor rossz a sscanf pluginod, avagy includeod.
CMD:bsz( playerid, params[] )
{
new
szString[ 9 + 1 ];
if( sscanf( params, \"s[9]\", szString ) ) return SendClientMessage( playerid, COLOR_LIGHTBLUE, \"Használat: /bsz <kivetel/befizetes/utalas/nyit>\" );
if( !strcmp( szString, \"kivetel\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"sör\" );
}
if( !strcmp( szString, \"befizetes\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"pálinka\" );
}
if( !strcmp( szString, \"utalas\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"bor\" );
}
if( !strcmp( szString, \"nyit\", true ) )
{
SendClientMessage( playerid, COLOR_LIGHTBLUE, \"vodka\" );
}
return 1;
}
Az insull() fügvény használata azért nem elõnyös ilyen esetben, mert sscanf-nél megszabhatod, hogy a változónak( jelen esetben szString ) , amibe belekéred az adatot, mennyi cellája legyen, se több se kevesebb. De isnullnál nem. Ott beírhatok 300 karaktert is, és akkor annyi cella lesz foglalt a memóriában, és így memória pazarlás. Ellenkezõ esetben, 9 cella, + 1 az \\0 karakternek.
[/quote]
a tied még mindig nemmûködik GaborXD
[/quote]
Akkor a sscanf pluginod, vagy includeod hibás.