/goto auch wenn Spieler in einem Interior ist...

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,
    immer wenn ich mich zu einem Spieler porte, der im LSPD ist , fliege ich über die Map.
    Wenn ich einen aus dem Interior porte, muss ich entweder immer sein vworld ändern oder ich muss ihn spawnen.
    Kann mir jemand helfen?
    Befehle:

    if(strcmp(cmd, "/goto", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /goto [playerid/PartOfName]"); return 1; } new Float:plocx,Float:plocy,Float:plocz; new plo; plo = ReturnUser(tmp); if(IsPlayerConnected(plo)) { if(plo != INVALID_PLAYER_ID) { if(PlayerInfo[playerid][pAdmin] >= 1) { if(Spectate[playerid] != 255) { Spectate[playerid] = 256; } GetPlayerPos(plo, plocx, plocy, plocz); if (GetPlayerState(playerid) == 2) { new tmpcar = GetPlayerVehicleID(playerid); SetVehiclePos(tmpcar, plocx, plocy+4, plocz); TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0; } else { SetPlayerPos(playerid,plocx,plocy+2, plocz); SetPlayerInterior(playerid,GetPlayerInterior(plo)); // Unter SetPlayerPos Setzen (falls du nicht pID hast durch was andares ersetzen! (nicht playerid!) SetPlayerInterior(playerid,GetPlayerInterior(playerid)); } PlayerInfo[playerid][pLocal] = PlayerInfo[plo][pLocal]; PlayerInfo[playerid][pInt] = PlayerInfo[plo][pInt]; SetPlayerInterior(playerid,PlayerInfo[plo][pInt]); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(plo)); SendClientMessage(playerid, COLOR_GRAD1, "Du hast dich Teleportiert."); GetPlayerName(plo, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); if(PlayerInfo[playerid][pAdmin] >= 2000) { } else { format(string, sizeof(string), "%s hat sich zu %s geportet.", sendername, giveplayer); ABroadCast(0x00F5FFFF,string,4); } } else { SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht befugt!"); } } }



    if(strcmp(cmd, "/gethere", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /gethere [Spieler ID]"); return 1; } new Float:plocx,Float:plocy,Float:plocz; new plo; plo = ReturnUser(tmp); if (IsPlayerConnected(plo)) { if(plo != INVALID_PLAYER_ID) { if (PlayerInfo[playerid][pAdmin] >= 1) { GetPlayerPos(playerid, plocx, plocy, plocz); if (GetPlayerState(plo) == 2) { TelePos[plo][0] = 0.0; TelePos[plo][1] = 0.0; new tmpcar = GetPlayerVehicleID(plo); SetVehiclePos(tmpcar, plocx, plocy+4, plocz); } else { SetPlayerPos(plo,plocx,plocy+2, plocz); SetPlayerInterior(playerid,GetPlayerInterior(playerid)); } PlayerInfo[plo][pLocal] = PlayerInfo[playerid][pLocal]; PlayerInfo[plo][pInt] = PlayerInfo[playerid][pInt]; SetPlayerInterior(plo,PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(plo,GetPlayerVirtualWorld(playerid)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s hat %s zu sich geportet.", sendername,giveplayer); ABroadCast(0x00F5FFFF,string,4); } else { SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht befugt!"); } } } else { format(string, sizeof(string), "%d ist kein Aktiver Spieler.", plo); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }

  • versuch mal das hier
    das ist alles via interrior und co.


    ocmd:goto(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin]>=1)
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,cRed,"/goto [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
    }
    else
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pID, x, y, z);
    SetPlayerPos(playerid, x+2, y+2, z+2);
    new pint = GetPlayerInterior(pID);
    SetPlayerInterior(playerid, pint);
    if(IsPlayerInAnyVehicle(playerid))
    {
    new plveh = GetPlayerVehicleID(playerid);
    SetVehiclePos(plveh, x+2, y+2, z+2);
    PutPlayerInVehicle(playerid, plveh, 0);
    }
    new name[MAX_PLAYER_NAME], string[128];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
    SendClientMessage(playerid, cGreen, string);
    }
    }
    else
    {
    SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
    }
    return 1;
    }


    ocmd:gethere(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin]>=1)
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,cRed,"Benutzung: /gethere [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
    }
    else
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(pID, x+2, y+2, z+2);
    new admint = GetPlayerInterior(playerid);
    SetPlayerInterior(pID, admint);
    new aname[MAX_PLAYER_NAME], string2[128];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string2, sizeof(string2), "[AdmCmd] Du wurdest von %s zu sich teleportiert.", aname);
    SendClientMessage(pID, cRed, string2);
    new name[MAX_PLAYER_NAME], string[128];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast %s zu dir teleportiert.", name );
    SendClientMessage(playerid, cGreen, string);
    }
    }
    else
    {
    SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
    }
    return 1;
    }

  • bei meinen befehl frag er erst nach in welchen interior der user ist, dann setzt er den darein mach es so wie ich es hab dann kannst du alle interriors nurtzen nicht wie es andere machen nur für 1 interrior...


  • Hi versuch es mal mit SetPlayerInterior(playerid,6);


    Wen es ned geht sag mal ob du errors hast

    Auch bei /gethere?
    PS: Kommen keine Errrors :D

  • Hi versuch es mal mit SetPlayerInterior(playerid,6);


    Wen es ned geht sag mal ob du errors hast


    der hat keine errors...



    wenn man sich halt Portet kommt man ins Interior dann muss man immer setint machen oder halt spawnen.
    Ich habe letztens so ein Befehl gebastel das wenn man sich Portet das int sich auch ändert, hat aber bei mir nicht FUnktioniert.

  • Auf anderen Servern, wie z.B Nova müssen die auch nichts machen, klappt irgendwie

  • mensch leute die Lösung ist das hier -.-
    nimmt das und probiert es es klappt 1A
    egal welche interrior ID der spieler ist er geht dahin und auch /gethere ist genau so aufgebaut

  • ja umschreiben musst du es ja auch selber..


    statt ocmd deine if abfragen


    //edit
    aber hier zum schlau werden


    if(strcmp(cmd, "/goto", true) == 0)
    {
    if(SpielerInfo[playerid][pAdmin]>=1)
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,cRed,"/goto [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
    }
    else
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pID, x, y, z);
    SetPlayerPos(playerid, x+2, y+2, z+2);
    new pint = GetPlayerInterior(pID);
    SetPlayerInterior(playerid, pint);
    if(IsPlayerInAnyVehicle(playerid))
    {
    new plveh = GetPlayerVehicleID(playerid);
    SetVehiclePos(plveh, x+2, y+2, z+2);
    PutPlayerInVehicle(playerid, plveh, 0);
    }
    new name[MAX_PLAYER_NAME], string[128];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
    SendClientMessage(playerid, cGreen, string);
    }
    }
    else
    {
    SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
    }
    return 1;
    }


    if(strcmp(cmd, "/gethere", true) == 0)
    {
    if(SpielerInfo[playerid][pAdmin]>=1)
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,cRed,"Benutzung: /gethere [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,cRed,"Kein Spieler mit angegebener ID Online");
    }
    else
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(pID, x+2, y+2, z+2);
    new admint = GetPlayerInterior(playerid);
    SetPlayerInterior(pID, admint);
    new aname[MAX_PLAYER_NAME], string2[128];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string2, sizeof(string2), "[AdmCmd] Du wurdest von %s zu sich teleportiert.", aname);
    SendClientMessage(pID, cRed, string2);
    new name[MAX_PLAYER_NAME], string[128];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast %s zu dir teleportiert.", name );
    SendClientMessage(playerid, cGreen, string);
    }
    }
    else
    {
    SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen