Takewaffen

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
  • Ich habe das problem , ich kann den Spieler trozdem die Waffen von jedem Ort abnehmen d.H er ist in LV und ich in LS es geht trozdem.
    Desweiteren kommt bei
    format(string2,sizeof(string2),"Du hast %s die Waffen abgenommen!",aname); der Name des Staatsbeamten, d.H ich nehme Person X die Waffen ab theoretisch sollte dann kommen :
    Du hast Person X die Waffen abgenommen!..




    ocmd:takewaffen(playerid,params[])
    {
    new pID,name[MAX_PLAYER_NAME],string[200],string2[200],aname[MAX_PLAYER_NAME],Float:x, Float:y, Float:z;
    GetPlayerPos(pID,x,y,z);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Spieler ist nicht Online");
    if(!IsPlayerInRangeOfPoint(playerid,07.0, x, y, z)) return SendClientMessage(playerid,ROT,"Spieler ist nicht in der Nähe");
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,aname, sizeof(aname));
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,ROT,"INFO: /takewaffen id");
    format(string,sizeof(string),"Der Staatsbeamte %s hat dir die Waffen abgenommen!",name);
    SendClientMessage(pID,hellblau,string);
    format(string2,sizeof(string2),"Du hast %s die Waffen abgenommen!",aname);
    SendClientMessage(playerid,hellblau,string2);
    ResetPlayerWeapons(pID);
    return 1;
    }

  • http://www.gidf.de


    ^^


    stock GetDistanceBetweenPlayers(playerid, playerid2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    new Float:tmpdis;
    GetPlayerPos(playerid,x1,y1,z1);
    GetPlayerPos(playerid2,x2,y2,z2);
    tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    return floatround(tmpdis);
    }

  • so funkts nicht ?



    ocmd:takewaffen(playerid,params[])
    {


    new pID,name[MAX_PLAYER_NAME],string[200],string2[200],aname[MAX_PLAYER_NAME];
    GetDistanceBetweenPlayers(playerid,pID);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Spieler ist nicht Online");
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,aname, sizeof(aname));
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,ROT,"INFO: /takewaffen id");
    format(string,sizeof(string),"Der Staatsbeamte %s hat dir die Waffen abgenommen!",name);
    SendClientMessage(pID,hellblau,string);
    format(string2,sizeof(string2),"Du hast %s die Waffen abgenommen!",aname);
    SendClientMessage(playerid,hellblau,string2);
    ResetPlayerWeapons(pID);
    return 1;
    }
    ocm

  • äh wie kannst du die pID bestimmen, bzw als wert verwenden, bevor sie von sscanf gegeben wird? sscanf müsste an erster stelle nach den news.. im befehl


    und bei GetDistanceBetweenPlayers(playerid,pID);


    musst du machen:


    if(GetDistanceBetweenPlayers(playerid,pID) <= 5) wobei 5 die meter sind die der spieler maximal weg sein darf von dem anderen

  • Nun wird immer angezeigt das der Spieler nicht in der Nähe ist.


    ocmd:takewaffen(playerid,params[])
    {


    new pID,name[MAX_PLAYER_NAME],string[200],string2[200],aname[MAX_PLAYER_NAME];
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Spieler ist nicht Online");
    if(sscanf(params,"i",pID))return SendClientMessage(playerid,ROT,"INFO: /takewaffen id");
    if(!GetDistanceBetweenPlayers(playerid,pID) <= 20) return SendClientMessage(playerid,ROT,"Spieler nicht in der Nähe");
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,aname, sizeof(aname));
    format(string,sizeof(string),"Der Staatsbeamte %s hat dir die Waffen abgenommen!",name);
    SendClientMessage(pID,hellblau,string);
    format(string2,sizeof(string2),"Du hast %s die Waffen abgenommen!",aname);
    SendClientMessage(playerid,hellblau,string2);
    ResetPlayerWeapons(pID);
    return 1;
    }