GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Extasy449 - 2012. Szeptember 01. - 21:58:11

Cím: sscanf
Írta: Extasy449 - 2012. Szeptember 01. - 21:58:11
Ü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?
Cím: sscanf
Írta: Gabor.. - 2012. Szeptember 01. - 22:03:55

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;
}
Cím: sscanf
Írta: Extasy449 - 2012. Szeptember 01. - 22:11:04
Nem jó..
Cím: sscanf
Írta: Casamiro - 2012. Szeptember 01. - 22:19:36
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;
}
Cím: sscanf
Írta: Gabor.. - 2012. Szeptember 01. - 22:20:28
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.
Cím: sscanf
Írta: Extasy449 - 2012. Szeptember 01. - 22:24:47
Idézetet írta: Casamiro date=1346530776\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27254\" data-ipsquote-contentclass=\"forums_Topic

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
Cím: sscanf
Írta: Gabor.. - 2012. Szeptember 02. - 18:52:19
Idézetet írta: Extasy449 date=1346531087\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27254\" data-ipsquote-contentclass=\"forums_Topic


 
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.