Szerző Téma: /f e fegyvernél  (Megtekintve 644 alkalommal)

BarnyBoy

  • Vendég
/f e fegyvernél
« Dátum: 2014. Május 05. - 20:46:49 »
0 Show voters
Üdv!
Hogyan kellene megcsinálni azt hogy 2 paraméter legyen? Szóval ne csak /f MP5, hanem /f e MP5.
Elõre is köszi! :)

Nem elérhető skyLine

  • Globális moderátor
  • 2171
  • 2020
  • Vaterán
    • Profil megtekintése
/f e fegyvernél
« Válasz #1 Dátum: 2014. Május 06. - 00:24:06 »
0 Show voters
sscanf-al egyszerûen.
Például így nézne ki:
 
new param1, param2;
if(sscanf(params, \"dd\", param1, param2)) return SendClientMessage(playerid, usecolor, \"Használat: /f [Funkció 1] [Funkció 2]\");

 
Ha kicsit utánaolvasol az sscanf-nak akkor megértheted.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
/f e fegyvernél
« Válasz #2 Dátum: 2014. Május 06. - 04:30:15 »
0 Show voters
Ha meg ilyen funkciót akar, pont, hogy stringet kell neki megadni.
 
new JF[MAX_PLAYERS];
stock GetWeaponIDFromName(fn[])
{
new fn2[32], fsz = -1;
for(new a; a < 0; a++)
{
GetWeaponName(a, fn2, sizeof(fn2));
if(!strcmp(fn, fn2)) return a;
}
return -1;
}
public OnPlayerUpdate(playerid)
{
if(GetPlayerWeapon(playerid) != JF[playerid] SetPlayerArmedWeapon(playerid, JF[playerid]);
return 1;
}
CMD:f(playerid, params[])
{
new muv[16], fnev[32];
if(sscanf(params, \"s[17]\", muv) return SendClientMessage(playerid, -1, \"Használat: /f [e/k/r].\");
if(!strcmp(\"e\", muv)) //ha a muvelet \"e\" volt, azon belül is operálhatunk a fegyvernévvel is, ha tovább daraboltuk
{
if(sscanf(params, \"s[17]s[33]\", muv, fnev) return SendClientMessage(playerid, -1, \"Használat: /f e [fegyver].\");
//itt már operálhatsz a fegyver nevével, strcmp-vel hasonlíthatod, de egyszerûbb lesz ezzel a függvénnyel:
elvf = GetWeaponIDFromName(fnev);
if(GetPlayerWeapon(playerid) == elvf) return SendClientMessage(playerid, -1, \"Ez már nálad van!\");
//SetPlayerArmedWeapon(playerid, elvf);
JF[playerid] = elvf;
}
else if(!strcmp(\"k\", muv))
{
if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid, -1, \"Mit akarsz eltenni? o.O\");
//SetPlayerArmedWeapon(playerid, 0);
JF[playerid] = 0;
}
else if(!strcmp(\"r\", muv))
{
//ide jöhetnek dolgok..
}
return 1;
}
//Most írtam, nem valószínû, hogy megy, habár..

 
Sok szerencsét, további jó scriptelést! :thumbsup:
« Utoljára szerkesztve: 2014. Május 06. - 05:08:27 írta KovaNovik »

BarnyBoy

  • Vendég
/f e fegyvernél
« Válasz #3 Dátum: 2014. Május 06. - 16:52:59 »
0 Show voters
Csak szerintem nagyon bonyolult? Mert nem nagyon értem... utánaolvastam, most sem vágom teljesen.
Valaki meg tudná nekem azt csinálni hogy ha a játékos beírja hogy /f e MP5 akkor ezt behozza neki:
 
if(ElolDeagle[playerid] == 0 && ElolUto[playerid] == 0 && ElolColt[playerid] == 0)
   {
      if(ElolMP5[playerid] == 0)
      {
         if(pInfo[playerid][pMP5] >= 50)
          {
            SendClientMessage(playerid, VILAGOSPIROS, \"Elõvetted az MP5 típusú fegyvert.\");
            cmd_va(playerid, \"elõvett egy fegyvert.\");
            GivePlayerWeapon(playerid, 29, 50);
            pInfo[playerid][pMP5] -= 50;
            ElolMP5[playerid] = 1;
         }
         else if(pInfo[playerid][pMP5] < 50 && pInfo[playerid][pMP5] > 0)
         {
            SendClientMessage(playerid, VILAGOSPIROS, \"Elõvetted az MP5 típusú fegyvert.\");
            cmd_va(playerid, \"elõvett egy fegyvert.\");
            GivePlayerWeapon(playerid, 29, pInfo[playerid][pMP5]);
            pInfo[playerid][pMP5] = 0;
            ElolMP5[playerid] = 1;
         }
         else
         {
            SendClientMessage(playerid, PIROS, \"Nincs MP5 nálad!\");
         }
      }
   }

 
A többit ez alapján megcsinálnám.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
/f e fegyvernél
« Válasz #4 Dátum: 2014. Május 06. - 20:54:10 »
0 Show voters
Megírtam úgy, hogy bõvíteni sem kell. Az aktuális fegyvert miért is nem elég ellenõrizni? :D
Amúgy bem bonyolult (annyira), csak kicsit tömör.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/f e fegyvernél
« Válasz #5 Dátum: 2014. Május 24. - 14:58:38 »
0 Show voters
[mod]Témát zártam! Ha mégsem oldódott meg a problémád, kérlek jelezd PÜ-be, és megnyitom a témát![/mod]

BarnyBoy

  • Vendég
/f e fegyvernél
« Válasz #6 Dátum: 2014. Május 05. - 20:46:49 »
0 Show voters
Üdv!
Hogyan kellene megcsinálni azt hogy 2 paraméter legyen? Szóval ne csak /f MP5, hanem /f e MP5.
Elõre is köszi! :)

Nem elérhető skyLine

  • Globális moderátor
  • 2171
  • 2020
  • Vaterán
    • Profil megtekintése
/f e fegyvernél
« Válasz #7 Dátum: 2014. Május 06. - 00:24:06 »
0 Show voters
sscanf-al egyszerûen.
Például így nézne ki:
 
new param1, param2;
if(sscanf(params, \"dd\", param1, param2)) return SendClientMessage(playerid, usecolor, \"Használat: /f [Funkció 1] [Funkció 2]\");

 
Ha kicsit utánaolvasol az sscanf-nak akkor megértheted.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
/f e fegyvernél
« Válasz #8 Dátum: 2014. Május 06. - 04:30:15 »
0 Show voters
Ha meg ilyen funkciót akar, pont, hogy stringet kell neki megadni.
 
new JF[MAX_PLAYERS];
stock GetWeaponIDFromName(fn[])
{
new fn2[32], fsz = -1;
for(new a; a < 0; a++)
{
GetWeaponName(a, fn2, sizeof(fn2));
if(!strcmp(fn, fn2)) return a;
}
return -1;
}
public OnPlayerUpdate(playerid)
{
if(GetPlayerWeapon(playerid) != JF[playerid] SetPlayerArmedWeapon(playerid, JF[playerid]);
return 1;
}
CMD:f(playerid, params[])
{
new muv[16], fnev[32];
if(sscanf(params, \"s[17]\", muv) return SendClientMessage(playerid, -1, \"Használat: /f [e/k/r].\");
if(!strcmp(\"e\", muv)) //ha a muvelet \"e\" volt, azon belül is operálhatunk a fegyvernévvel is, ha tovább daraboltuk
{
if(sscanf(params, \"s[17]s[33]\", muv, fnev) return SendClientMessage(playerid, -1, \"Használat: /f e [fegyver].\");
//itt már operálhatsz a fegyver nevével, strcmp-vel hasonlíthatod, de egyszerûbb lesz ezzel a függvénnyel:
elvf = GetWeaponIDFromName(fnev);
if(GetPlayerWeapon(playerid) == elvf) return SendClientMessage(playerid, -1, \"Ez már nálad van!\");
//SetPlayerArmedWeapon(playerid, elvf);
JF[playerid] = elvf;
}
else if(!strcmp(\"k\", muv))
{
if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid, -1, \"Mit akarsz eltenni? o.O\");
//SetPlayerArmedWeapon(playerid, 0);
JF[playerid] = 0;
}
else if(!strcmp(\"r\", muv))
{
//ide jöhetnek dolgok..
}
return 1;
}
//Most írtam, nem valószínû, hogy megy, habár..

 
Sok szerencsét, további jó scriptelést! :thumbsup:
« Utoljára szerkesztve: 2014. Május 06. - 05:08:27 írta KovaNovik »

BarnyBoy

  • Vendég
/f e fegyvernél
« Válasz #9 Dátum: 2014. Május 06. - 16:52:59 »
0 Show voters
Csak szerintem nagyon bonyolult? Mert nem nagyon értem... utánaolvastam, most sem vágom teljesen.
Valaki meg tudná nekem azt csinálni hogy ha a játékos beírja hogy /f e MP5 akkor ezt behozza neki:
 
if(ElolDeagle[playerid] == 0 && ElolUto[playerid] == 0 && ElolColt[playerid] == 0)
   {
      if(ElolMP5[playerid] == 0)
      {
         if(pInfo[playerid][pMP5] >= 50)
          {
            SendClientMessage(playerid, VILAGOSPIROS, \"Elõvetted az MP5 típusú fegyvert.\");
            cmd_va(playerid, \"elõvett egy fegyvert.\");
            GivePlayerWeapon(playerid, 29, 50);
            pInfo[playerid][pMP5] -= 50;
            ElolMP5[playerid] = 1;
         }
         else if(pInfo[playerid][pMP5] < 50 && pInfo[playerid][pMP5] > 0)
         {
            SendClientMessage(playerid, VILAGOSPIROS, \"Elõvetted az MP5 típusú fegyvert.\");
            cmd_va(playerid, \"elõvett egy fegyvert.\");
            GivePlayerWeapon(playerid, 29, pInfo[playerid][pMP5]);
            pInfo[playerid][pMP5] = 0;
            ElolMP5[playerid] = 1;
         }
         else
         {
            SendClientMessage(playerid, PIROS, \"Nincs MP5 nálad!\");
         }
      }
   }

 
A többit ez alapján megcsinálnám.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
/f e fegyvernél
« Válasz #10 Dátum: 2014. Május 06. - 20:54:10 »
0 Show voters
Megírtam úgy, hogy bõvíteni sem kell. Az aktuális fegyvert miért is nem elég ellenõrizni? :D
Amúgy bem bonyolult (annyira), csak kicsit tömör.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/f e fegyvernél
« Válasz #11 Dátum: 2014. Május 24. - 14:58:38 »
0 Show voters
[mod]Témát zártam! Ha mégsem oldódott meg a problémád, kérlek jelezd PÜ-be, és megnyitom a témát![/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal