Beiträge von Phyber

    Habe das ganze nicht getestet, sollte aber so klappen :)
    Du musst eig nur bei sscanf erweitern...


    dcmd_su(playerid,params[]){
    if(SpielerInfo[playerid][sFraktion] == TEAM_POLIZEI || SpielerInfo[playerid][sFraktion] == TEAM_FBI || SpielerInfo[playerid][sFraktion] == TEAM_SFPD || SpielerInfo[playerid][sFraktion] == TEAM_Bundeswehr){
    new ID,Anzahl,Verbrechen[64];
    if(!sscanf(params,"uis[64]",ID,Anzahl,Verbrechen)){
    if(IsPlayerConnected(ID) && SpielerInfo[playerid][sEingeloggt]){
    if(IsAStateFaction(SpielerInfo[ID][sFraktion]))
    return SendClientMessage(playerid,Farbe_Grau,"Du kannst keine Staatsdiener Gesuchtenlevel geben.");
    if(SpielerInfo[ID][sGefangen] == 1)
    return SendClientMessage(playerid,Farbe_Grau,"Dieser Spieler ist bereits im Knast.");
    if(SpielerInfo[ID][sWantedlevel] >= 25)
    return SendClientMessage(playerid,Farbe_Grau,"Der Spieler hat die maximal anzahl an Wantedlevel bereits erreicht.");
    SpielerInfo[ID][sWantedlevel]++;
    SpielerInfo[ID][sVerbrechen]++;
    if(SpielerInfo[ID][sWantedlevel] <= 6)
    SetPlayerWantedLevel(ID,SpielerInfo[playerid][sWantedlevel]);
    new Text[255];
    format(Text,sizeof(Text),"Du hast ein Verbrechen begangen ( %s ). Reporter: [%s].",Verbrechen,SpielerInfo[playerid][sName]);
    SendClientMessage(ID,Farbe_Leuchtrot,Text);
    SetPlayerWantedLevel(ID,SpielerInfo[ID][sWantedlevel]);
    format(Text,sizeof(Text),"Derzeitiges Wantedlevel: %d",SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(ID,Farbe_Gelb,Text);
    format(Text,sizeof(Text),"%s hat %s %i Wanted(s) gegeben, Grund: %s.",SpielerInfo[playerid][sName],SpielerInfo[ID][sName],Anzahl,Verbrechen);
    EnterToLog("Wanted",Text);
    ForAllPlayers(i){
    if(SpielerInfo[i][sEingeloggt]){
    if(SpielerInfo[i][sFraktion] == TEAM_POLIZEI || SpielerInfo[i][sFraktion] == TEAM_FBI || SpielerInfo[i][sFraktion] == TEAM_SFPD || SpielerInfo[i][sFraktion] == TEAM_Bundeswehr){
    format(Text,sizeof(Text),"** [Zentrale] | An alle Einheiten: Reporter: %s, over. **",SpielerInfo[playerid][sName]);
    SendClientMessage(i,0x8D8DFF00,Text);
    format(Text,sizeof(Text),"** [Zentrale] | Verbrechen: %s, Gesuchter: %s, Neues Wantedlevel: %d, over **", Verbrechen, SpielerInfo[ID][sName], SpielerInfo[ID][sWantedlevel]);
    SendClientMessage(i,0x8D8DFF00,Text);
    }
    }
    }
    }else SendClientMessage(playerid,Farbe_Grau,"Der gewählte Spieler ist nicht online.");
    }else SendClientMessage(playerid,Farbe_Grau,"Benutze: '/su(spect) [Playerid/Name] [Verbrechen]'");
    }else SendClientMessage(playerid,Farbe_Grau,"Das darfst du nicht!");
    return true;
    }

    Hallo,


    mit diesem Thread veröffentliche ich meinen Taschenrechner.
    Der Taschenrechner kann via /taschenrechner gestartet werden. Es startet ein Dialog, in dem man Zahl 1 eingibt, danach Zahl 2, und danach dann die Rechenart (Plus,Minus,Geteilt & Mal). Das Ganze ist NICHT GETESTET und muss noch in euren Gamemode eingebaut werden. Supportet wird das ganze von mir nicht, es ist mehr ein (fertig brauchbarer) Codeschnipsel. Wenn ihr nicht wisst, wie man das einbaut, dann schaut euch bitte die Grundlagen an :thumbup:


    Ansonsten viel Spaß mit dem wirklich kleinen Script.


    LG
    Phyber

    Spoiler anzeigen

    //Phybers Taschenrechner - ungetestet!
    #error "Farbe einsetzten nicht vergessen!"; //Wenn ihr alles in grün wollt, diese Zeile einfach löschen.

    Spoiler anzeigen
    #include <sscanf> //Ich denke mal das sollte klar sein
    #define Farbe 0x99ff99ff //habe jetzt einfach mal grün für alles genommen (:
    #define Zahl1_Dia 1 //Dialog für die erste Zahl
    #define zahl2_Dia 2 //Dialog für die zahl2te Zahl
    #define Rechenart_Dia 3 //Dialog zum auswählen der Rechenart (+,-,*,/)

    Spoiler anzeigen
    new Zahl1[MAX_PLAYERS];
    new zahl2[MAX_PLAYERS];

    Spoiler anzeigen
    public OnPlayerConnect(playerid)
    {
    Zahl1[playerid] = 0;
    zahl2[playerid] = 0;
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerDisconnect(playerid, reason)
    {
    Zahl1[playerid] = 0;
    zahl2[playerid] = 0;
    return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if (dialogid==1)
    {
    if(response==0)
    {
    SendClientMessage(playerid, FARBE, "Du hast den Vorgang abgebrochen.") ;
    return 1;
    }
    if(response==1)
    {
    Zahl1[playerid]=inputtext;
    ShowPlayerDialog(playerid,2, DIALOG_STYLE_INPUT, "Taschenrechner", "Bitte gebe Zahl 2 ein:", "Weiter", "Abbrechen");
    return 1;
    }
    }
    if (dialogid==2)
    {
    if(response==0)
    {
    SendClientMessage(playerid, FARBE, "Du hast den Vorgang abgebrochen.") ;
    return 1;
    }
    if(response==1)
    {
    Zahl2[playerid]=inputtext;
    ShowPlayerDialog(playerid,3, DIALOG_STYLE_LIST,"Taschenrechner", "Addieren (+)\nSubtrahieren (-)\nMultiplizieren (*)\nDividieren (/)", "Ergebnis", "Abbrechen");
    return 1;
    }
    }
    if (dialogid==3)
    {
    if(response==0)
    {
    SendClientMessage(playerid, FARBE, "Du hast den Vorgang abgebrochen.") ;
    return 1;
    }
    if(response==1)
    {
    switch(listitem)
    {
    new string[40];
    case 0: //Addieren
    {
    format(string,sizeof(string,"[Addieren] %i + %i = %i",Zahl1,zahl2,Zahl1+zahl2))
    SendClientMessage(playerid,FARBE,string);
    }
    case 1: //Subtrahieren
    {
    format(string,sizeof(string,"[Subtraktion] %i - %i = %i",Zahl1,zahl2,Zahl1-zahl2))
    SendClientMessage(playerid,FARBE,string);
    }
    case 2: //Multiplizieren
    {
    format(string,sizeof(string,"[Multiplikation] %i * %i = %i",Zahl1,zahl2,Zahl1*zahl2))
    SendClientMessage(playerid,FARBE,string);
    }
    case 3: //Dividieren
    {
    format(string,sizeof(string,"[Dividieren] %i / %i = %i",Zahl1,zahl2,Zahl1/zahl2))
    SendClientMessage(playerid,FARBE,string);
    }
    }
    }
    return 1;
    }

    Spoiler anzeigen
    if(strcmp("/rechner"),cmdtext))
    {
    Zahl1[playerid] = 0;
    zahl2[playerid] = 0;
    ShowPlayerDialog(playerid,1, DIALOG_STYLE_INPUT, "Taschenrechner", "Bitte gebe Zahl 1 ein:", "Weiter", "Abbrechen");
    return 1;
    }

    Vielen Dank für die positive Kritik, wegen den Tasten "q und e", diese habe ich ausgewählt, da man während man fährt da gut drankommt. Wenn man die nur kurz anklickt, stört das auch nicht, dass man ingame ganz kurz nach links schaut (finde ich).


    Ja, viele haben mich kontaktiert über Skype und da viele Probleme einfach "Anfängerfehler" sind, möchte ich hier noch kurz die meisten Fehler zusammenfassen:


    Zitat

    Warum bekomme ich den Warning "loose indentation"

    Loose Indetation bedeutet einfach, dass ihr den Script nicht eingerückt habt.


    1. PWN vom Filterscript öffnen
    2. mit Tap (die Taste links neben q = die beiden Pfeile) den Script einrücken.

    Zitat

    Der Server ist gestartet, aber der Filterscript funktioniert einfach nicht

    1. Bitte überprüfe, ob der Filterscript in deinem GTA Server Ordner korrekt abgespeichert ist (in filterscripts)
    2. Überprüfe ob in dem Filterscripts Ordner die ".amx" Datei ist.
    3. Überprüfe, ob in der server.cfg unter Filterscripts mein Script steht (Dieser heißt wie die .amx Datei, ohne das .amx -> z.B. Bla.amx ist dann in der Server.cfg einfach nur Bla).


    Zitat

    Das Blinkersystem klappt, jedoch geht kein Command mehr

    Bitte downloade dir die neuste Version des Filterscripts oder füge den Script in deinen Gamemode ein.





    Falls noch Probleme sind, im Filterscript ist mein Skypename. Ansonsten hier übers Forum ne PN schreiben, jedoch bin ich in letzter Zeit hier wenig aktiv = Skype ist schneller ;) :thumbup:

    Warum wollt ihr das denn als Filterscript? Ihr müsst doch nur einfach nur das kopieren und einfügen? Und wenn ihr nicht wisst wo, dann solltet ihr euch erstmal die Grundlagen anschauen, weil das ist wirklich Kindergarten... Wie soll ein Server denn was werden, wenn ihr nichtmal wisst wo ihr was reinkopieren müsst?

    Ein paar mehr Details wären cool:


    Wer bist du?
    Wie alt bist du?
    Wer finanziert das ganze?
    Mit wie vielen User rechnest du?
    Bereits Erfahrung?


    Wenn du das nicht geklärt hast, wird sich (außer Admingeilen Kindern) keiner bei dir melden... :)


    Viel Erfolg bei deiner Suche.

    Du nimmst die Datein, fügst die in Filterscripts rein. Öffnest deine server.cfg und schreibst dort JunkBuster rein (unter filterscripts) - server restarten fertig.


    Diese Antwort gibts aber auch 4000x hier auf diesem Forum. Also lies doch einfach mal die andereren Themen.

    Also ich hab das ganze ja programmiert, was du haben möchtest und ich baue dir das ganze gerne ein. Meld dich in Skype bei mir, die addy steht in dem Filterscript drinnen.


    Tipp: Warte noch ein wenig, denn bald kommt version 2 raus ;D

    Hallo,


    ich bin auf der suche nach einem Autohaus.


    Es soll ein Pickup geben und wenn man rein rennt soll man die Autos durchschalten können (mit pfeil rechts und links oder ähnlich). Dann kaufen mit einer Taste (bevorzugt enter).


    Was mir noch wichtig ist:


    - Jeder Spieler kann 3 Autos haben, Premiumuser 5 (abfrage: IsPlayerAnPremium(playerid))
    - Die Autodatein werden in "scriptfiles/Autos/spielername_anzahlautos.txt" gespeichert. //also beim Spieler Test: Test_1.txt für das erste auto und beim zweiten: Test_2.txt für das zweite Fahrzeug
    - Das Tuning, die Autofarbe, etc wird gespeichert
    - man kann autos nur X mal kaufen, danach kommt ne Meldung "Dieses Auto ist ausverkauft".
    - Schlüsselsystem
    - carlocksystem
    - Verkaufssystem per dialog (An wen willst du es verkaufen, für wie viel)


    Das einfügen der Autos soll in einer datei passieren (am besten ne ini oder txt) nach diesem Muster: (Fahrzeugid,preis,maximale anzahl des autos)


    Preisvorstellung: offen, ich freue mich auf eure Verschläge
    Das ganze bitte als Filterscript und nur für mich! Dieses Autohaus soll es nur auf meinem Server geben!


    Bei Fragen bitte hier drunter posten.


    MFG
    Phyber

    nun unter deinem "public tot" schreibst du extakt 1 Zeile rein am besten ganz oben


    if( ConnectSpawn[playerid] == 0) return 1;

    das public tot ist dafür da, um den Spieler aus dem KH zu entlassen^^
    Ich habs in OnPlayerDeath rein. Vielen Dank, werde es jetzt testen :thumbup:

    public OnPlayerSpawn(playerid)
    {
    //Removes von Helm,Schild, etc und beginn vom Tut...
    if(pFirstLog[playerid] == false) //wenn nicht das erste mal eingeloggt
    {
    if(GetPVarInt(playerid,"prisontime") > 1) //Prison
    {
    SetPlayerPos(playerid,271.9027,1859.7306,8.7649);
    SendClientMessage(playerid,rot,"Es wird nicht ausgebrochen!");
    }
    else
    {
    if(Knasti[playerid] == 1) //wenn er im knast ist...
    {
    SetPlayerPos(playerid,263.7476,77.6176,1001.0391); //Knast LSPD
    SendClientMessage(playerid,blau,"Polizist: Willkommen zurück im Gefängnis.");
    }
    else
    {
    if(Tot[playerid] == 1) //Wenn er Tot ist
    {
    TogglePlayerControllable(playerid, 0);
    SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);
    SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);
    SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);
    SetPlayerInterior(playerid, 0);
    SendClientMessage(playerid,weis,"~~~~~> Krankenhaus <~~~~~");
    SendClientMessage(playerid,weis,"Du bist nun im Krankenhaus. Du wirst gerade behandelt und darfst das Krankenhaus");
    SendClientMessage(playerid,weis,"nicht verlassen bis die Ärzte mit der Untersuchung fertig sind. Dieser Vorgang");
    SendClientMessage(playerid,weis,"wird eine Zeit von mindestens zwei Minuten nach sich ziehen.");
    SendClientMessage(playerid,weis,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    KHTimer = SetTimerEx("tot",120000,0,"i",playerid);
    }
    else
    {
    if(isPlayerInFrakt(playerid,0)) //Zivi
    {
    SetPlayerPos(playerid,1641.7704,-2238.1873,13.4986);
    SetPlayerSkin(playerid,21);
    SetPlayerColor(playerid,weis);
    }
    if(isPlayerInFrakt(playerid,1)) //LSPD
    {
    SetPlayerColor(playerid,0x009BFFFF);
    SetPlayerPos(playerid,217.0080,81.8994,1005.0391);
    SetPlayerArmour(playerid,100);
    SetPlayerInterior(playerid,6);
    if(GetPVarInt(playerid,"Leader")==1)
    {
    SetPlayerSkin(playerid,283);
    SetPVarInt(playerid,"Frakrang",6);
    }
    else
    {
    SetPlayerSkin(playerid,281);
    }
    }
    //... usw

    Ich hab ein kleines Problem:


    Und zwar stirbt man manchmal nach dem Connecten und landet im Krankenhaus. Wie kann ich das machen, dass man nicht stirbt?


    forward tot(playerid);
    new Tot[MAX_PLAYERS]; //Krankenhaus
    public tot(playerid)
    {
    SetPlayerPos(playerid,1178.3859,-1324.1239,14.1175);
    SetPlayerHealth(playerid,100);
    GivePlayerMoney(playerid,-150);
    SendClientMessage(playerid,weis,"~~~~~> Krankenhaus <~~~~~");
    SendClientMessage(playerid,weis,"Du wurdest entlassen.");
    SendClientMessage(playerid,weis,"Kosten der Behandlung 150$");
    Tot[playerid] = 0;
    if(isPlayerInFrakt(playerid,0)) //Zivi
    {
    SetPlayerPos(playerid,1641.7704,-2238.1873,13.4986);
    SetPlayerSkin(playerid,21);
    SetPlayerColor(playerid,weis);
    }
    if(isPlayerInFrakt(playerid,1)) //LSPD
    {
    SetPlayerColor(playerid,0x009BFFFF);
    if(GetPVarInt(playerid,"Leader")==1)
    {
    SetPlayerSkin(playerid,283);
    SetPVarInt(playerid,"Frakrang",6);
    }
    else
    {
    SetPlayerSkin(playerid,281);
    }
    }
    if(isPlayerInFrakt(playerid,2)) //Army
    {
    SetPlayerColor(playerid,0x00FF00FF);
    if(GetPVarInt(playerid,"Leader")==2)
    {
    SetPlayerSkin(playerid,287);
    SetPVarInt(playerid,"Frakrang",6);
    }
    else
    {
    SetPlayerSkin(playerid,287);
    }
    }
    if(isPlayerInFrakt(playerid,3)) //Ballas
    {
    SetPlayerColor(playerid,weis);
    if(GetPVarInt(playerid,"Leader")==3)
    {
    SetPlayerSkin(playerid,103);
    }
    else
    {
    SetPlayerSkin(playerid,104);
    }
    }
    if(isPlayerInFrakt(playerid,4)) //Grove Street, GS
    {
    SetPlayerColor(playerid,weis);
    if(GetPVarInt(playerid,"Leader")==4)
    {
    SetPlayerSkin(playerid,270);
    }
    else
    {
    SetPlayerSkin(playerid,269);
    }
    }
    if(isPlayerInFrakt(playerid,5)) //Fahrschule
    {
    SetPlayerColor(playerid,weis);
    if(GetPVarInt(playerid,"Leader")==5)
    {
    SetPlayerSkin(playerid,171);
    }
    else
    {
    SetPlayerSkin(playerid,240);
    }
    }
    SendClientMessage(playerid,weis,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    TogglePlayerControllable(playerid,true);
    SetCameraBehindPlayer(playerid);
    return 1;
    }


    // OnPlayerDeath(playerid, killerid, reason)
    Tot[playerid] = 1;


    Danke :) Kann geschlossen werden :thumbup:


    //edit:
    Es klappt, aber da fehlt noch die playerid...
    Also für alle die das benutzen wollen:


    Der stock:
    stock GetDriver(playerid,vehicleID)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER && vehicleID == GetPlayerVehicleID(playerid))
    return i;
    }
    return -1;
    }


    Die Abfrage:
    if(GetDriver(playerid,GetPlayerVehicleID(playerid)) != -1)
    {
    //Fahrer ist vorhanden
    }