Beiträge von JanKNB135

    habs jetzt so:


    if(dialogid == PNOTRUFGRUND)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarString(playerid,"pnotrufgrund",inputtext);
    ShowPlayerDialog(playerid,PNOTRUFVERD,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib die ID oder den Namen des Täters\noder des Verdächtigen an:\n(Sollten der Name und die ID unbekannt sein, gib 'unbekannt' ein)","Weiter","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFVERD)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarString(playerid,"pnotrufverd",inputtext);
    ShowPlayerDialog(playerid,PNOTRUFZEUGE,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib die ID oder den Namen eines Zeugen an:\n(Sollte es keinen Zeugen geben, gib 'unbekannt' ein)","Weiter","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFZEUGE)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarString(playerid,"pnotrufzeuge",inputtext);
    ShowPlayerDialog(playerid,PNOTRUFORT,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib nun noch den Ort des Verbrechens an:\n(z.B. Burger Shot in LS)","Fertig","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFORT)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarString(playerid,"pnotrufort",inputtext);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerInFraktion(i,1))
    {
    SendClientMessage(i,GELB,"****** NOTRUF *****");
    new sgrund[128];
    format(sgrund,sizeof(sgrund),"Verbrechen: %s",GetPVarString(playerid,"pnotrufgrund",sgrund,128));
    SendClientMessage(i,GELB,sgrund);
    new sverd[128];
    format(sverd,sizeof(sverd),"Verdächtige: %s",GetPVarString(playerid,"pnotrufverd",sverd,128));
    SendClientMessage(i,GELB,sverd);
    new szeuge[128];
    format(szeuge,sizeof(szeuge),"Zeuge: %s",GetPVarString(playerid,"pnotrufzeuge",szeuge,128));
    SendClientMessage(i,GELB,szeuge);
    new sort[128];
    format(sort,sizeof(sort),"Tatort: %s",GetPVarString(playerid,"pnotrufort",sort,128));
    SendClientMessage(i,GELB,sort);
    SendClientMessage(i,GELB,"******************");
    }
    }
    }
    return 1;
    }
    }


    und das kommt raus: (1. angabe war "mord",2.angabe war "unbekannt", 3. angabe war "0" und 4. angabe war "ls")


    also so?:


    if(dialogid == PNOTRUFGRUND)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarInt(playerid,"pnotrufgrund",inputtext[128]);
    ShowPlayerDialog(playerid,PNOTRUFVERD,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib die ID oder den Namen des Täters\noder des Verdächtigen an:\n(Sollten der Name und die ID unbekannt sein, gib 'unbekannt' ein)","Weiter","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFVERD)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarInt(playerid,"pnotrufverd",inputtext[128]);
    ShowPlayerDialog(playerid,PNOTRUFZEUGE,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib die ID oder den Namen eines Zeugen an:\n(Sollte es keinen Zeugen geben, gib 'unbekannt' ein)","Weiter","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFZEUGE)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarInt(playerid,"pnotrufzeuge",inputtext[128]);
    ShowPlayerDialog(playerid,PNOTRUFORT,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib nun noch den Ort des Verbrechens an:\n(z.B. Burger Shot in LS)","Fertig","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFORT)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    SetPVarInt(playerid,"pnotrufort",inputtext[128]);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerInFraktion(i,1))
    {
    SendClientMessage(i,GELB,"****** NOTRUF *****");
    new sgrund[128];
    format(sgrund,sizeof(sgrund),"Verbrechen: %s",GetPVarInt(playerid,"pnotrufgrund"));
    SendClientMessage(i,GELB,sgrund);
    new sverd[128];
    format(sverd,sizeof(sverd),"Verdächtige: %s",GetPVarInt(playerid,"pnotrufverd"));
    SendClientMessage(i,GELB,sverd);
    new szeuge[128];
    format(szeuge,sizeof(szeuge),"Zeuge: %s",GetPVarInt(playerid,"pnotrufzeuge"));
    SendClientMessage(i,GELB,szeuge);
    new sort[128];
    format(sort,sizeof(sort),"Tatort: %s",GetPVarInt(playerid,"pnotrufort"));
    SendClientMessage(i,GELB,sort);
    SendClientMessage(i,GELB,"******************");
    }
    }
    }
    return 1;
    }
    }


    Das "[128]" hinter inputtext muss sein, da ich sonst errors bekomme

    Hallo Leute,
    ich arbeite gerade an einem Notruf System für die Polizei und da muss der Spieler, der den Notruf abgibt, verschiedene Angaben in Dialogen machen (z.B. Ort,Täter,...). Dafür verwende ich DIALOG_STYLE_INPUT und speichere die Eingabe mit einem string und einer Variablen.
    Was raus kommt sieht dann jedoch so aus: (keine Angaben, obwohl überall etwas eingegeben wurde)


    Hier der Code:


    Der Notruf Command:
    if(strcmp("/110", cmdtext, true) == 0)
    {
    ShowPlayerDialog(playerid,PNOTRUFGRUND,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib einen Grund für deinen Notruf an:","Weiter","Schließen");
    return 1;
    }


    Die Dialoge unter ondialogresponse:
    if(dialogid == PNOTRUFGRUND)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    new string[128];
    format(string,sizeof(string),"%s",inputtext[60]);
    pnotrufgrund[playerid] = string[120];
    ShowPlayerDialog(playerid,PNOTRUFVERD,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib die ID oder den Namen des Täters\noder des Verdächtigen an:\n(Sollten der Name und die ID unbekannt sein, gib 'unbekannt' ein)","Weiter","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFVERD)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    new string[128];
    format(string,sizeof(string),"%s",inputtext[60]);
    pnotrufverd[playerid] = string[120];
    ShowPlayerDialog(playerid,PNOTRUFZEUGE,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib die ID oder den Namen eines Zeugen an:\n(Sollte es keinen Zeugen geben, gib 'unbekannt' ein)","Weiter","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFZEUGE)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    new string[128];
    format(string,sizeof(string),"%s",inputtext[60]);
    pnotrufzeuge[playerid] = string[120];
    ShowPlayerDialog(playerid,PNOTRUFORT,DIALOG_STYLE_INPUT,"Polizei Notruf","Gib nun noch den Ort des Verbrechens an:\n(z.B. Burger Shot in LS)","Fertig","Schließen");
    return 1;
    }
    }
    if(dialogid == PNOTRUFORT)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    new string[128];
    format(string,sizeof(string),"%s",inputtext[60]);
    pnotrufort[playerid] = string[120];
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerInFraktion(i,1))
    {
    SendClientMessage(i,GELB,"****** NOTRUF *****");
    new sgrund[128];
    format(sgrund,sizeof(sgrund),"Verbrechen: %s",pnotrufgrund[playerid]);
    SendClientMessage(i,GELB,sgrund);
    new sverd[128];
    format(sverd,sizeof(sverd),"Verdächtige: %s",pnotrufverd[playerid]);
    SendClientMessage(i,GELB,sverd);
    new szeuge[128];
    format(szeuge,sizeof(szeuge),"Zeuge: %s",pnotrufzeuge[playerid]);
    SendClientMessage(i,GELB,szeuge);
    new sort[128];
    format(sort,sizeof(sort),"Tatort: %s",pnotrufort[playerid]);
    SendClientMessage(i,GELB,sort);
    SendClientMessage(i,GELB,"******************");
    }
    }
    }
    return 1;
    }
    }

    Hallo Leute,
    ich habe gerade ein System erstellt, das der Feuerwehr mehr Arbeit machen soll. Wenn ein Spieler mit seinem Auto einen Unfall baut, sodass das Auto anfängt zu brennen, soll das Leben des Autos immer wieder auf 24 gesetzt werden und der Spieler im Auto gefreezet sein (dies simmultiert einen Unfall, bei dem der Spieler im Auto eingeklemmt ist). Danach wird die Feuerwehr verständigt, welche den Auftrag mit "/accept feuer" annehmen kann. Sollte kein Ferwehrmann den Auftrag annehmen, so wird der Spieler nach 30 Sekunden entfreezet und aus dem Auto gerworfen (er konnte sich doch befreien) und der Timer, welcher das Auto repariert wird gestoppt. Das System ist eigentlich gut durchdacht, jedoch hängt es schon am Anfang. Wenn ein Auto brennt, wird weder die Feuerwehr verständigt, noch wird der Spieler gefreezet etc. Es klappt also nichts, da es schon ganz am Anfang Probleme gibt. Ich hoffe auf eure Hilfe.
    Hier die Scriptausschnitte:


    globale Variablen:
    new feuerKHT[MAX_PLAYERS]; //falls kein Feuerwehrmann annimmt Timer (benötigt um Timer zu stoppen)
    new feuerAHT[MAX_PLAYERS]; //Timer, welcher das Leben des Autos wieder auf 24 setzt (benötigt um Timer zu stoppen)


    new feuer[MAX_PLAYERS]; //falls das Auto eines Spielers brennt und schon alles aus der Schleife ausgeführt wurde, wird der Wert auf 1 gesetzt und die Schleife beim nächsten mal übersprungen


    new notrufid[MAX_PLAYERS] = 888; //damit wird die ID des Spielers, welcher einen Notruf abgibt gespeichert (benötigt für "/accept feuer")
    new Float:notrufx,Float:notrufy,Float:notrufz; //Koodinaten des Spielers, welcher den Notruf abgibt (benötigt um Checkpoint für Feuerwehrmann zu setzten, nachdem er "/accept feuer" gemacht hat)


    Der Timer, welcher prüft, ob das Auto brennt:
    Bei ongamemodeinit:
    public OnGameModeInit()
    {
    SetTimer("feuerT",1000,false); //Der Timer überprüft, ob das Auto eines Spielers brennt
    //...
    und der Timer an sich:
    forward feuerT();
    public feuerT()
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInAnyVehicle(i))
    {
    new Float:health[MAX_PLAYERS];
    new veh[MAX_PLAYERS];
    veh[i] = GetPlayerVehicleID(i);
    GetVehicleHealth(veh[i], health[i]);
    if(health[i] < 24) //Abfrage ob das Auto brennt
    {
    if(feuer[i] == 0) //Abfrage ob das Auto schon vorher brannte
    {
    TogglePlayerControllable(i,0); //Spieler wird gefreezet (weil er eingeklemmt ist)
    SendClientMessage(i,GELB,"Dein Auto brennt und du kannst dich nicht befreien! Ruf die Feuerwehr mit /112!");
    SendClientMessage(i,GELB,"Sollte keine Feuerwehr kommen, so kannst du in 30 Sekunden erneut versuchen dich zu befreien!");
    feuerAHT[i]=SetTimerEx("feuerTAH",1000,false,"i",i); //Timer der das Auto des Spielers repariert wird gestartet
    feuerKHT[i]=SetTimerEx("feuerTKH",30000,false,"i",i); //Timer falls kein Feuerwehrmann kommt wird gestartet
    feuer[i] = 1; //Wird auf 1 gesetzt, damit das oben ausgeführte nich wiederholt wird
    }
    }
    }
    }
    }
    SetTimer("feuerT",1000,false); //Timer welcher überprüft, ob das Auto brennt wird erneut gestartet
    return 1;
    }


    Der Reperatur Timer:
    forward feuerTAH(playerid);
    public feuerTAH(playerid)
    {
    new Float:health;
    new veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health < 24)
    {
    SetVehicleHealth(GetPlayerVehicleID(playerid),23); //Auto wird repariert
    feuerAHT[playerid]=SetTimerEx("feuerTAH",1000,false,"i",playerid); //Timer wird wiederholt
    return 1;
    }
    else
    {
    TogglePlayerControllable(playerid,1); //falls etwas falsch läuft kann der Spieler sich nun wieder bewegen
    return 1;
    }
    }


    Der Timer der den Spieler befreit, wenn kein Feuerwehrmann kommt:
    forward feuerTKH(playerid);
    public feuerTKH(playerid)
    {
    new Float:health;
    new veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health < 24)
    {
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,GRUEN,"Du konntest dich aus deinem Auto befreien!");
    KillTimer(feuerAHT[playerid]);
    feuer[playerid] = 0;
    return 1;
    }
    return 1;
    }


    Der Notruf Befehl (/112):
    Der Befehl an sich:
    if(strcmp("/112", cmdtext, true) == 0)
    {
    ShowPlayerDialog(playerid,NOTRUFFK,DIALOG_STYLE_LIST,"Wo möchtest du anrufen?","Feuerwehr\nKrankenhaus","Auswählen","Schließen");
    return 1;
    }
    Der Dialog des Befehls:
    if(dialogid == NOTRUFFK)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    switch(listitem)
    {
    case 0:
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerInFraktion(i,9)) //Feuerwehr
    {
    GetPlayerPos(playerid,notrufx,notrufy,notrufz);
    new string[128];
    format(string,sizeof(string),"%s braucht Hilfe von der Feuerwehr! ('/accept feuer' zum annehmen)",SpielerName(playerid));
    SendClientMessage(i,GELB,string);
    notrufid[i] = playerid;
    }
    }
    }
    }
    case 1:
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerInFraktion(i,2)) //Sanitäter
    {
    new string[128];
    format(string,sizeof(string),"%s braucht einen Krankenwagen! ('/accept heal' zum annehmen)",SpielerName(playerid));
    SendClientMessage(i,GELB,string);
    }
    }
    }
    }
    }
    }
    }


    Der "/accept feuer" Befehl:
    if(strcmp("/accept feuer", cmdtext, true) == 0)
    {
    if(IstSpielerInFraktion(playerid,9))
    {
    if(notrufid[playerid] != 888)
    {
    KillTimer(feuerKHT[notrufid[playerid]]); //Der Timer (falls kein Feuerwehrmann kommt) des Spielers der den Notruf abgegeben hat wird gestoppt
    new string[128];
    format(string,sizeof(string),"%s hat deinen Notruf angenommen und ist zu dir unterwegs!",SpielerName(playerid));
    SendClientMessage(notrufid[playerid],GRUEN,string);
    new stringp[128];
    format(stringp,sizeof(stringp),"Du hast den Notruf von %s angenommen! Seine Position wird dir nun auf der Karte angezeigt!",SpielerName(notrufid[playerid]));
    SendClientMessage(playerid,GRUEN,stringp);
    SetPlayerCheckpoint(playerid,notrufx,notrufy,notrufz,3); //Der Feuerwehrmann bekommt den Checkpoint angezeigt
    notrufid[playerid] = 888;
    return 1;
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Es hat niemand die Feuerwehr gerufen!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist nicht bei der Feuerwehr!");
    }
    }


    mfg
    Jan

    Hey Leute,
    ich bin gerade dabei den Beruf Trucker zu erstellen und es klappt auch alles außer dem Erkennen des Anhängers am Truck. Kann mir einer sagen wo der Fehler ist bzw. wie es richtig funktioniert?


    Hier der Code:
    if(strcmp("/tduty", cmdtext, true) == 0)
    {
    if(IstSpielerBeruf(playerid,6))
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 403)
    {
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid) == 591))
    {
    SetPlayerCheckpoint(playerid,2788.9285,-2417.5559,13.6334,3);
    SendClientMessage(playerid,GRUEN,"Fahre nun zum Hafen, um die Waren einzuladen!");
    twarenstrecke[playerid] = 1;
    return 1;
    }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid) == 584))
    {
    SetPlayerCheckpoint(playerid,2484.6812,-2113.6951,13.5469,3);
    SendClientMessage(playerid,GRUEN,"Fahre nun zum Hafen, um deinen Anhänger zu befüllen!");
    tbenzinstrecke[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du hast keinen Anhänger an deinem Truck!");
    SendClientMessage(playerid,ROT,"Besorge dir einen Waren oder Benzin Anhänger bei der Trucker Base!");
    return 1;
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du sitzt in keinem Truck!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Trucker!");
    }
    }

    Hey Leute,
    ich habe mich mal an nem Polizei Notruf versucht, jedoch tritt dort folgendes Problem auf:


    Der Spieler der /110... eingibt erhält die Nachricht dass der Fall der Polizei gemeldet wurde, jedoch kommt der Notruf bei den Beamten nicht an. Ist der Absender jedoch selbst Polizist, so erhält er als einziger den Notruf. Somit ist das System nutzlos und ich finde den Fehler nicht. Hoffe auf eure Hilfe. Hier der Code:



    dcmd_110(playerid, params[])
    {
    new text[128],ort[64],verbrecher,zeuge,beschreibung[64];
    if(sscanf(params,"suus",ort,verbrecher,zeuge,beschreibung))return SendClientMessage(playerid,BLAU,"Verwendung: /110 [Tatort][ID des Verbrechers][ID des Zeugen][kurze Beschreibung der Tat]");
    SendClientMessage(playerid,GRUEN,"Du hast soeben einen Notruf abgegeben! Die Polizei wird den Fall nun übernehmen!");
    for(new i=0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IstSpielerInFraktion(i,1))
    {
    format(text,sizeof(text),"***NOTRUF:**** Ort: %s || Verbrecher: %s || Zeuge: %s || Beschreibung der Tat: %s",ort,SpielerName(verbrecher),SpielerName(zeuge),beschreibung);
    SendClientMessage(i,GELB,text);
    return 1;
    }
    }
    }
    return 1;
    }


    mfg
    Jan

    xD die ist im sciptcode drin. die objecte heißen da "CreateObject" oder "CreateDynamicObject" und "RemoveObject" oder "RemoveDynamicObject"

    Richtig. Du musst mit MySQL arbeiten. In der Datenbank müssen dann die Spielerdaten von SAMP gespeichert werden. Danach kannst du sie umformatieren, sodass TS3 sie auslesen kann. Dies ist möglich, jedoch weiß ich auch nicht wie es genau geht.

    Dies ist meines Wissens nach unmöglich. Du kannst den Spielern nur eine Farbe zuweisen, welche sie dann auf der Map UND im TAB Menü haben.