Befehle wie /kidnap und /eject

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
  • PlayerToPoint (playerid,pID) > 7.0
    mit PlayerToPoint kannst du nicht die Entfernung der verschiendenen Player einsehen, sonsdern nur ob ein speiler in der näche eines Punktes ist. Um die Entfernung zu bekommen musste meines wissens was selber scripten.

  • bei mir sieht das ganze nun so aus
    #include <a_samp>


    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    public OnPlayercommandText(playerid,cmdtext[])
    {
    dcmd(eject,5,cmdtext);
    dcmd(kidnap,6,cmdtext);
    return 0;
    }


    dcmd_eject(playerid,params[])
    {
    new pID,string[128],pName[MAX_PLAYER_NAME],pIdName[MAX_PLAYER_NAME];
    if(!IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid,AFAFAFAA,"Du bist in keinem Fahrzeug !"); }
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendClientMessage(playerid,0xAFAFAFAA,"Du bist nicht der Fahrer !"); }
    if(sscanf(params,"u",pID)) { return SendClientMessage(playerid,0xAFAFAFAA,"SYNTAX: /eject [playerid]"); }
    if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,AFAFAFAA,"Ungültige ID!"); }
    if(!IsPlayerInVehicle(pID,GetPlayerVehicleID(playerid)) { return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht in deinem Fahrzeug !"); }
    GetPlayerName(playerid,pName,sizeof(pName));
    GetPlayerName(pID,pIdName,sizeof(pIdName));
    RemovePlayerFromVehicle(pID);
    format(string,sizeof(string),"Du hast %s aus deinem Auto geschmissen !",pIdName);
    SendClientMessage(playerid,0xFFFFFFAA,string);
    format(string,sizeof(string),"Fahrer %s hat dich aus seinem Auto geschmissen !",pName);
    SendClientMessage(pID,0xFFFFFFAA,string);
    return 1;
    }


    das problem ist dass ich nicht mal nen error bekomme sondern der compiler einfach abstürtzt
    hoffe jemand kann mir helfen

  • habe das ganze als FS ausprobiert und bekomme das wranung und im spiel passiert nichts
    D:\Datenablage\Users\Ronny\Games\modded games\Reallife\neue version\filterscripts\grab.pwn(5) : warning 235: public function lacks forward declaration (symbol "OnPlayercommandText")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

  • du kannst doch nicht das einfach mit define definieren:

    #define GetDistanceBetweenPlayers



    kann doch nicht gehen.
    Kann mal jemand mir die Funktion geben: GetDistanceBetweenPlayers pls

  • Kann das bitte einer den /kidnap befehl in sscanf schreiben?


    Ist er doch?


    if(sscanf(params,"ud",pID,seatid)) { return SendClientMessage(playerid,0xAFAFAFAA,"SYNTAX: /kidnap [playerid] [SitzId]"); }


    @Die anderen:
    Habe es mal aus dem GF kopiert..


    public Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    }


    Grüße,
    tony