-
hello all szeretnék kérni egy /goto parancsot amit a playerek is hazsnálhatnak és le lehet tiltani ha pedig valaki elteleportál kiirja h xy Oda teleportált yx-hez
elõre is köszi
By .]$[.ZeRoX.]$[.
-
Szia!Gyorsan összedobtam neked!! Elvileg mûködik, nem teszteltem! A változókkal lehet gond lessz! Akkor szólj!
A parancs zcmdben van!
CMD:goto(playerid, params[])
{
new giveplayerid;
new Float:x, Float:y, Float:z;
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, 0xFF0000AA, \"Használat: /goto [playerid]\");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000AA, \"Hiba: Nincs ilyen játékos!\");
GetPlayerPos(giveplayerid, x, y, z);
SetPlayerPos(playerid, x, y, z);
SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
new name[MAX_PLAYER_NAME], string[200];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof string, \"%s elteleportált hozzá: %s\", name, giveplayerid);
SendClientMessageToAll(0xFF0000AA,string);
return 1;
}
SetPlayerInteriort lehagytam bõvítettem!
Elvileg kész! ha mégsem jó írj!
-
Szerintem a SetPlayerPos(playerid, x, y, z); azt így:
SetPlayerPos(playerid, x+3, y, z);
-
Szerintem a SetPlayerPos(playerid, x, y, z); azt így:
SetPlayerPos(playerid, x+3, y, z);
Szerintem fölösleges az x tengelyhez hozzáadni 3at, mivel a játékosok elvileg mozognak, ezért nem rakja egymásra õket, de ha igen akkor is szétkapja õket!
De majd a kérdezõ eldönti hogy szeretné ;)
-
Oké.
De most nézem, hogy egy sort kihagyál a goto-ból!
GetPlayerName(playerid, giveplayerid, sizeof(giveplayerid));
-
Oké.
De most nézem, hogy egy sort kihagyál a goto-ból!
GetPlayerName(playerid, giveplayerid, sizeof(giveplayerid));
Azt nem kihagytam! Csak gondolkoztam rajta, hogy így is kiírja e a nevét, vagy nem, de akkor ezek szerint nem írja ki.
Délután tesztelem a scriptet! ;)
-
nem ZCMD-be hanem if(strcmp-be kell
-
CMD:goto(playerid,params[])
{
new celid, string[128], Float:hely[3], nev[MAX_PLAYER_NAME][2];
if(sscanf(params, \"u\", celid)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"HASZNÁLAT: /goto (játékosid/név)\");
else if(!IsPlayerConnected(celid) && celid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Nincs ilyen játékos a szerveren, vagy az adott játékos te vagy!\");
GetPlayerPos(celid, hely[0], hely[1], hely[2]); SetPlayerInterior(playerid, GetPlayerInterior(celid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid));
if(GetPVarInt(celid, \"goto\") == 1)
{
if(GetPlayerState(playerid) == 2)
{
SetVehiclePos(GetPlayerVehicleID(playerid),hely[0]+2, hely[1], hely[2]); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(celid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(celid)); GetPlayerName(playerid, nev[0], sizeof(nev)); GetPlayerName(celid, nev[1], sizeof(nev));
format(string,sizeof(string),\"%s elteleportált hozzád!\", nev[0]); SendClientMessage(celid, COLOR_LIGHTBLUE, string);
format(string,sizeof(string),\"Elteleportáltál %s-hez(hoz)!\", nev[1]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
return 1;
}else{
SetPlayerPos(playerid, hely[0], hely[1], hely[2]); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); SetPlayerInterior(playerid, GetPlayerInterior(celid));
}
}else{
format(string,sizeof(string),\"%s letiltotta a gotozást!\", nev[1]);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
CMD:setgoto(playerid, params[])
{
if(GetPVarInt(playerid, \"goto\") == 0) {
SetPVarInt(playerid, \"goto\", 1);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Engedélyezted a gotozást magadhoz!\");
}else{
SetPVarInt(playerid, \"goto\", 0);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Letiltottad a gotozást magadhoz!\");
}
return 1;
}
Itt csak annyi a dolgod, hogy a CMD:goto(playerid, params[])-ot átírod strcmp-re, ahogy akarod!
-
ez jo csak pls ifscrmpt-be
-
if(strcmp(cmdtext, \"/goto\", true) == 0)
{
new celid, string[128], Float:hely[3], nev[MAX_PLAYER_NAME][2];
if(!strlen(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"HASZNÁLAT: /goto (játékosid/név)\");
else if(!IsPlayerConnected(celid) && celid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Nincs ilyen játékos a szerveren, vagy az adott játékos te vagy!\");
GetPlayerPos(celid, hely[0], hely[1], hely[2]); SetPlayerInterior(playerid, GetPlayerInterior(celid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid));
if(GetPVarInt(celid, \"goto\") == 1)
{
if(GetPlayerState(playerid) == 2)
{
SetVehiclePos(GetPlayerVehicleID(playerid),hely[0]+2, hely[1], hely[2]); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(celid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(celid)); GetPlayerName(playerid, nev[0], sizeof(nev)); GetPlayerName(celid, nev[1], sizeof(nev));
format(string,sizeof(string),\"%s elteleportált hozzád!\", nev[0]); SendClientMessage(celid, COLOR_LIGHTBLUE, string);
format(string,sizeof(string),\"Elteleportáltál %s-hez(hoz)!\", nev[1]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
return 1;
}else{
SetPlayerPos(playerid, hely[0], hely[1], hely[2]); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); SetPlayerInterior(playerid, GetPlayerInterior(celid));
}
}else{
format(string,sizeof(string),\"%s letiltotta a gotozást!\", nev[1]);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
if(strcmp(cmdtext, \"/setgoto\", true) == 0)
{
if(GetPVarInt(playerid, \"goto\") == 0) {
SetPVarInt(playerid, \"goto\", 1);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Engedélyezted a gotozást magadhoz!\");
}else{
SetPVarInt(playerid, \"goto\", 0);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Letiltottad a gotozást magadhoz!\");
}
return 1;
}
-
Csak annyi lett volna a dolgot, hogy átírod a CMD:goto(playerid, params[]) -t if(strcmp(cmdtext, \"/goto\", true) == 0) -ra :D
-
if(strcmp(cmdtext, \"/goto\", true) == 0)
{
new celid, string[128], Float:hely[3], nev[MAX_PLAYER_NAME][2];
if(!strlen(params)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"HASZNÁLAT: /goto (játékosid/név)\");
else if(!IsPlayerConnected(celid) && celid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Nincs ilyen játékos a szerveren, vagy az adott játékos te vagy!\");
GetPlayerPos(celid, hely[0], hely[1], hely[2]); SetPlayerInterior(playerid, GetPlayerInterior(celid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid));
if(GetPVarInt(celid, \"goto\") == 1)
{
if(GetPlayerState(playerid) == 2)
{
SetVehiclePos(GetPlayerVehicleID(playerid),hely[0]+2, hely[1], hely[2]); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(celid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(celid)); GetPlayerName(playerid, nev[0], sizeof(nev)); GetPlayerName(celid, nev[1], sizeof(nev));
format(string,sizeof(string),\"%s elteleportált hozzád!\", nev[0]); SendClientMessage(celid, COLOR_LIGHTBLUE, string);
format(string,sizeof(string),\"Elteleportáltál %s-hez(hoz)!\", nev[1]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
return 1;
}else{
SetPlayerPos(playerid, hely[0], hely[1], hely[2]); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); SetPlayerInterior(playerid, GetPlayerInterior(celid));
}
}else{
format(string,sizeof(string),\"%s letiltotta a gotozást!\", nev[1]);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
if(strcmp(cmdtext, \"/setgoto\", true) == 0)
{
if(GetPVarInt(playerid, \"goto\") == 0) {
SetPVarInt(playerid, \"goto\", 1);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Engedélyezted a gotozást magadhoz!\");
}else{
SetPVarInt(playerid, \"goto\", 0);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Letiltottad a gotozást magadhoz!\");
}
return 1;
}
Csak annyi lett volna a dolgot, hogy átírod a CMD:goto(playerid, params[]) -t if(strcmp(cmdtext, \"/goto\", true) == 0) -ra :D
[/quote]
Ha nem értettek hozzá, akkor minek írtok hülyeséget?
U.I.: Mindjárt leírom!
GetCommandParams(cmdtext);
if(!strcmp(cmdtext, \"/goto\", true))
{
new celid, string[128], Float:hely[3], nev[MAX_PLAYER_NAME][2];
if(isnull(par)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, \"HASZNÁLAT: /goto (játékosid/név)\");
else if(!IsPlayerConnected(celid) && celid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"HIBA: Nincs ilyen játékos a szerveren, vagy az adott játékos te vagy!\");
GetPlayerPos(celid, hely[0], hely[1], hely[2]); SetPlayerInterior(playerid, GetPlayerInterior(celid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid));
if(GetPVarInt(celid, \"goto\") == 1)
{
if(GetPlayerState(playerid) == 2)
{
SetVehiclePos(GetPlayerVehicleID(playerid),hely[0]+2, hely[1], hely[2]); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(celid));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(celid)); GetPlayerName(playerid, nev[0], sizeof(nev)); GetPlayerName(celid, nev[1], sizeof(nev));
format(string,sizeof(string),\"%s elteleportált hozzád!\", nev[0]); SendClientMessage(celid, COLOR_LIGHTBLUE, string);
format(string,sizeof(string),\"Elteleportáltál %s-hez(hoz)!\", nev[1]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
return 1;
}else{
SetPlayerPos(playerid, hely[0], hely[1], hely[2]); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(celid)); SetPlayerInterior(playerid, GetPlayerInterior(celid));
}
}else{
format(string,sizeof(string),\"%s letiltotta a gotozást!\", nev[1]);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
if(!strcmp(cmdtext, \"/setgoto\", true))
{
if(GetPVarInt(playerid, \"goto\") == 0)
{
SetPVarInt(playerid, \"goto\", 1);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Engedélyezted a gotozást magadhoz!\");
}else{
SetPVarInt(playerid, \"goto\", 0);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Letiltottad a gotozást magadhoz!\");
}
return 1;
}
A parancs mûködéséhez az alábbi include is szükséges!
http://sampforum.hu/index.php?topic=20289.msg217336;topicseen#msg217336
-
ok köszi és zcmd-s is lehet mert átirtam azota a modom ZCDM-re mert azt mondta haver az jobb :D
-
De nekem úgy, ahogy leírtam tökéletesen mûködik
-
Már egyszer leírtam zcmdben ;)
Szia!Gyorsan összedobtam neked!! Elvileg mûködik, nem teszteltem! A változókkal lehet gond lessz! Akkor szólj!
A parancs zcmdben van!
CMD:goto(playerid, params[])
{
new giveplayerid;
new Float:x, Float:y, Float:z;
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, 0xFF0000AA, \"Használat: /goto [playerid]\");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000AA, \"Hiba: Nincs ilyen játékos!\");
GetPlayerPos(giveplayerid, x, y, z);
SetPlayerPos(playerid, x, y, z);
SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
new name[MAX_PLAYER_NAME], string[200];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof string, \"%s elteleportált hozzá: %s\", name, giveplayerid);
SendClientMessageToAll(0xFF0000AA,string);
return 1;
}
SetPlayerInteriort lehagytam bõvítettem!
Elvileg kész! ha mégsem jó írj!
-
köszi canon témát zárom