-
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?
-
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;
}
-
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;
}
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?
-
Az egész kódot küld el és tudunk segíteni.
-
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ő.
-
Az 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);
-
Í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).
-
Í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