Beiträge von Frank Bullitt

    Das muss unter "public OnPlayerDeath(playerid, killerid, reason)":


    if(!IsACop(killerid) || !IsAFBI(killerid)) //Abfrage ob die Person, die jemanden getötet hat ein Cop oder FBI Agent ist, musst Du für dein Script anpassen
    {
    WantedLevel[killerid]+=2; //Wenn du Godfather nutzt
    }

    Hm, also wenn das wirklich nicht geht, habe ich eine andere Frage.
    Also, ich habe zwei 3D Text Label übereinander mit verschiedenen Farben jetzt gemacht, wenn man am Auto ist, ist der Abstand der Text Label normal, aber wenn man ein Stück weiter geht, verringert sich der Abstand zwischen den Text Labeln.
    Wie bekomme ich es hin, dass der Abstand so bleibt?
    Denn wenn man nicht 2 verschiedene Farben in ein 3D Text Label bekommt, dann muss es irgendwie möglich sein, dass der Abstand sich nicht verändert.


    So ist es im Moment.
    Wenn man im Fahrzeug ist:

    Und wenn man daneben steht:


    MfG


    //EDIT
    Bilder eingefügt

    Wie die Überschrift schon sagt, frage ich mich, wie man bei SA:MP 0.3b (Nicht 0.3c) in einem 3D Text Label zwei verschiedene Farben macht.
    Ein Beispiel, wie es bei SA:MP 0.3c geht:


    fbi[playerid] = Create3DTextLabel("{FF000F}||||||||||{0000CD}\nF.B.I.",0xFF000FFF,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(fbi1[playerid], GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0);
    Wie bekomme ich das bei 0.3b hin?
    Sowas habe ich schon auf einem 0.3b Server gesehen, also nicht sagen, dass es nicht möglich ist ...


    MfG

    Hallo,


    ich habe meinen alten Befehl /flash (Funktion: z.B. Bei FBI Fahrzeugen wird ||| F.B.I. ||| rot-blau blinkend angezeigt) verbessert, sprich Bugs ausgemärzt und diesen Befehl für andere Fraktionen erweitert.
    Seitdem blinkt jenachdem wieviele User auf dem Server online sind dieser Effekt falsch, also schneller als Normal, natürlich verwende ich Timer, aber die bringen nur was, wenn sogut wie keiner online ist auf dem SA:MP Server.
    Hier mal der gesamte Befehl.


    Der Command selbst:
    if(strcmp(cmd, "/flash", true) == 0)
    {
    if(IsAFBI(playerid))
    {
    if(flashonoff[playerid]==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new autofbi = GetPlayerVehicleID(playerid);
    fbi1[playerid] = Create3DTextLabel("||| F.B.I. |||",0xFF000FFF,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(fbi1[playerid], autofbi, 0.0, 0.0, 0.0);
    flashonoff[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug!");
    }
    }
    else
    {
    Delete3DTextLabel(fbi1[playerid]);
    flashonoff[playerid] = 0;
    }
    }
    if(IsAARMY(playerid))
    {
    if(armyflashonoff[playerid]==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new autoarmy = GetPlayerVehicleID(playerid);
    army1[playerid] = Create3DTextLabel("||||||||||\nU.S. Army\n||||||||||",0x6E8B3DFF,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(army1[playerid], autoarmy, 0.0, 0.0, 0.0);
    armyflashonoff[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug!");
    }
    }
    else
    {
    Delete3DTextLabel(army1[playerid]);
    armyflashonoff[playerid] = 0;
    }
    }
    if(IsAFS(playerid))
    {
    if(fsflashonoff[playerid]==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsAFSCar(GetPlayerVehicleID(playerid)))
    {
    new autofs = GetPlayerVehicleID(playerid);
    fs1[playerid] = Create3DTextLabel("Fahrschule\n||||||||||\nNicht stören!",0xFFFFFFFF,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(fs1[playerid], autofs, 0.0, 0.0, 0.0);
    fsflashonoff[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in einem Fahrschul Fahrzeug!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug!");
    }
    }
    else
    {
    Delete3DTextLabel(fs1[playerid]);
    fsflashonoff[playerid] = 0;
    }
    }
    return 1;
    }
    Die public's, die den blinkenden Effekt herbeiführen sollen:
    public Check(playerid)
    {
    if(flashonoff[playerid]==1)
    {
    if(checkfarben[playerid] == 0)
    {
    Update3DTextLabelText(fbi1[playerid],0xFF000FFF,"||| F.B.I. |||"); checkfarben[playerid] = 1;
    }
    else if(checkfarben[playerid] == 1)
    {
    Update3DTextLabelText(fbi1[playerid],0x0000CDFF,"||| F.B.I. |||"); checkfarben[playerid] = 0;
    }
    }
    return 1;
    }


    public armyCheck(playerid)
    {
    if(armyflashonoff[playerid]==1)
    {
    if(armycheckfarben[playerid] == 0)
    {
    Update3DTextLabelText(army1[playerid],0x6E8B3DFF,"||||||||||\nU.S. Army\n||||||||||"); armycheckfarben[playerid] = 1;
    }
    else if(armycheckfarben[playerid] == 1)
    {
    Update3DTextLabelText(army1[playerid],0x8B5A2BFF,"||||||||||\nU.S. Army\n||||||||||"); armycheckfarben[playerid] = 0;
    }
    }
    return 1;
    }


    public fsCheck(playerid)
    {
    if(fsflashonoff[playerid]==1)
    {
    if(fscheckfarben[playerid] == 0)
    {
    Update3DTextLabelText(fs1[playerid],0xFFFFFFFF,"Fahrschule\n||||||||||\nNicht stören!"); fscheckfarben[playerid] = 1;
    }
    else if(fscheckfarben[playerid] == 1)
    {
    Update3DTextLabelText(fs1[playerid],0xEEDD82FF,"Fahrschule\n||||||||||\nNicht stören!"); fscheckfarben[playerid] = 0;
    }
    }
    return 1;
    }
    Die Timer, die die public's aufrufen sollen:
    public OnPlayerConnect(playerid)
    {
    SetTimerEx("Check", 1000, 1, "i", playerid);
    SetTimerEx("armyCheck", 1000, 1, "i", playerid);
    SetTimerEx("fsCheck", 1000, 1, "i", playerid);
    }
    Und noch die ganzen Definierungen (new und forward):
    new Text3D:fbi1[MAX_PLAYERS];
    new Text3D:army1[MAX_PLAYERS];
    new Text3D:fs1[MAX_PLAYERS];
    new checkfarben[MAX_PLAYERS] = 0;
    new armycheckfarben[MAX_PLAYERS] = 0;
    new fscheckfarben[MAX_PLAYERS] = 0;
    forward Check(playerid);
    forward armyCheck(playerid);
    forward fsCheck(playerid);


    Vielleicht kann mir ja jemand helfen.


    MfG

    Also das hier ist mein Command:


    if(strcmp(cmd, "/drag", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(!IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Cop / FBI!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /drag [playerid/PartOfName]");
    return 1;
    }
    new newcar = GetPlayerVehicleID(playerid);
    new playa;
    playa = ReturnUser(tmp);
    if(IsACopCar(newcar) || IsAFBICar(newcar) || IsAARMYCar(newcar) || IsAOAMTCar(newcar))
    {
    if(IsPlayerConnected(playa))
    {
    if(playa != INVALID_PLAYER_ID)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playa,x,y,z);
    if(PlayerToPoint(5, playerid, x, y, z))
    {
    PutPlayerInVehicle(playa,newcar,1);
    GetPlayerName(playa, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s zerrt %s in sein Auto.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Spieler ist nicht in deiner Nähe.");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist in keinem Einsatzwagen!");
    }
    }
    return 1;
    }


    Wie mach ich das nun?


    MfG

    Hallo,


    ich bin auf der Suche nach dem Befehl /drag [playerid] [SitzID].
    SitzID 1 = Beifahrersitz, SitzID 2 = Hinten links und SitzID 3 = Hinten rechts.
    Ich hab schon das ganze Forum durchsucht aber nichts passendes gefunden, nur /drag [playerid], aber dieser Befehl ist nicht sehr reallisitsch, weil man dann nur einen Verbrecher gleichzeitig schnappen kann.
    Ich hoffe mir kann jemand weiterhelfen.


    MfG

    Also ich bekomme beim Compilen immer diese 3 Warnings:


    Code
    C:\Users\Privat\Desktop\neu\kidnap\Reallife.pwn(35043) : warning 202: number of arguments does not match definition
    C:\Users\Privat\Desktop\neu\kidnap\Reallife.pwn(35043) : warning 202: number of arguments does not match definition
    C:\Users\Privat\Desktop\neu\kidnap\Reallife.pwn(35043) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    3 Warnings.


    Betroffene Zeilen:


    dcmd_kidnap(playerid,params[])
    {
    new pID,seatid,string[64],pName[MAX_PLAYER_NAME],pIdName[MAX_PLAYER_NAME];
    if(!IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid,0xBEBEBEFF,"Du bist in keinem Fahrzeug !"); }
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendClientMessage(playerid,0xBEBEBEFF,"Du bist nicht der Fahrer !"); }
    if(sscanf(params,"ud",pID,seatid)) { return SendClientMessage(playerid,0xBEBEBEFF,"Benutze: /kidnap [playerid] [SitzId]"); }
    if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,0xBEBEBEFF,"Ungültige ID!"); }
    if(PlayerToPoint (playerid,pID) > 7.0) { return SendClientMessage(playerid,0xBEBEBEFF,"Du bist zu weit entfernt !"); } <-------------- Betroffene Zeile
    if(IsPlayerInAnyVehicle(pID)) { return SendClientMessage(playerid,0xBEBEBEFF,"Dieser Spieler ist in einem Fahrzeug !"); }
    GetPlayerName(playerid,pName,sizeof(pName));
    GetPlayerName(pID,pIdName,sizeof(pIdName));
    PutPlayerInVehicle(pID,GetPlayerVehicleID(playerid),seatid);
    TogglePlayerControllable(pID,0);
    format(string,sizeof(string),"Du hast %s gekidnappt!",pIdName);
    SendClientMessage(playerid,0xBEBEBEFF,string);
    GameTextForPlayer(pID,"~r~Kidnapped!",5000,3);
    return 1;
    }


    P.S.
    Zeile 8 ist betroffen.

    Komisch, bei mir tut sich nach 30 Sekunden nichts.
    Mein Command:


    if(strcmp(cmd, "/hack", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerCuffed[playerid])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du wurdest Verhaftet. Du kannst nicht Hacken!");
    return 1;
    }
    new hackcar = GetPlayerVehicleID(playerid);
    if(IsACopCar(hackcar))
    {
    if(WantedLevel[playerid]>=1)
    {
    SendClientMessage(playerid, COLOR_ALLDEPT, "Du fängst an zu Hacken, bleib 30 Sekunden im Auto.");
    TogglePlayerControllable(playerid,0);
    SetTimer("hack",30000,0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du hast keine Wanteds!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist in keinem Einsatzfahrzeug!");
    return 1;
    }
    }
    return 1;
    }


    Und die public:


    public hack(playerid)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist fertig mit Hacken.");
    TogglePlayerControllable(playerid,1);
    WantedLevel[playerid] = 0;
    }


    Was hab ich falsch gemacht? ^^

    Hallo,


    ich brauche Hilfe bei zwei Pickups:
    Ich habe eine kleine zweite Garage für das LSPD gemacht, wo Abschlepper drin sind.
    Damit man reinkommt (auch mit Auto) hab ich ein Pickup zum Reinkommen gemacht und eins zum Rauskommen.
    Das Problem ist nun, dass man nicht reinkommt, wenn man in einem Auto sitzt, nur wenn man zu Fuß ist.
    Hier meine beiden Pickups:


    Unter public OnPlayerPickUpPickup:


    if(pickupid == towtruckout)
    {
    if(gTeam[playerid] == 2 || IsACop(playerid) || IsAOAMT(playerid) || IsAARMY(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid), 1794.2830,-1536.7578,10.1129);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }
    else
    {
    SetPlayerPos(playerid, 1794.2830,-1536.7578,10.1129);
    }
    }
    }
    if(pickupid == towtruckin)
    {
    if(gTeam[playerid] == 2 || IsACop(playerid) || IsAOAMT(playerid) || IsAARMY(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid), 1834.4116,-1541.5497,13.3761);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }
    else
    {
    SetPlayerPos(playerid, 1834.4116,-1541.5497,13.3761);
    }
    }
    }


    Die CreatePickup Sachen:


    towtruckout = CreatePickup(1318,1,1826.7791,-1538.5980,13.5469); //TowTrucks Außen
    towtruckin = CreatePickup(1318,1,1821.6321,-1537.3494,13.4821); //TowTrucks Innen


    Die new towtruckout; und new towtruckin; hab ich natürlich nicht vergessen ^^


    Vielleicht kann mir ja jemand helfen.


    //EDIT
    P.S.
    Ich habe eine Vermutung, woran es liegen könnte.
    Ich habe als PickupType 1 genommen, aber vielleicht kanns ja mit 1 garnicht erst funktionieren.
    Habe auch schon nach anderen PickupTypes geguckt, aber nichts passendes gefunden.

    Habe jetzt den Befehl etwas modifiziert (also das die Fahrschule ihn auch nutzen kann).


    Beim Compilen bekomme ich 0 Errors und 0 Warnings, aber InGame scheint es nicht richtig zu funktionieren.


    Ich setze mich in ein Auto als FBI Agent, mache /flash an, es blinkt FBI rot-blau, ich mache es wieder aus (nochmal /flash) und es ist aus.


    Dann mache ich mich zum Test zum Fahrschul-Lehrer setze mich wieder in das Auto und mache noch einmal /flash, jetzt blinkt "Fahrschule - Nicht stören!" aber zwischendurch blinkt plötzlich die FBI Schrift ?(


    Hier mal alles was mit /flash zu tun hat:


    Der Command selbst:


    if(strcmp(cmd, "/flash", true) == 0)


    {


    if(IsAFBI(playerid) || IsAFS(playerid))


    {


    if(IsPlayerInAnyVehicle(playerid))


    {


    if(IsAFBI(playerid))


    {


    if(flashonoff[playerid]==0)


    {


    new autofbi = GetPlayerVehicleID(playerid);


    fbi1 = Create3DTextLabel("||| F.B.I. |||",0xFF000FFF,30.0,30.0,5.0,30.0,0);


    Attach3DTextLabelToVehicle(fbi1, autofbi, 0.0, 0.0, 0.0);


    flashonoff[playerid] = 1;


    }


    else


    {


    Delete3DTextLabel(fbi1);


    flashonoff[playerid] = 0;


    }


    }


    else if(IsAFS(playerid))


    {


    if(flashonofffs[playerid]==0)


    {


    new autofs = GetPlayerVehicleID(playerid);


    fs1 = Create3DTextLabel("Fahrschule\r\n||||||||||\r\nNicht stören!",0xFFFFFFFF,30.0,30.0,5.0,30.0,0);


    Attach3DTextLabelToVehicle(fs1, autofs, 0.0, 0.0, 0.0);


    flashonofffs[playerid] = 1;


    }


    else


    {


    Delete3DTextLabel(fs1);


    flashonofffs[playerid] = 0;


    }


    }


    }


    else


    {


    SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug!");


    }


    }


    return 1;


    }


    Ein paar Definierungen:


    new flashonoff[MAX_PLAYERS];


    new flashonofffs[MAX_PLAYERS];


    new Text3D:fbi1;


    new Text3D:fs1;


    new checkfarben = 0;


    new checkfarbenfs = 0;


    forward Check();


    forward Checkfs();


    Die zwei Publics:


    public Check()


    {


    if(checkfarben == 0){


    Update3DTextLabelText(fbi1,0xFF000FFF,"||| F.B.I. |||"); checkfarben = 1;}


    else if(checkfarben == 1){


    Update3DTextLabelText(fbi1,0x0000CDFF,"||| F.B.I. |||"); checkfarben = 0; }


    }




    public Checkfs()


    {


    if(checkfarbenfs == 0){


    Update3DTextLabelText(fs1,0xFFFFFFFF,"Fahrschule\r\n||||||||||\r\nNicht stören!"); checkfarbenfs = 1;}


    else if(checkfarbenfs == 1){


    Update3DTextLabelText(fs1,0xFFFACDFF,"Fahrschule\r\n||||||||||\r\nNicht stören!"); checkfarbenfs = 0; }


    }


    Und die beiden Timer:


    SetTimer("Check",1000,1);


    SetTimer("Checkfs",1000,1);


    Vielleicht hab ich ja irgendwas falsch gemacht ;)


    Kann mir jemand helfen?


    Edit: Rechtschreibung

    Jo, jetzt habe ich wieder einen neuen Error wegen dem Befehl.
    Diesmal wieder in deiner neuen Reiher mit new vehicleid:
    C:\Users\Privat\Desktop\Script.pwn(25072) : error 076: syntax error in the expression, or invalid function call


    //EDIT
    Habs selbst gefixt ^^
    Das heißt ja eigentlich
    GetPlayerVehicleID(playerid)

    Hallo,


    ich möchte einen Befehl für FBI Agenten scripten, dass wenn sie /flash eingeben, ein 3DTextLabel an ihrem Auto erscheint, es sollte nicht mal ein FBI Auto sein, sondern sie sollten es an allen Autos machen können.
    Hier mein Befehl:
    if(strcmp(cmd, "/flash", true) == 0)
    {
    if(IsAFBI(playerid))
    {
    if(flashonoff[playerid]==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    fbi1 = Create3DTextLabel("||| F.B.I. |||",0xFF000FFF,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(fbi1, vehicleid, 0.0, 0.0, 0.0);} <---------------------- WICHTIGE STELLE
    flashonoff[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist in keinem Fahrzeug!");
    }
    }
    else
    {
    Delete3DTextLabel(fbi1);
    flashonoff[playerid] = 0;
    }
    }
    return 1;
    }
    Die wichtige Stelle, die markiert ist, ist falsch, ich habe vehicleid hingeschrieben, aber damit soll gemeint sein, egal welches Auto.
    Beim Compilen bekomme ich deshalb diesen Error:

    Code
    C:\Users\Privat\Desktop\Script.pwn(25074) : error 017: undefined symbol "vehicleid"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    Hoffentlich kann mir jemand helfen :rolleyes:


    //EDIT
    Also mit vehicleid ist das Auto gemeint, in dem man grade sitzt, egal welches.