Szerző Téma: SSCANF probléma  (Megtekintve 780 alkalommal)

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
SSCANF probléma
« Dátum: 2014. November 09. - 09:57:55 »
0 Show voters
Hello, az a problémám, hogy csináltam egy parancsot, amihez alapból 2 param kell, de hogyha az az 1 param mondjuk \"név\" akkor működésbe kell lépnie egy harmadik paramnak
Nos hát én ezt így oldottam meg, de nem igazán működik:
 
CMD:ajto(playerid,params[])
{
    if(pInfo[playerid][pAdmin] < ASZINT_KEZDO) return NemVagyAdmin(playerid);
if(pInfo[playerid][pAdmin] < ASZINT_TELJES  && !IsPlayerAdmin(playerid)) return NemVagyElegAdmin(playerid);
new tevekenyseg[128],temp;
if(sscanf(params,\"ds\",temp,tevekenyseg)) return Msg(playerid,COLOR_LIGHTRED, \"/ajto [iD] [tevékenység] ( név, bepos, kipos, töröl, munka, frakció)\");
if(!strcmp(tevekenyseg, \"nev\", false) || !strcmp(tevekenyseg, \"név\", false))
{
new AjtoNev[128];
if(sscanf(params,\"dss\",temp,tevekenyseg,AjtoNev)) return Msg(playerid,COLOR_LIGHTRED, \"/ajto név [név]\");
if(!strlen(AjtoNev)) return Msg(playerid,COLOR_LIGHTRED, \"Írj is be valamit akkor...\");
    format(aInfo[temp][aNev],128,\"%s\",AjtoNev);
    SFM(playerid,COLOR_RED,\"Az ajtó új neve: %s\",AjtoNev);
    DestroyDynamic3DTextLabel(aInfo[temp][aLabelB]);
    DestroyDynamic3DTextLabel(aInfo[temp][aLabelK]);
   new tempa[128];
format(tempa,128,\"ID: %d\\nBejárat: %s\\nHasználat: \'F\' vagy \'ENTER\'\", temp, aInfo[temp][aNev]);
aInfo[temp][aLabelB] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, aInfo[temp][aPosBx], aInfo[temp][aPosBy], aInfo[temp][aPosBz], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, aInfo[temp][aVwB], aInfo[temp][aIntB]);
format(tempa,128,\"ID: %d\\nKijárat: %s\\nHasználat: \'F\' vagy \'ENTER\'\", temp, aInfo[temp][aNev]);
aInfo[temp][aLabelK] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, aInfo[temp][aPosKx], aInfo[temp][aPosKy], aInfo[temp][aPosKz], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, aInfo[temp][avWK], aInfo[temp][aIntK]);
    return 1;
        }
        return 1;
}//Itt eredetileg tovább is van de fölösleges lenne ide beírni.

 
Itt új nevet adhatunk az ajtónak. Az a helyzet hogy nem működik, és nem tudok vele mit kezdeni..
Segítséget előre is köszönöm.
UI:NEM szeretnék új parancsot csinálni külön
« Utoljára szerkesztve: 2014. November 09. - 10:50:29 írta ƒlaﻛh »

Nem elérhető M1A1

SSCANF probléma
« Válasz #1 Dátum: 2014. November 09. - 13:30:51 »
0 Show voters
Írd meg valahogy így:
 
new id, tevekenyseg[128];
if(!sscanf(params, \"is[129]\"))
{
   if(!strcmp(tevekenyseg, \"név\")
   {
      new nev[128];
      if(sscanf(params, \"{is[129]}s[129]\", nev)) Msg(playerid, \"Használat: /... ... ... ...\");
      //...
   }
}
else Msg(playerid, COLOR_..., \"Használat: /... ... ...\");

 
Gyorsan írtam, lehet benne hiba. Sok sikert!
Szerk.:
A \"{}\" specifikátorral azt jelzed, hogy arra a részre nincs szükséged.
« Utoljára szerkesztve: 2014. November 09. - 17:06:27 írta M1A1 »

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
SSCANF probléma
« Válasz #2 Dátum: 2014. November 09. - 13:40:34 »
0 Show voters
Ránézésre nem tűnik jónak, most van egy jobb ötletem rá, de ha nem működik kipróbálom a tiedet
;)

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
SSCANF probléma
« Válasz #3 Dátum: 2014. November 10. - 00:10:50 »
0 Show voters
Karácsonyi ajándék, elméletben működnie kell:
 

if(sscanf(params,\"ds[128]{}\",temp, tevekenyseg))
return Msg(playerid,COLOR_LIGHTRED, \"/ajto [iD] [tevékenység] ( név, bepos, kipos, töröl, munka, frakció)\");
if(!strcmp(tevekenyseg, \"nev\", false) || !strcmp(tevekenyseg, \"név\", false))
{
new AjtoNev[128];
if(sscanf(params,\"{ds[128]}s[128]\",AjtoNev)) return Msg(playerid,COLOR_LIGHTRED, \"/ajto név [név]\");
if(!strlen(AjtoNev)) return Msg(playerid,COLOR_LIGHTRED, \"Írj is be valamit akkor...\");
format(aInfo[temp][aNev],128,\"%s\",AjtoNev);
SFM(playerid,COLOR_RED,\"Az ajtó új neve: %s\",AjtoNev);
DestroyDynamic3DTextLabel(aInfo[temp][aLabelB]);
DestroyDynamic3DTextLabel(aInfo[temp][aLabelK]);
new tempa[128];
format(tempa,128,\"ID: %d\\nBejárat: %s\\nHasználat: \'F\' vagy \'ENTER\'\", temp, aInfo[temp][aNev]);
aInfo[temp][aLabelB] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, aInfo[temp][aPosBx], aInfo[temp][aPosBy], aInfo[temp][aPosBz], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, aInfo[temp][aVwB], aInfo[temp][aIntB]);
format(tempa,128,\"ID: %d\\nKijárat: %s\\nHasználat: \'F\' vagy \'ENTER\'\", temp, aInfo[temp][aNev]);
aInfo[temp][aLabelK] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, aInfo[temp][aPosKx], aInfo[temp][aPosKy], aInfo[temp][aPosKz], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, aInfo[temp][avWK], aInfo[temp][aIntK]);
return 1;
}

 
[gmod]Javítottam helyetted a

taget

tagre![/gmod]
« Utoljára szerkesztve: 2014. November 10. - 00:33:38 írta Dfoglalo »

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
SSCANF probléma
« Válasz #4 Dátum: 2014. November 10. - 00:19:04 »
0 Show voters
Találtam rá egyszerűbb megoldást! Zárok, de azért köszönöm!!!!  :thankyou:

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
SSCANF probléma
« Válasz #5 Dátum: 2014. November 10. - 00:34:19 »
0 Show voters
[gmod]Ha kiírod, hogy zársz, miért nem zárod a témát...? Akkor zárok helyetted. Legközelebb ne feledkezz meg róla![/gmod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal