Szerző Téma: elsõ helytelen, másodjára mûködõ parancs betöltés  (Megtekintve 1610 alkalommal)

elsõ helytelen, másodjára mûködõ parancs betöltés
« Dátum: 2014. március 12. - 06:40:46 »
0 Show voters
Úgy 2 parancsomnál észleltem, hogy elsõre hiányosan tölti be. Elsõre nem tölti be a parancsban az összes adatot, másodjára meg teljesen jól mûködik.. Elég bonyolult(nekem) parancsok, minek az oka lehet egy ilyen dolog?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #1 Dátum: 2014. március 12. - 07:22:44 »
+1 Show voters
bemásolnád a 2 parancsot?
meg milyen adatot nem tölt be a parancsban?
pontosabban írd le mit csinál 1. és másodszor és mit kéne csinálnia...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #2 Dátum: 2014. március 12. - 15:30:06 »
0 Show voters
A parancsban egyszerûen neveket( szerv név, játékos név...)  azaz a format függvénynél a %s -el jelölt adatokat tölti be csak minden 2. használatkor.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #3 Dátum: 2014. március 12. - 15:40:56 »
+1 Show voters
másold be a parancsot
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #4 Dátum: 2014. március 12. - 19:32:58 »
0 Show voters
A parancs már nincs meg(módosítottam..) De így utólag rájöttem mi volt a hiba, és erre szeretnék egy magyarázatot kérni.
Volt egy változóm:
 
new szervnev[64];

 
És megvolt adva, hogy a szervnev mivel legyen egyenlõ(ebbe nem mennék bele dini -s cuccok) a lényeg, hogy az egyenlõsége kivolt szabva egy adott névre. Pl.
 
