Parancs névhez kötve?

Indította Flips, 2016. szeptember 10. - 17:28:35

Előző téma - Következő téma

Flips

Ha van egy kapu(ugye mozgó object) meg lehet-e oldani hogy azt a parancsot ami nyitja(ez esetben /gate) csak 1 bizonyos személy tudja használni? Vagy akár automatikusan mozogjon de csak akkor ha az az egy bizonyos ember megy a közelébe. Ez megoldható vagy hogy szokták megoldani?

gabc

Szia!
Így:
 

CMD:kapu(playerid,params[])
{
new name[24];
GetPlayerName(playerid,name,sizeof(name));
if(strcmp(\"Kis_Alfonz\",name) != 0) return SendClientMessage(playerid,-1,\"Nem vagy Kis_Alfonz\");
//Ide jöhet a kód
return 1;
}

Flips

Idézetet írta: Rolux date=1473523383\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63010\" data-ipsquote-contentclass=\"forums_TopicSzia!
Így:
 

CMD:kapu(playerid,params[])
{
new name[24];
GetPlayerName(playerid,name,sizeof(name));
if(strcmp(\"Kis_Alfonz\",name) != 0) return SendClientMessage(playerid,-1,\"Nem vagy Kis_Alfonz\");
//Ide jöhet a kód
return 1;
}

 

Nem tudom én rotottam-e el, viszont ha nem a megadott névvel megyek fel nem lehet kinyitni a kaput így nem látom mennyi van ott, de ha azzal a névvel vagyok fent amit megadtam akkor működik a parancs viszont mögötte van még1 kapu. Szóval dupplázódik az object. Az miért lehet?

Memphis

Az egész kódot küld el és tudunk segíteni.

blackdog476

Szerintem mappolásnál benthagytad a zárt kapu objektet alapból, és a scriptben létrehoztál még egyet ami már változóba van, ezért van kettő.

Flips

#5
Idézetet írta: Memphis date=1473533463\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63010\" data-ipsquote-contentclass=\"forums_TopicAz egész kódot küld el és tudunk segíteni.
 
Mod elején:
 
new gate1, bool: gate1open;

 
Parancs:
 
COMMAND:gate(playerid, params[])
{
new name[24];
GetPlayerName(playerid,name,sizeof(name));
if(strcmp(\"asdasd\", name) != 0) return SendClientMessage(playerid, -1, \"{ff0000}Nincs jogod kinyitni ezt a kaput\");
if(IsPlayerInRangeOfPoint(playerid, 10, -2652.5, 1383.6, 8.4))
{
switch(gate1open)
{
   case true:
   {
      MoveObject(gate1, -2652.5, 1383.6, 8.4, 2.00);
      gate1open = false;
   }
   case false:
   {
      MoveObject(gate1, -2652.5, 1383.6, -3, 2.00);
      gate1open = true;
   }
}
return 1;
}
SendClientMessage(playerid,-1, \"{ff0000}Nem vagy kapu közelében\");
return 1;
}

 
OnPlayerConnect alatt:
 
gate1 = CreateObject(3050, -2652.5, 1383.6, 8.4, 0, 0, 270);

Memphis

#6
Így ?
 

COMMAND:gate(playerid, params[])
{
        new name[24];
        GetPlayerName(playerid,name,sizeof(name));
        if(!strcmp(name, \"asdasd\", false))  return SendClientMessage(playerid, 0xFF0000FF, \"Nincs jogod kinyitni ezt a kaput\");
        if(IsPlayerInRangeOfPoint(playerid, 10, -2652.5, 1383.6, 8.4)) {
                switch(gate1open) {
                        case true: {
                                MoveObject(gate1, -2652.5, 1383.6, 8.4, 2.00);
                                gate1open = false;
                        } case false: {
                                MoveObject(gate1, -2652.5, 1383.6, -3, 2.00);
                                gate1open = true;
                        }
                }
        } else SendClientMessage(playerid, 0xFF0000FF, \"Nem vagy kapu közelében\");
        return 1;
}

 
Editeltem: Alul kimaradt egy else, figyelmetlen voltam bocsi :D De már jó. (Nincs tesztelve).

Flips

Idézetet írta: Memphis date=1473582051\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"63010\" data-ipsquote-contentclass=\"forums_TopicÍgy ?
 

COMMAND:gate(playerid, params[])
{
        new name[24];
        GetPlayerName(playerid,name,sizeof(name));
        if(!strcmp(name, \"asdasd\", false))  return SendClientMessage(playerid, 0xFF0000FF, \"Nincs jogod kinyitni ezt a kaput\");
        if(IsPlayerInRangeOfPoint(playerid, 10, -2652.5, 1383.6, 8.4)) {
                switch(gate1open) {
                        case true: {
                                MoveObject(gate1, -2652.5, 1383.6, 8.4, 2.00);
                                gate1open = false;
                        } case false: {
                                MoveObject(gate1, -2652.5, 1383.6, -3, 2.00);
                                gate1open = true;
                        }
                }
        } else SendClientMessage(playerid, 0xFF0000FF, \"Nem vagy kapu közelében\");
        return 1;
}

 
Editeltem: Alul kimaradt egy else, figyelmetlen voltam bocsi :D De már jó. (Nincs tesztelve).
 

COMMAND:gate(playerid, params[])
{
        new name[24];
        GetPlayerName(playerid,name,sizeof(name));
        if(strcmp(name, \"asdasd\", false)) return SendClientMessage(playerid, 0xFF0000FF, \"Nincs jogod kinyitni ezt a kaput\");
        if(IsPlayerInRangeOfPoint(playerid, 10, -2652.5, 1383.6, 8.4)) {
                switch(gate1open) {
                        case true: {
                                MoveObject(gate1, -2652.5, 1383.6, 8.4, 2.00);
                                gate1open = false;
                        } case false: {
                                MoveObject(gate1, -2652.5, 1383.6, -3, 2.00);
                                gate1open = true;
                        }
                }
        } else SendClientMessage(playerid, 0xFF0000FF, \"Nem vagy kapu közelében\");
        return 1;
}

 

        if(strcmp(name, \"asdasd\", false)) return SendClientMessage(playerid, 0xFF0000FF, \"Nincs jogod kinyitni ezt a kaput\");

 
Így működik felkiáltójel nélkül
És köszi a segítséget