GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: .]$[.ZeRoX.]$[. - 2012. február 08. - 17:56:45

Cím: /goto id
Írta: .]$[.ZeRoX.]$[. - 2012. február 08. - 17:56:45
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.]$[.
Cím: /goto id
Írta: CANNONN - 2012. február 08. - 20:26:07
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!
Cím: /goto id
Írta: Flash - 2012. február 08. - 21:57:39
Szerintem a SetPlayerPos(playerid, x, y, z); azt így:
SetPlayerPos(playerid, x+3, y, z);
Cím: /goto id
Írta: CANNONN - 2012. február 08. - 22:08:43
Idézetet írta: Flash date=1328734659\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"16763\" data-ipsquote-contentclass=\"forums_Topic
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é  ;)
Cím: /goto id
Írta: Flash - 2012. február 09. - 06:42:57
Oké.
De most nézem, hogy egy sort kihagyál a goto-ból!
 
GetPlayerName(playerid, giveplayerid, sizeof(giveplayerid));
Cím: /goto id
Írta: CANNONN - 2012. február 09. - 07:27:41
Idézetet írta: Flash date=1328766177\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"16763\" data-ipsquote-contentclass=\"forums_Topic
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! ;)
Cím: /goto id
Írta: .]$[.ZeRoX.]$[. - 2012. február 09. - 07:32:47
nem ZCMD-be hanem if(strcmp-be kell
Cím: /goto id
Írta: Gabor.. - 2012. február 09. - 14:10:33
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!
Cím: /goto id
Írta: .]$[.ZeRoX.]$[. - 2012. február 09. - 14:34:43
ez jo csak pls ifscrmpt-be
Cím: /goto id
Írta: Flash - 2012. február 09. - 15:31:03
    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;
}
Cím: /goto id
Írta: Gabor.. - 2012. február 09. - 16:55:02
Csak annyi lett volna a dolgot, hogy átírod a CMD:goto(playerid, params[]) -t if(strcmp(cmdtext, \"/goto\", true) == 0) -ra :D
Cím: /goto id
Írta: DrAkE - 2012. február 09. - 17:08:21
Idézetet írta: Flash date=1328797863\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"16763\" data-ipsquote-contentclass=\"forums_Topic

    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
Cím: /goto id
Írta: .]$[.ZeRoX.]$[. - 2012. február 09. - 17:18:26
ok köszi és zcmd-s is lehet mert átirtam azota a modom ZCDM-re mert azt mondta haver az jobb :D
Cím: /goto id
Írta: Gabor.. - 2012. február 09. - 19:46:11
De nekem úgy, ahogy leírtam tökéletesen mûködik
Cím: /goto id
Írta: CANNONN - 2012. február 10. - 17:11:21
Már egyszer leírtam zcmdben ;)
 
Idézetet írta: Cannonn date=1328729167\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"16763\" data-ipsquote-contentclass=\"forums_Topic
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!
 
Cím: /goto id
Írta: .]$[.ZeRoX.]$[. - 2012. február 10. - 17:37:49
köszi canon témát zárom