Beiträge von Key

    N'abend,


    ich bin schon seit längerem am überlegen, ob ich ein RL Gamemode erstelle, der hauptsächlich in Bayside spielt.
    Meint ihr, könnte das was werden, ist überhaupt genug Platz in Bayside? Evtl. könnte man ja noch was dazu mappen.


    Eure Meinungen sind gefragt ;)

    Hallo,
    ich habe mir einen /m Befehl gescriptet, aber wenn ich InGame jetzt /m Test oder sonstiges eingebe, passiert gar nichts.
    ocmd:m(playerid, params[])
    {
    new msg[100];
    new str[128];
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof aname);
    if(sscanf(params,"s",msg))
    {
    if(Spielerinfo[playerid][Fraktion] == 1 || Spielerinfo[playerid][Leader] == 1 || Spielerinfo[playerid][Fraktion] == 3 || Spielerinfo[playerid][Leader] == 3)
    {
    return SendClientMessage(playerid, COLOR_WHITE, "Nutze: /m [Message]");
    }
    else
    {
    SendClientMessage(playerid, 0xFF0000FF, "Du bist kein Staatsbeamter!");
    }
    format(str, sizeof(str), "[Megaphone]: %s: %s", aname, msg);
    if(Spielerinfo[playerid][Fraktion] == 1 || Spielerinfo[playerid][Leader] == 1 || Spielerinfo[playerid][Fraktion] == 3 || Spielerinfo[playerid][Leader] == 3)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) {
    new Float:mx,Float:my,Float:mz;
    GetPlayerPos(playerid,mx,my,mz);
    if(IsPlayerInRangeOfPoint(i,10.0,mx,my,mz))
    {
    SendClientMessage(i, COLOR_YELLOW, str);
    }
    }}
    }
    return 1;
    }

    Also so:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new Float:x,Float:y,Float:z,Float:ang;
    if(newkeys == KEY_FIRE)
    {
    if(GetPlayerWeapon(playerid) == 41)
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    GetPlayerFacingAngle(playerid,ang);
    if(IsPlayerInRangeOfPlayer(playerid,i,2.0))
    {
    //Code
    }


    }
    }
    }
    return 1;
    }?
    Nur das mit dem Facing Angle bekomme ich nicht ganz hin...


    //edit: Kann mir jemand sagen, wie ich das mit dem FacingAngle hin bekomme?

    Ich hab mal was gebastelt:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new Float:x,Float:y,Float:z,Float:ang;
    if(newkeys == KEY_FIRE)
    {
    if(GetPlayerWeapon(playerid) == 41)
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,ang);
    if(IsPlayerInRangeOfPointFA(i,2.0,x,y,z,ang))
    {
    //Code
    }


    }
    }
    }
    return 1;
    }
    stock IsPlayerInRangeOfPointFA(playerid,Float:Range,Float:X,Float:Y,Float:Z,Float:Ang)
    {
    IsPlayerInRangeOfPoint(playerid,Range,X,Y,Z);
    GetPlayerFacingAngle(playerid,Ang);
    return 1;
    }
    Kann bzw. würde das so funktionieren?

    Kann man das nicht so in etwa machen:


    Wenn Player Taste "KEY_FIRE" drückt, wird überprüft ob Player die Waffe "Spraydose" in der Hand hat. Falls er die Spraydose in der Hand hat, wird der Facing Angle von Player überprüft und ebenfalls wird überprüft ob jemand in dieser Richtung steht?

    Hallo,
    ich wollte mal fragen, ob es möglich ist, herauszufinden ob Player1 gerade mit der Spraydose Player2 ansprayt, wenn ja, wird der Bildschirm von Player2 kurz rot.


    Falls das möglich ist, würde ich mich freuen, wenn mir jemand zeigt wie das geht.

    Unter OnVehicleSpawn funktioniert es auch nicht.



    //edit: Ehm.. gibt es eigentlich eine Funktion, mit der ich Autotüren öffnen kann?
    Denn die bei SetVehicleParamsEx ist ja dafür da, die Tür zu verriegeln.

    Hallo,
    ich wollte, dass bei den SWAT-Autos, bei mir auf dem Server, die Sirene an ist.
    Deshalb habe ich unter OnGameModeInit folgendes geschrieben:


    for(new j = 0;j<sizeof swatcars;j++)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(swatcars[j],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(swatcars[j],engine,lights,VEHICLE_PARAMS_ON,doors,bonnet,boot,objective);
    }



    Trotzdem passiert InGame nichts.


    SWAT-Autos:
    new swatcars[5];
    swatcars[0] = AddStaticVehicle(490,-2128.9624,-157.2648,35.4504,117.1813,0,0); // SWAT1
    swatcars[1] = AddStaticVehicle(596,-2120.2239,-151.8893,35.0240,173.1714,0,0); // SWAT2
    swatcars[2] = AddStaticVehicle(596,-2124.7881,-150.3340,35.0399,194.3048,0,0); // SWAT3
    swatcars[3] = AddStaticVehicle(427,-2133.5801,-146.9919,35.4540,21.5835,0,0); // SWAT4
    swatcars[4] = AddStaticVehicle(596,-2127.2275,-139.5182,35.0465,205.9307,0,0); // SWAT5

    Hallo,
    ich habe gerade einen Rundgang erstellt, den man mit /rundgang starten kann.
    Wenn man /rundgang eingegeben hat, kommt ein Checkpoint bei der Stadthalle ( soweit, so gut),
    wenn ich jetzt aber in den Checkpoint rein laufe, kommt: "Hier ist einer von drei Burgershots in SF....", obwohl eigentlich etwas über die Stadthalle kommen sollte. Wenn ich dann auf O.K. drücke, ist der Rundgang beendet ( Obwohl es danach eig. noch weiter geht ).


    Code:
    if(strcmp(cmd,"/rundgang",true) == 0)
    {
    Rundgang[playerid] = 1;
    SetPlayerCheckpoint(playerid,-2764.5518,375.5934,6.3415,2.0); // Stadthalle
    return 1;
    }
    public OnPlayerEnterCheckpoint(playerid)
    {
    if(Rundgang[playerid] == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_RUNDGANG1,0,"Stadthalle","Hier befindet sich die San Fierro Stadthalle. In dieser bekommst du einen Perso, kannst Arbeitslosengeld beantragen oder kannst du ein Führerschein kaufen, aber nur wenn kein Fahrlehrer online ist. Alle Jobs findest du ebenfalls in der Stadthalle.","O.K.","Beenden");
    Rundgang[playerid] = 2;
    }
    else if(Rundgang[playerid] == 2)
    {
    ShowPlayerDialog(playerid,DIALOG_RUNDGANG2,0,"Otto's Autos","Du bist nun bei Otto's Autos. Hier kannst du dir ein Fahrzeug kaufen, dieses kannst du dann überall beliebig parken. Wenn du es nicht mehr brauchst, kannst du es an andere Spieler oder an den Laden, für den halben Kaufpreis, verkaufen.","O.K.","Beenden");
    Rundgang[playerid] = 3;
    }
    else if(Rundgang[playerid] == 3)
    {
    ShowPlayerDialog(playerid,DIALOG_RUNDGANG3,0,"WangCars","Hier ist das 2. Autohaus in SF. Hier kannst du dir ebenfalls ein Fahrzeug kaufen, welches du dann parken kannst. Wenn du es nicht mehr brauchst, kannst du es an andere Spieler oder an den Laden, für den halben Kaufpreis, verkaufen.","O.K.","Beenden");
    Rundgang[playerid] = 4;
    }
    else if(Rundgang[playerid] == 4)
    {
    ShowPlayerDialog(playerid,DIALOG_RUNDGANG4,0,"24/7","Hier befindet sich ein 24/7. Du kannst dir hier einige Dinge kaufen: Laptop, Handy, Cola... Mit dem Laptop kannst du im Internet surfen und eMails schreiben, mit dem Handy kannst du telefonieren und die Cola kannst du trinken und damit deine HP steigern.","O.K.","Beenden");
    Rundgang[playerid] = 5;
    }
    else if(Rundgang[playerid] == 5)
    {
    ShowPlayerDialog(playerid,DIALOG_RUNDGANG5,0,"Fahrschule","Hier ist die Fahrschule, wenn du einen Schein brauchst, bist du hier richtig. Sollte mal kein Fahrlehrer online sein, kannst du dir ein Schein in der Stadthalle besorgen.","O.K.","Beenden");
    Rundgang[playerid] = 6;
    }
    else if(Rundgang[playerid] == 6)
    {
    ShowPlayerDialog(playerid,DIALOG_RUNDGANG6,0,"BurgerShot","Hier ist einer von drei BurgerShots in San Fierro. Solltest du Hunger haben, kannst du entweder in den Laden reingehen und dir ein Burger kaufen oder mit dem Auto ins DriveIn fahren.","O.K.","Beenden");
    Rundgang[playerid] = 0;
    }
    return 1;
    }
    if(dialogid == DIALOG_RUNDGANG1) //Stadthalle
    {
    if(response)
    {
    SetPlayerCheckpoint(playerid,-1640.8425,1203.2305,7.2407,2.0);//OttosAutos
    }
    }
    if(dialogid == DIALOG_RUNDGANG2) // Otto's Autos
    {
    if(response)
    {
    SetPlayerCheckpoint(playerid,-1965.5903,293.9951,35.4688,2.0);//WangCars
    }
    }
    if(dialogid == DIALOG_RUNDGANG3) // Wang Cars
    {
    if(response)
    {
    SetPlayerCheckpoint(playerid,-1997.9803,-34.3073,35.2694,2.0);// 24/7
    }
    }
    if(dialogid == DIALOG_RUNDGANG4) // 24/7
    {
    if(response)
    {
    SetPlayerCheckpoint(playerid,-2047.0332,-84.5900,35.1641,2.0);// Fahrschule
    }
    }
    if(dialogid == DIALOG_RUNDGANG5) // Fahrschule
    {
    if(response)
    {
    SetPlayerCheckpoint(playerid,-2356.1763,1008.1758,50.8984,2.0);//BurgerShot
    }
    }
    if(dialogid == DIALOG_RUNDGANG6) // BurgerShot
    {
    if(response)
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Vielen Dank, dass wir dir einmal unsere Stadt zeigen durften!");
    }
    }
    LG

    ocmd:report(playerid,params[])
    {
    new str[128], name[128], msg[128];
    GetPlayerName(playerid,name,sizeof name);
    if(Spielerinfo[playerid][Adminlevel] >= 1)
    {
    if(sscanf(params,"s",msg))
    return SendClientMessage(playerid,COLOR_WHITE,"Nutze: /report [Text]");
    format(str,sizeof str,"Report von %s: %s",name,msg);
    for(new i = 0; i < MAX_PLAYERS; i++){
    if(Spielerinfo[i][Adminlevel] >= 1)
    {
    SendClientMessage(i,COLOR_ADMIN,str);
    }}
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
    }
    return 1;
    }


    So besser?

    Hallo,
    ich habe mir einen /report System erstellt.
    Wenn ich aber InGame "/report Test" eingebe komm InGame nur: "Report von [KilleR]: " also nichts von "Test".


    Der Befehl:
    if(strcmp(strget(cmdtext,0),"/report",true) == 0)
    {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid,COLOR_WHITE,"Nutze: /report [Text]");
    {
    new reporttext, sendername[128];
    reporttext = strval(strget(cmdtext,1));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerName(i,sendername,sizeof (sendername));
    if(Spielerinfo[i][Adminlevel] >= 1)
    {
    SCMF(i,COLOR_GREY,"Report von %s: %s",sendername,reporttext);
    }
    }
    return 1;


    }
    }



    Kann mir jemand sagen, woran das liegt?
    LG


    //edit: Mehr Code hinzugefügt

    Hallo,
    kennt jemand von euch ein Handy System, bei dem man eine Nummer zu geteilt bekommt und bei dem halt die Befehle /call und /sms vorhanden sind? Kann auch auf englisch sein.


    LG

    Hallo,
    ich habe ein Handysystem angefangen, weiß aber nicht, wie ich es hin bekomme, dass nur derjenige, den ich angerufen habe, die Nachrichten die ich schreibe bekommt. Kann mir da jemand weiterhelfen?


    pID=strval(strget(cmdtext, 1));
    GetPlayerName(playerid,aname,sizeof aname);
    GetPlayerName(pID,oname,sizeof oname);
    if(!strcmp(strget(cmdtext,0),"/anrufen"))
    {
    if(Spielerinfo[playerid][Handy] == 1 && Spielerinfo[pID][Handy] == 1)
    {
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /anrufen [ID]"); return 1; }
    format(string,sizeof string,"Du rufst %s an.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s ruft dich an. Tippe /annehmen.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    Spielerinfo[pID][angerufen] = 1;
    Spielerinfo[playerid][ruftan] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du oder dein Gesprächspartner hat kein Handy!");
    return 1;
    }
    }
    if(!strcmp(strget(cmdtext,0),"/annehmen"))
    {
    if(Spielerinfo[playerid][angerufen] == 1)
    {
    format(string,sizeof string,"Du hast den Anruf von %s angenommen. Um aufzulegen tippe /auflegen.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat deinen Anruf angenommen.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du wurdest nicht angerufen!");
    return 1;
    }
    }
    if(!strcmp(strget(cmdtext,0),"/auflegen"))
    {
    if(Spielerinfo[playerid][angerufen] == 1)
    {
    format(string,sizeof string,"Du hast das Gespräch mit %s abgebrochen.",oname);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof string,"%s hat aufgelegt.",aname);
    SendClientMessage(pID,COLOR_WHITE,string);
    Spielerinfo[playerid][ruftan] = 0;
    Spielerinfo[playerid][angerufen] = 0;
    Spielerinfo[pID][ruftan] = 0;
    Spielerinfo[pID][angerufen] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du wurdest nicht angerufen!");
    return 1;
    }
    }
    //edit: Code hinzugefügt

    @CompleXx
    stock Register(playerid,key[])
    {
    new Spielerdatei[128],
    name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,DUNKELORANGE,"Erfolgreich registriert.");
    SetPlayerScore(playerid,0);
    return 1;
    }


    B2T:
    Hast du den Ordner "Accounts" erstellt?

    Hallo,
    ich hab mir einen Wantedsystem für meinen GM gebaut, jedoch hatte ich vorhin, als ich mit jemanden den Server getestet habe, einen schwerwiegenden Bug, und zwar, ist er in das Knast gekommen, weil er Wanteds hatte, danach bin ich in den Knast gekommen ( soweit so gut ). Dann ist er, logischerweise früher als ich raus gekommen, und er bekam die Nachricht " Du wurdest aus dem Knast entlassen". Kurze Zeit darauf, bekam er die selbe Nachricht nochmal und wurde nochmal an die Stelle geportet, wo man entlassen wird. Ich bekam dann aber keine Nachricht mehr, und kam nicht mehr aus dem Knast.


    Das Wantedsystem:
    public OnPlayerSpawn(playerid)
    {
    if(GetPlayerWantedLevel(playerid) >= 1)
    {
    new GeldAnzahl[12];
    new Wanted[12];
    if(GetPlayerWantedLevel(playerid) == 1)
    {
    GeldAnzahl= "2000";
    SetTimer("Wanted1",180000,0);
    GivePlayerMoney(playerid,-2000);
    Wanted= "1";
    }
    else if(GetPlayerWantedLevel(playerid) == 2)
    {
    GeldAnzahl= "4000";
    SetTimer("Wanted2",360000,0);
    GivePlayerMoney(playerid,-4000);
    Wanted= "2";
    }
    else if(GetPlayerWantedLevel(playerid) == 3)
    {
    GeldAnzahl= "6000";
    SetTimer("Wanted3",540000,0);
    GivePlayerMoney(playerid,-6000);
    Wanted= "3";
    }
    else if(GetPlayerWantedLevel(playerid) == 4)
    {
    GeldAnzahl= "8000";
    SetTimer("Wanted4",720000,0);
    GivePlayerMoney(playerid,-8000);
    Wanted= "4";
    }
    else if(GetPlayerWantedLevel(playerid) == 5)
    {
    GeldAnzahl= "10000";
    SetTimer("Wanted5",900000,0);
    GivePlayerMoney(playerid,-10000);
    Wanted= "5";
    }
    else if(GetPlayerWantedLevel(playerid) == 6)
    {
    GeldAnzahl= "12000";
    SetTimer("Wanteds6",1080000,0);
    GivePlayerMoney(playerid,-12000);
    Wanted= "6";
    }
    new string[124];
    SetPlayerPos(playerid, 264.6288,77.5742,1001.0391);
    SetPlayerInterior(playerid,6);
    format(string,sizeof string,"Da du %s Wanteds hast, kommst du in den Knast und bezahlst %s$.",Wanted,GeldAnzahl);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SetPlayerWantedLevel(playerid, 0);
    }

    return 1;
    }
    public Wanted1(playerid)
    {
    SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
    SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
    }
    public Wanted2(playerid)
    {
    SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
    SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
    }
    public Wanted3(playerid)
    {
    SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
    SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
    }
    public Wanted4(playerid)
    {
    SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
    SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
    }
    public Wanted5(playerid)
    {
    SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
    SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
    }
    public Wanted6(playerid)
    {
    SetPlayerPos(playerid,268.4089,77.7189,1001.0391);
    SendClientMessage(playerid,COLOR_WHITE,"Du wurdest aus dem Knast entlassen");
    }