Symples Tazer Problem [NO-GF]

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
  • HIer ist der Cod aber wenn ich /tazer eingebe bin ich selber getazert....könnt ihr mir Helfen?

    ocmd:tazer(playerid,params[])
    {
    if(GetPVarInt(playerid,"Leader") == 1 || GetPVarInt(playerid,"Member") == 1)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[280], pID;
    {
    if(IsPlayerConnected(pID))
    {
    if(IsPlayerInRangeOfPoint(playerid,6,x,y,z))
    {
    TogglePlayerControllable(pID,0);
    format(string,sizeof string,"~b~Taze\n~r~Du ~r~wurdest ~r~getazert");
    GameTextForPlayer(pID,string,4000,3);
    SetTimer("Tazertime",10000,0);
    }
    }
    }
    }
    return 1;
    }



    public Tazertime(playerid)
    {
    TogglePlayerControllable(playerid,1);
    }


    das forward hab ich oben auch erstellt bekomme keine warns und keine Errors :D
    aber tazer mich selber^^

  • Du musst dem Script die PlayerID auch mittteilen, sonst bleibt pID 0 und dann wird immer ID 0 getazert.


    if(GetPVarInt(playerid,"Leader") == 1 || GetPVarInt(playerid,"Member") == 1)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[280], pID;
    { // Für was geht hier ne klammer auf? :O Is doch garkein if oder so.
    if(IsPlayerConnected(pID))
    {
    if(IsPlayerInRangeOfPoint(playerid,6,x,y,z))
    {
    TogglePlayerControllable(pID,0);
    format(string,sizeof string,"~b~Taze\n~r~Du ~r~wurdest ~r~getazert");
    GameTextForPlayer(pID,string,4000,3);
    SetTimer("Tazertime",10000,0);
    }
    }
    } // und hier wieder zu? :O
    }

  • Hää wie kannst du es mal hin schreiben/scripten ??
    Ich will halt ein Tazer wo nicht /tazer [ID] eingeben muss sondern hinterher laufe und per keybinder tazer reinmache ^^

  • So sollte es funktionieren (ungetestet):
    forward Tazertime(pID);
    ocmd:tazer(playerid,params[])
    {
    if(GetPVarInt(playerid,"Leader") == 1 || GetPVarInt(playerid,"Member") == 1)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[280], pID;
    {
    if(IsPlayerConnected(pID))
    {
    if(IsPlayerInRangeOfPoint(playerid,6,x,y,z))
    {
    TogglePlayerControllable(pID,0);
    format(string,sizeof string,"~b~Taze\n~r~Du ~r~wurdest ~r~getazert");
    GameTextForPlayer(pID,string,4000,3);
    SetTimerEx("Tazertime",10000,0,"i",pID);
    }
    }
    }
    }
    return 1;
    }


    public Tazertime(pID)
    {
    TogglePlayerControllable(pID,0);
    }

  • Ich Tazer mich nochimmer selbst^^
    Hilfe^^
    Die Gf´s oder LoH´s kappier ich net damit will ich kaum was zu tun haben habe da schon geschaut komme aber auch net weiter^^

  • DU musst einfach in deinen Befehl das rein machen:





    if(pID== playerid) { return 1; }




    wohin muss das? und was bringt das???


    //edit was hinzugefügt und in PWN gemacht

    Einmal editiert, zuletzt von [Markus] ()

  • Wie soll ich damit arbeiten könnt ihr mir das Tazer mal so machen??? Kapier das net
    Und bekomme Errors seit dem ich

    #include <uf>

    gemacht habe??



    C:\Users\acer\Desktop\0.3c Neu\pawno\include\uf.inc(43) : warning 201: redefinition of constant/macro (symbol "MAX_PICKUPS")
    C:\Users\acer\Desktop\0.3c Neu\pawno\include\uf.inc(3474) : warning 219: local variable "hour" shadows a variable at a preceding level
    C:\Users\acer\Desktop\0.3c Neu\pawno\include\uf.inc(3474) : warning 219: local variable "minute" shadows a variable at a preceding level
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(22) : error 025: function heading differs from prototype
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(400) : error 021: symbol already defined: "OnVehicleSpawn"
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(2382) : error 025: function heading differs from prototype
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(2383) : error 021: symbol already defined: "GetDistanceBetweenPlayers"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • Das hier is aus LoH, musste noch umschreiben:



    forward Float:GetDistanceBetweenPlayers(p1,p2);
    forward GetClosestPlayer(p1);
    public GetClosestPlayer(p1)
    {
    new x,Float:dis,Float:dis2,player;
    player = -1;
    dis = 99999.99;
    for (x=0;x<MAX_PLAYERS;x++)
    {
    if(IsPlayerConnected(x))
    {
    if(x != p1)
    {
    dis2 = GetDistanceBetweenPlayers(x,p1);
    if(dis2 < dis && dis2 != -1.00)
    {
    dis = dis2;
    player = x;
    }
    }
    }
    }
    return player;
    }
    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));
    }


    // Unter OnPlayerCommandText
    if(strcmp(cmd, "/tazer", true) ==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3|| PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
    {
    if(OnDuty[playerid]==0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst das nicht benutzen während du im Fahrzeug sitzt!");
    return 1;
    }
    new suspect = GetClosestPlayer(playerid);
    if(IsPlayerConnected(suspect))
    {
    if(PlayerCuffed[suspect] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist schon getazed!");
    return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    if(IsPlayerInAnyVehicle(suspect))
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist in einem Fahrzeug! Bringe in zuerst raus!");
    return 1;
    }
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s getazert! Du liegst für 15 Sekunden flach!", sendername);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s niedergestreckt.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s nimmt seinen Elektroschocker raus und streckt %s nieder.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(suspect, "~y~Getazert!", 3000, 3);
    TogglePlayerControllable(suspect, 0);
    PlayerCuffed[suspect] = 1;
    PlayerCuffedTime[suspect] = 15;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Niemand ist in deiner Nähe!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!");
    }
    }
    return 1;
    }


    Jetzt müsstest du es aber hinbekommen.

  • Errors beim Loh Tazer

    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(1282) : error 017: undefined symbol "giveplayer"
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(1282) : error 017: undefined symbol "giveplayer"
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(1282) : error 029: invalid expression, assumed zero
    C:\Users\acer\Desktop\0.3c Neu\gamemodes\Neu.pwn(1282) : fatal error 107: too many error messages on one line


    zeile

    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));


    auch das selbe problem mit sendername???? immer wenn im Forum was cooles ist ist es mit sendername^^xD
    und k.a wie ich das ins scipt reinbekomme

  • wie soll ich das definieren mit



    new sendername; und new giveplayerid; //????


    Außerdem habe ich noch andere Errors von der #include <uf> || 8| obwohl ich das alles gemacht habe was oben steht.

    2 Mal editiert, zuletzt von [Markus] () aus folgendem Grund: Rechtscheibfehler ausgebessert...