if(abrakadabra == 1) { szervnev = \"Sajt\"; }

 
Aztán így pl. Ez felvolt használva:
 
format(string,sizeof(string),\"%s megette %s %s-jét!\",neve(jatekos),neve(playerid),szervnev)

 
na jó persze ez nem ilyen egyszerûen, megvolt adva a parancsban az, hogy mikor 1 és 2 es értéket kapjon a szervnev.. (if(sscanf(params....................)
De a szervnevet mindig csak 2. -jára írta ki helyesen. Elsõre vagy az az elõttileg kiírtat adta, vagy semmit. Kérdés, miért?
Ez csak példa hülyeség volt, mivel töröltem a parancsot.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #5 Dátum: 2014. március 12. - 19:59:32 »
0 Show voters
a szervernév beállításnál az if-nek mindig volt igaz ága?
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #6 Dátum: 2014. március 12. - 21:04:48 »
0 Show voters
\"szervnev\" nem szerver. De egyébként nem értem hogy érted. minden szükséges \"számon\" volt megfelelõ értéke.

Dupla hozzászólás automatikusan összefûzve. ( 2014. március 13. - 15:58:38 )

Na itt egy hibás parancs(ez egy új..)
 
CMD:giverang(playerid, params[])
{
new string[128],jatekos;
Frakciok(playerid);
FrakcioRangok(jatekos);
if(adatai[playerid][Leader] == adatai[jatekos][Frakcio] || adatai[playerid][Admin] >= 3)
{
if(sscanf(params,\"ui\",jatekos, rang)) return SendClientMessage(playerid, 0x00ff15AA, \"Szerver: /giverang [játékos/ ID] [Rang]\");
{
   adatai[jatekos][Rang] = rang;
   format(string,sizeof(string),\"%s %s Rangja módosítva: %s!\",frakcionev, neve(jatekos),rangnev);
   SendFrakcioMessage(1,0x0033ffAA,string);
}
if(INVALID_PLAYER_ID == jatekos)
       {
           SendClientMessage(playerid,0x0033ffAA,\"Hibás ID/NÉV!\");
}
 
}
else
{
    SendClientMessage(playerid, 0xff0000AA, \"Te nem használhatod!\");
}
return 1;
}

 
A következõ a hiba vele, ugye a stock fügvényekkel megvannak adva az értékek. Na de, itt csak azt használtam, hogy /giverang 0 1 és :
\"width=500http://kepfeltoltes.hu/140313/sa-mp-054_www.kepfeltoltes.hu_.png[/img]
Az elsõre még is a 2 es rang értékét adta be, de utána ha megint beírom, hogy /giverang 2, akkor is az 1 est veszi be, majd 2.jára a 2 est és onnantól jó.
Ha ezt valaki megcsinálja/megmondja miért van, adok neki egy piros pontot :D
« Utoljára szerkesztve: 2014. március 13. - 15:58:38 írta ppatrik2012 »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #7 Dátum: 2014. március 13. - 16:56:22 »
0 Show voters
ez a 2 függvény mit csinál?
 
Frakciok(playerid);
FrakcioRangok(jatekos);

 
ez honnan jön?
 
rangnev

 
nem lehet hogy így kéne? pontosan nem tudom mit csinál az a függvény de ránézésre valami ilyesmi problémát látok...de ezt csak akkor jelenthetem ki biztosan ha megválaszoltad a kérdéseimet...
 
adatai[jatekos][Rang] = rang;
FrakcioRangok(jatekos);
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #8 Dátum: 2014. március 13. - 17:29:29 »
0 Show voters
Frakciok(playerid); 

 
Annyit tesz, hogy megadja a Frakció nevét. (frakcionev)
 
FrakcioRangok(jatekos);

 
Ez meg a frakcio rangot adja meg. (rangnev)
A \"rangnev\" ugyan úgy változó, csak nem hoztam létre külön-külön.

Dupla hozzászólás automatikusan összefûzve. ( 2014. március 13. - 17:31:54 )

Egyébként kipróbáltam, ahogy írtad. Ugyan úgy rossz.
« Utoljára szerkesztve: 2014. március 13. - 17:31:54 írta ppatrik2012 »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #9 Dátum: 2014. március 13. - 17:43:19 »
0 Show voters
másold be a kódjukat...gondolom 2 macro...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #10 Dátum: 2014. március 13. - 17:45:30 »
0 Show voters
stock FrakcioRangok(playerid)
{
if(adatai[playerid][Frakcio] == 1)
{
    if(adatai[playerid][Rang] == 1) { rangnev = \"Õrmester\"; }
    else if(adatai[playerid][Rang] == 2) { rangnev = \"Hadnagy\"; }
}
return 1;
}
stock Frakciok(playerid)
{
    if(adatai[playerid][Frakcio] == 1) { frakcionev = \"Rendõrség\"; }
    if(adatai[playerid][Frakcio] == 2) { frakcionev = \"OMSZ\"; }
    return 1;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #11 Dátum: 2014. március 13. - 18:23:49 »
0 Show voters
nem gondoltam volna hogy ennyire rossz a helyzet :D
am ennek mûködnie kellett volna...
 
adatai[jatekos][Rang] = rang;
FrakcioRangok(jatekos);

 
de szerintem ne globális változókba pakold a szövegeket...inkább használj visszatérési értéket...
 
if(adatai[playerid][Frakcio] == 1)
{
switch(adatai[playerid][Rang])
{
    case 1: return \"Õrmester\";
    case 2: return \"Hadnagy\";
}
}

 
a format-hoz a függvényt írod be paraméternek mint a neve(jatekos) függvénynél is tetted...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #12 Dátum: 2014. március 13. - 19:48:48 »
0 Show voters
Nálam a te módszeredtõl behal a pawno :D Nem tudja lefuttatni..

Dupla hozzászólás automatikusan összefûzve. ( 2014. március 13. - 19:58:57 )

írd már össze légyszives a parancsal..
« Utoljára szerkesztve: 2014. március 13. - 19:58:57 írta ppatrik2012 »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #13 Dátum: 2014. március 13. - 23:43:44 »
0 Show voters
ja igen a direkt stringet nem szereti :D
van ez a rondábbik megoldás:



stock GetRankName(faction,rank)
{
new trn[16];
switch(faction)
{
    case 0: // Frakció 1
    {
   switch(rank)
   {
       case 0: trn = \"rank0\"; // Frakció 1 Rang 1
       case 1: trn = \"rank1\"; // Frakció 1 Rang 2
       case 2: trn = \"rank2\"; // Frakció 1 Rang 3
       case 3: trn = \"rank3\"; // Frakció 1 Rang 4
       case 4: trn = \"rank4\"; // Frakció 1 Rang 5
   }
}
case 1: // Frakció 2
    {
   switch(rank)
   {
       case 0: trn = \"rank0\"; // Frakció 2 Rang 1
       case 1: trn = \"rank1\"; // Frakció 2 Rang 2
       case 2: trn = \"rank2\"; // Frakció 2 Rang 3
       case 3: trn = \"rank3\"; // Frakció 2 Rang 4
       case 4: trn = \"rank4\"; // Frakció 2 Rang 5
   }
}
case 2: // Frakció 3
    {
   switch(rank)
   {
       case 0: trn = \"rank0\"; // Frakció 3 Rang 1
       case 1: trn = \"rank1\"; // Frakció 3 Rang 2
       case 2: trn = \"rank2\"; // Frakció 3 Rang 3
       case 3: trn = \"rank3\"; // Frakció 3 Rang 4
       case 4: trn = \"rank4\"; // Frakció 3 Rang 5
   }
}
}
return trn;
}

 
 
lekérdezés:
 
GetRankName(FrakcióID,RangID)

 
vagy ha azonos mennyiségû rang van 1-1 frakcióban akkor inkább a tömbben tárolást ajánlom! ez online szerkeszthetõ is...csak ha szerkeszthetõ akkor kell betöltõ + mentõ kód is!



#define MAX_FACTIONS    (3)
#define MAX_RANKS       (5)
new FactionRanks[MAX_FACTIONS][MAX_RANKS][16] =
{
{ // Frakció 1
\"F1R1\", // Rang 1
\"F1R2\", // Rang 2
\"F1R3\", // Rang 3
\"F1R4\", // Rang 4
\"F1R5\"  // Rang 5
},
{ // Frakció 2
\"F2R1\", // Rang 1
\"F2R2\", // Rang 2
\"F2R3\", // Rang 3
\"F2R4\", // Rang 4
\"F2R5\"  // Rang 5
},
{ // Frakció 3
\"F3R1\", // Rang 1
\"F3R2\", // Rang 2
\"F3R3\", // Rang 3
\"F3R4\", // Rang 4
\"F3R5\"  // Rang 5
}
};

 
 
lekérdezés:
 
FactionRanks[FrakcióID][RangID]
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

elsõ helytelen, másodjára mûködõ parancs betöltés
« Válasz #14 Dátum: 2014. március 14. - 19:19:32 »
0 Show voters
1 dolgot nem értek, az én megoldásommal elméletben ugyan ezt kellene elérnem amit te írtál nem? Egyébként légyszi rakd össze a parancsommal.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal