Szerző Téma: Láthatónak, láthatatlan parancs.  (Megtekintve 2095 alkalommal)

Láthatónak, láthatatlan parancs.
« Dátum: 2013. november 18. - 08:58:17 »
0 Show voters
Sziasztok,
Lenne egy kérésem:
Keresgéltem a neten erre leírást, de sajnos semmi sikerrel. Az a gond hogy van pl egy ZCMD parancs, és az adminisztrátorok látják a paracsokat. De én mégis be akarok rakni 1-2 parancsot hogy ne legyenek láthatók az admin számára. Mi a megoldás?

Láthatónak, láthatatlan parancs.
« Válasz #1 Dátum: 2013. november 18. - 15:56:49 »
0 Show voters
Kitörlöd a parancsot a listából amit kilistáz nekik? :D

Láthatónak, láthatatlan parancs.
« Válasz #2 Dátum: 2013. november 18. - 16:16:30 »
0 Show voters
Szasza: nem nagyon érted látom...
dipsnark: valami hasonló... Tehát ne lássa azt amit én nem akarom hogy lásson.
Van egy parancs...
Például: /kick
ZCMD-vel:
CMD:kick ...stb...
Nos ezt a parancsot tegyük fel 1-es adminisztrátor is tudja kezelni. De a nagyobb adminisztrátor látja hogy mondjuk * xy(ID): /kick 0 Ne káromkodj.
Na ezt a mezõt nem akarom látni. Tehát ezt a parancsot ne írja ki nagyobb adminoknak. Mert minek? Úgy is kiírja chaten ha kirúg valakit. Tehát ezt a parancs használatot nagyobb admin ne lássa / jel után.

Láthatónak, láthatatlan parancs.
« Válasz #3 Dátum: 2013. november 18. - 22:02:25 »
0 Show voters
Töröld ki az admin filtersscriptbõl azt a részt vagy kapcsold ki.
Ha netalán ladmint használsz (abban van ilyen ha jól tudom) akkor a config fájlban a ReadCmds írd át 0-ra.
Ha csak azt szeretnéd hogy csakis level pontal rendelkezõ adminokét ne írja ki, akkor a szkriptben kell írni olyan feltételt hogy azokét se mutassa.
Az egész parancs megjelenítés részt az OnPlayerCommandText alatt keresd.

Láthatónak, láthatatlan parancs.
« Válasz #4 Dátum: 2013. november 19. - 08:45:48 »
0 Show voters
Mobilról ìrok ezért bocs a helyesírásért. Saját admindrendszert írtam és a gm-ben van nenne. Ezeket amit felsoroltál nem használom. perform alatt használom azt is, hogy ha rossz parancsot ír be akkor ne Unknownt írjon, hanem hogy /xy parancs nem letezik + ez alatt van ez az úgymond parancs látás, de ha nem tudsz hozzá szólni, akkor bemásolhatom a parancsot a jövõben.
De újra hangsúlyozom:
Van egy parancs: CMD:kick(playerid, params[])
{
stb....
}
ezt a parancsot az admin úgy látja, aki nagyobb, hogy:
* AdamHawer(0): /kick 1 test
de ezt a parancsot úgy akarom, hogy ne is jelenítse meg, mert ez nem fontos hogy lássa más... tehát ne fusson le... úgy mint az rcon parancsok sem futnak le ezekben.
Tehát a parancs lefut, de az nem amit lát nagyobb admin.
« Utoljára szerkesztve: 2013. november 19. - 08:52:11 írta AdamHawer »

Láthatónak, láthatatlan parancs.
« Válasz #5 Dátum: 2013. november 19. - 10:02:01 »
0 Show voters
Gondolom a ..perform alatti részben lekéred a játékos nevét, majd egy for ciklus segítségével megjeleníted a szerveren lévõ összes admin játékosnak.
Ott ne csak nevét kérd le hanem ellenõrizd a rangját is.
Ha a parancsot használó személy admin:
 
if(GetAdminLevel(playerid) < 1)  //majd ezután írd a megjelenítõs részt (persze a GetAdminLevel-t cseréld le arra amit te használsz)

Láthatónak, láthatatlan parancs.
« Válasz #6 Dátum: 2013. november 19. - 10:48:36 »
0 Show voters
Én nem értem még mindig, szóval ha ezt használom, akkoregy bizonyos parancs úgy fog lefutni mint a /rcon parancs? ami nem látható senki számára? Mert nekem olyan kell ami senki számára nem lesz látható.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Láthatónak, láthatatlan parancs.
« Válasz #7 Dátum: 2013. november 19. - 18:25:10 »
0 Show voters
És esetleg?:
 
forward InvisibleCMD;

 

CMD:kick(playerid, params[])
{
InvisibleCMD(playerid,0);
SendClientMessage(....//Szöveg
}

 

public InvisibleCMD(playerid,co)
{
if(co == 1) return 1;
else if(co == 0) continue;
return 1;
}

Láthatónak, láthatatlan parancs.
« Válasz #8 Dátum: 2013. november 19. - 19:45:36 »
0 Show voters
Van olyan a módodban hogy
 
public OnPlayerCommandPerformed(playerid, cmdtext[], success)

 
?
Ha van másold be az egészet.

Láthatónak, láthatatlan parancs.
« Válasz #9 Dátum: 2013. november 19. - 20:59:12 »
0 Show voters
Olyasmire gondoltam amit Booy leírt, köszi azért :). Megnézem ez megy-e.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Láthatónak, láthatatlan parancs.
« Válasz #10 Dátum: 2013. november 19. - 21:13:53 »
0 Show voters
Szerintem az enyém most belegondolva tuti nem lesz jó, a parancs láthatóságos kódot ahogy írta zsoleszka is lekéne nekünk írnod, vagy a legegyszerûbb hogy megcsinálod változókkal magadtól:
 
new InvisibleCMD[MAX_PLAYERS];

 

CMD:kick(playerid,params[])
{
InvisibleCMD[playerid] = 1; //Ha 1-es akkor nem fogják látni.
//Ez után a cuccok..
}

 
És az OnPlayerCommandPerformed eljárás alatt:
 
if(InvisibleCMD[playerid] == 0)
{
//Ide pedig a parancs láthatós részt.
}
« Utoljára szerkesztve: 2013. november 19. - 21:25:49 írta BoOy »

Láthatónak, láthatatlan parancs.
« Válasz #11 Dátum: 2013. november 20. - 07:55:14 »
0 Show voters
Hát itt lenne a parancs:
 
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
   new parancs[128];
   for(new i = 0; i < MAX_PLAYERS; i++)
   if( (PlayerInfo[AdminSzint] > PlayerInfo[playerid][AdminSzint]) && (PlayerInfo[AdminSzint] > 1) && (i != playerid) )
   {
       format(parancs, sizeof(parancs), \"* %s(%d): {1C9B72}%s\", GetName(playerid), playerid, cmdtext);
       {
           if(IsPlayerConnected(i))
           {
              SendClientMessage(i, 0xCE2267FF, parancs); // A szín: Olyan vöröses-rózsaszín (minek definiáljam)?
           }
       }
   }
   if(!success)
   {
      new nemletezik[128];
      format(nemletezik, sizeof(nemletezik), \"* Hiba: %s parancs nem létezik. Segítségért: /help /ahelp\", cmdtext);
      SendClientMessage(playerid, COLOR_HIBA ,  nemletezik);
   }
   return 1;
}

Láthatónak, láthatatlan parancs.
« Válasz #12 Dátum: 2013. november 20. - 12:27:20 »
0 Show voters
Hát talán mûködhet a dolog, nincs idõm tesztelni.
Létrehozol egy változót legyen mondjuk ez:
 
new
bool:InvisibleCMD;

 
Az OnPlayerCommandPerformed -et átírod valahogy így:
 
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!InvisibleCMD)
{
new
   parancs[128];
format(parancs, sizeof(parancs), \"* %s(%d): {1C9B72}%s\", GetName(playerid), playerid, cmdtext); // for cikluson kivül kell formázni a szöveget hiszen minden online adminnak ugyanezt kell megjeleníteni (felesleges újra újra alkalmazni for ciklusban)
for(new i = 0; i < MAX_PLAYERS; i++)
{
   if((IsPlayerConnected(i)) && (PlayerInfo[AdminSzint] > PlayerInfo[playerid][AdminSzint]) && (PlayerInfo[AdminSzint] > 1) && (i != playerid) )
   {
      SendClientMessage(i, 0xCE2267FF, parancs); // ha egy helyen használod ezt a színt akkor meg felesleges is :D
   }
}
} else {
InvisibleCMD = false;
}
if(!success)
{
new nemletezik[128];
format(nemletezik, sizeof(nemletezik), \"* Hiba: %s parancs nem létezik. Segítségért: /help /ahelp\", cmdtext);
SendClientMessage(playerid, COLOR_HIBA ,  nemletezik);
}
return 1;
}

 
A parancsba meg amelyiket nem szeretnéd hogy mutassa beilleszted ezt a sort:
 
InvisibleCMD = true;

 
Tehát a parancs használatakor a változónak az értéke true lesz így az OnPlayerCommandPerformed résznél szereplõ if(!InvisibleCMD) else ága kerül meghívásra mely vissza állítja ezen változó értékét úgy hogy a többi következõleg beírt parancsot mutassa.
Tehát amíg a véltozó értéke false  addig mutatja a használt parancsokat ha true akkor egyszer kihagyja ezt a részt és újra aktíválja ezen funkciót így csak minden nem megjeleníteni kívánt parancsba ezt kell beírni:
 
InvisibleCMD = true;

 
Ez az elmélet. :D

Láthatónak, láthatatlan parancs.
« Válasz #13 Dátum: 2013. november 20. - 17:36:17 »
0 Show voters
Mûködik Zsolesszka, köszönöm.
A témát zárom! Probléma megoldva.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal