getpos ?

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
  • heyho leute und zwar brauch ich hilfe bei dem find befehl kan man den so umschreiben das man die position jmd anderes zeigt ? bsp


    /getpost X Y


    dan zeigt person X den standort von postion Y hier mal ein find befehl ^^
    if(strcmp(cmd, "/find", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pJob] != 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Detektiv!");
    return 1;
    }
    if(PlayerOnMission[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Während einer Mission kann dieser Befehl nicht verwendet werden!");
    return 1;
    }


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /find [spielerid/teildesnamens]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst suchen!"); return 1; }
    new points;
    new level = PlayerInfo[playerid][pDetSkill];
    if(level >= 0 && level <= 50)
    { points = 4; }
    else if(level >= 51 && level <= 100)
    { points = 6; }
    else if(level >= 101 && level <= 200)
    { points = 8; }
    else if(level >= 201 && level <= 400)
    { points = 10; }
    else if(level >= 401)
    { points = 12; }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(giveplayerid, X,Y,Z);
    SetPlayerCheckpoint(playerid, X,Y,Z, 6);
    FindTime[playerid] = 1;
    FindTimePoints[playerid] = points;
    PlayerInfo[playerid][pDetSkill] ++;
    UsedFind[playerid] = 1;
    if(PlayerInfo[playerid][pDetSkill] == 50)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 2."); }
    else if(PlayerInfo[playerid][pDetSkill] == 100)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 3."); }
    else if(PlayerInfo[playerid][pDetSkill] == 200)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 4."); }
    else if(PlayerInfo[playerid][pDetSkill] == 400)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 5."); }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Falsche/r Name /ID!");
    }
    }
    return 1;
    }

  • achso :P probier mal was mit giveplayerid,
    new giveplayerid = strval(tmp);


    und
    GetPlayerPos(giveplayerid,x,y,z);
    dann zeigste die koordinaten des giveplayerid´s denen von playerid´s wenn dus verstehst


    edit: kann man auch mit person1 und person2 machn egal musst du aussuchen

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • so dan ?
    if(strcmp(cmd, "/find", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pJob] != 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Detektiv!");
    return 1;
    }
    if(PlayerOnMission[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Während einer Mission kann dieser Befehl nicht verwendet werden!");
    return 1;
    }


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /find [spielerid/teildesnamens]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst suchen!"); return 1; }
    new points;
    new level = PlayerInfo[playerid][pDetSkill];
    if(level >= 0 && level <= 50)
    { points = 4; }
    else if(level >= 51 && level <= 100)
    { points = 6; }
    else if(level >= 101 && level <= 200)
    { points = 8; }
    else if(level >= 201 && level <= 400)
    { points = 10; }
    else if(level >= 401)
    { points = 12; }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(giveplayerid, X,Y,Z);
    SetPlayerCheckpoint(playerid, X,Y,Z, 6);
    FindTime[playerid] = 1;
    FindTimePoints[playerid] = points;
    PlayerInfo[playerid][pDetSkill] ++;
    UsedFind[playerid] = 1;
    if(PlayerInfo[playerid][pDetSkill] == 50)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 2."); }
    else if(PlayerInfo[playerid][pDetSkill] == 100)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 3."); }
    else if(PlayerInfo[playerid][pDetSkill] == 200)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 4."); }
    else if(PlayerInfo[playerid][pDetSkill] == 400)
    { SendClientMessage(playerid, COLOR_YELLOW, "* Dein Detective Skill ist nun Level 5."); }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Falsche/r Name /ID!");
    }
    }
    return 1;
    }


    das new oben richtig ?

  • Not gf..


  • Es geht noch viel leichter :)


    if(strcmp(cmdtext, "/playerpos", true) == 0)
    {
    if (PlayerInfo[playerid][pAdmin] >= 3)
    {
    //Save the players location so we can spawn him there again on connect.
    //Save the players location so we can spawn him there again on connect.
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);


    //printf("The player left when he was at %f,%f,%f.", x, y, z);
    new vehpostext[96];
    format(vehpostext, sizeof(vehpostext), "Deine Position: %f, %f, %f", x, y, z);


    SendClientMessage(playerid, 0xFFFFFFFF, vehpostext);
    // Output: The player left when he was at 1234.34234,2345.366,15.3647.
    // You could write this to a userfile.
    /*new string3[32];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), "%s_Positionen.ini", playername3);*/
    new File: hFile = fopen("Positionen.ini", io_write);
    if (hFile)
    {
    new var[256];
    format(var, 256, "Pos=%s\n", vehpostext);fwrite(hFile, var);
    fclose(hFile);
    }


    }
    return 1;
    }


    Nur bisschen was dran ändern, und volla! Fertisch.


    // Edit by Liam:
    Wird mitgeloggt!
    Also immer wieder aufrufbar.

  • also bei den letzen zwei möglichkeiten wird kein chekpoint angezeigt :S und bei den anderen möglichkeite steht das dran
    C:\Dokumente und Einstellungen\Fire_BnX\Desktop\samp03bsvr_R2_win32\gamemodes\pate.pwn(25736) : error 017: undefined symbol "strget"
    C:\Dokumente und Einstellungen\Fire_BnX\Desktop\samp03bsvr_R2_win32\gamemodes\pate.pwn(25738) : error 017: undefined symbol "strget"


    if(!strlen(strget(cmdtext,2))) return SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /find [spielerid/teildesnamens]");
    [pwn giveplayerid = strval(strget(cmdtext,1));][/pwn]


    //edit bei euren möglichkeiten ist so wie der find befehl nur anders geschrieben pls liest was ich geschrieben hab :>

    Einmal editiert, zuletzt von DopeFire ()