Beiträge von lollipop

    Mal was anderes zudem schöne umsetzung 8/10 da die Tore nicht
    wikrlich zu dem Haus passen da würde ein kleiner Käfig besser aussehen ;D
    Mit freundlichen Grüßen
    Sven

    Man kann nur mit PSC zahlen?
    Dann solltest du eher ein Mappingservice anbieten das man für
    10€ auf etwas im Wert von 10€ bekommt und nicht eine Map.
    Mir währe die Map nicht mehr als 1-2€ Wert und da man nur mit PSC zahlen kann
    ist das total überteuert. Die Map ist teilweise unrealittisch und nicht wikrlich was besonderes.
    Deine Map hebt sich in keinster weise von einem andern Noobspawn hier im Forum ab.
    zudem kann man auf den Screens nicht erkennen ob Objecte schweben oder etwas unsauber gemappt ist
    da sie von so einer entfernung gemacht worden sind das man es niocht erkenne kann.
    Zudem die Vorstellung an der sieht man das es nichts ist. Wie lang haste für Map+Vorstellung gebraucht?
    5Minuten? 10Minuten?
    Mit freundlichen Grüßen
    Sven

    if (strcmp(cmdtext, "/motor", true)==0)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(GetVehicleModel(vid) == 509 || GetVehicleModel(vid) == 481 || GetVehicleModel(vid) == 510)
    {
    SendClientMessage(playerid, COLOR_RED, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
    }
    else if(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET)
    {
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,0xFF0000,"Du hast den Motor angeschaltet!");
    }
    else
    {
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,0xFF0000,"Du hast den Motor ausgeschaltet!");
    }
    }
    return 1;
    }
    War das wirklich so schwer?
    Und wenn du dir vieles angeguckt hast biste bestimmt darauf gestoßen:
    SetVehicleParamsEx
    Mit freundlichen Grüßen
    Sven

    Wann geht der Bus nicht?
    bei meinem oder Deadwalkers Code?


    Deadwalker hat ein Return 1;
    in die abfrage eingefügt die hattest du nicht.
    Trotzdem ist meine kürzer und erfüllt den gleichen zweck.



    Mit freundlichen Grüßen
    Sven

    Wofür die Abfrage?:

    if(SpielerInfo[playerid][pTeam] == 1) { }

    Machs doch einfach so:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new newcar = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(IsACopCar(newcar))
    {
    if(SpielerInfo[playerid][pTeam] != 1)
    {
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    return 1;
    }

    Dann verschieben sie die IDS typischer GF bug(will nicht behaupten das du GF nutzt)
    Connectet der Bot?
    Ansonsten guck ma hier im Tutorial nach:
    [ SCRIPTING ] Samp 0.3 Bots Erstellen [überarbeitet]
    //edit 1
    Also willste das der Bot als LSPD Car gezählt wird?
    Falls ja dann sollte es so auch gehn:
    new veh = GetPlayerVehicleID(playerid);
    if(veh == Bus1)
    {
    if(SpielerInfo[playerid][pTeam] != 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied der Polizei!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }


    //edit 2 //edit 1 hinzugefügt

    Nein ist nicht von nem Tutorial Selfmade...
    Bei mir geht es trotzdem.
    Wenn du meinst das es Tutorial ist ok torotzdem ist und belibt es Selfmade sprich von mir gemacht.
    Mit freundlichen Grüßen
    Sven

    So sollte es gehn:


    Mach anstatt IsACopCar:
    new Polizeiautos[20];
    Bei OnGameModeInit:
    Polizeiautos[0] = CreateVehicle();
    Polizeiautos[1] = CreateVehicle();//usw.
    Dann machste bei OnPlayerStateChange
    new veh = GetPlayerVehicleID(playerid);
    for(new v = 0; v < sizeof(Polizeiautos); v++)
    {
    if(veh == Polizeiautos[v])
    {
    if(SpielerInfo[playerid][pTeam] != 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied der Polizei!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
    }
    So brauchste das public IsACopCar bzw. den Timer nicht ;D
    Bei mir funktioniert es underbar.
    mit freundlichen Grüßen
    Sven



    P.S.:Den Code des Geldes bitte per Pn will unbedingt Tomb Raider bei Steam kaufen...


    //edit 1 Etwas vergessen

    Bei Steam kannste auf mit PSC zahlen.
    Solche Threads finde ich total unnötig einfach ma bei Steam schauen...
    Mit freundlichen Grüßenn
    Sven

    |GXR|B3ar
    Es ist nich wirklich komplizierter. Der unterschied ist der das man bei mir InGame als Leader der Fraktion das Passwort ändern kann.
    Bei dem anderne Tutorial kann man das SCript nur im Script ändern ;D wems leichter fällt ok aber da muss man immer im Gamemode
    das Passwort ändern.
    Naja egal


    Blackybecks
    Ich seh das mal als Spam an anstatt ne Bewertung abzugeben oder so einfach nur ein Satz der falsch gebildet ist raussuchen und Spammen...


    Mit freundlichen Grüßen
    Sven

    Machs doch einfach so:
    Wenn die Straße so aussieht:
    _____________________________
    - - - - - - - - - - - - - - - - - - - - - - -
    _____________________________


    Dein Blitzer da wo das o ist steht:
    _____________________________
    - - - - - - - - - - - - o - - - - - - - - - -
    _____________________________
    Du willst die Richtung Plitzen in die der Pfeil neben dem o geht:
    _____________________________
    - - - - - - - - - - - - o - > - - - - - - - -
    _____________________________
    Dann geh doch einfach dort hin also anstatt:
    IsPlayerInRangeOfPoint(Da wo der Biltzer ist);
    Machste:
    IsPlayerInRangeOfPoint(Mitten auf der Straße wo es Blitzen soll also auch kleinere Radius);
    Mit freundlichen Grüßen
    Sven

    Guten Tag,
    heute möchte ich euch erklären wie man z.B. ein Fraktionstor mit einem Passwort versähen kann.
    Ich erkläre euch wie ihr es verändern könnte/wie man es abspeichert etc. Ok kommen wir zum wesentlichen:


    ...::Inhaltsverzeichnis:::...


    -Was brauchen wir?
    -Scripting+Erklärung


    ...::Was brauchen wir?::...


    Zuerst brauchen wir etwas um das Passwort zu speichern.
    Zur Abspeicherung nehmen wir Dini
    Hier ein Link:
    Download
    Tutorial
    Wir brauchen natürlich auch einen Dialog um das Passwort einzugeben
    Dann brauchen wir noch einige weitere Funktion:
    SendClientMessage
    CreateObject
    MoveObject
    AddStaticPickup
    Enum
    So im Grunde waren das die Hauptfunktionen die wir brauchen.
    Kommen wir nun zum Scripting.



    ...::Scripting+Erklärung::...


    Zu aller erst brauchen wir ein Enum um das Passwort zu Speichern:


    enum Tor_Passworter
    {
    Tor1/*,*///Das definiert das Passwort für das 1. Tor ihr könnt so weitere Tore ganz einfach hinzufügen und mit Passwörtern versehn dann dürft ihr aber das , nicht vergessen
    /* Tor2,
    Tor3//beim letzten darf nie ein Komma sein
    */
    }
    new tInfo[playerid][Tor_Passworter];


    Dann muss es ja geladen werden wenn wir den Gamemode betreten also laden wir aus der .ini Datei beim Connecten das Passwort raus:


    Falls ihr ein Login/Registersystem habt dann könnte man das mit einem stock machen also so:
    stock TorLaden(playerid)
    {
    new save[40];
    format(save,sizeof(save),"/Fraktionstore/Tore.ini",);
    format(tInfo[playerid][Tor1], 50, dini_Get(save, "Tor_Passwort1"));
    }
    Dann wenn die Account Sachen geladen werden nur noch:
    TorLaden(playerid);
    Vermutlich muss das bei euch zu OnGameModeInit
    Da wir ja nichts speichern müssen, kommen wir zum nächsten Schritt.
    Ihr müsst dafür dann in den Scriptfiles den Ordner:
    Fraktionstore erstellen


    Kommen wir nun zu den Toren. Zuerst müssen wir sie definieren:
    new Fraktionstor[1]; //Wenn ihr die Zahl in den Klammern: [] verändert könnt ihr die Tore ganz einfach vermehren.


    So wir haben nun die Tore definiert dann müssen wir noch ein Tor bei OnGameModeInit einfügen also:
    Fraktionstor[0] = CreateObject(Modelid,X,Y,Z,RotationX,RotationY,RotationZ);
    Die Funktion könnt ihr nachlesen ansonsten ist es denke ich gut genug erklärt


    Dann wollen wir ja das das Tor sich von alleine schließt also erstellen wir noch ein forward:
    forward TorTimer();
    Kommen wir nun zu dem Dialog. Zuerst wollen wir sobald man das Pickup neben dem Tor betritt der Dialog mit dem Passwortfeld erscheint also erstellen wir ein Pickup:
    new TorPickup;


    Dann müssen wir bei OnGameModeInit das Pickup erstellen mit dem new haben wir es nur definiert:
    TorPickup = AddStaticPickup(Pickupid,Respawntyp,X,Y,Z,Virtuelle Welt);
    Ok jetzt müssen wir ja es so programmieren das sobald wir das Pickup betreten das der Dialog erscheint also gehen wir zu dem public OnPlayerPickupPickup und fügen das ein:
    Zuerst müssen wir aber noch den Dialog definieren:
    #define TorDialog Dialogid//Bitte die Dialogid anpassen
    if(pickupid == TorPickup) //if() stellt in nahezu allen fällen eine if/else abfrage da pickupid == TorPickup fragt ab ob es dieser Dialog ist
    {
    ShowPlayerDialog(playerid,TorDialog,DIALOG_STYLE_INPUT,"Fraktionstor","Bitte gib nun das Passwort für das Fraktionstor ein","Bestätigen","Abbrechen");
    }
    Ok soweit sind wir nun fertig. Jetzt brauchen wir nur noch den Timer und das was passieren soll wenn man Bestätigen drückt.
    Also gehen wir nun zu OnDialogResposne:
    Dort müssen wir nun das hier einfügen:
    if(dialogid == TorDialog)
    {
    if(response)
    {
    new save[128];
    format(save,sizeof(save),"/Fraktionstore/Tore.ini",);
    format(tInfo[playerid][Tor1], 50, dini_Get(save, "Tor_Passwort1"));
    if(strcmp(inputtext, tInfo[playerid][Tor1], true)) //Wenn das Passwort nicht mit dem gespeicherten übereinstimmt
    {
    ShowPlayerDialog(playerid,TorDialog,DIALOG_STYLE_INPUT,"Fraktionstor","Du hast ein falsche Passwort eingegeben.\nBitte gib nun bitte das richtige ein","Bestätigen","Abbrechen");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    else if(!strcmp(inputtext, tInfo[playerid][Tor1], true)) //Wenn das Passwort mit dem gespeicherten übereinstimmt
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast das richtige Passwort eingegeben es bleibt nun 5 Sekunden offen");
    MoveObject(Fraktionstor[1],X,Y,Z,Geschindigkeit,RotationsX,RotationsY,RotationsZ);//Bewegt das Objekt an die Position wenn es offen ist
    SetTimer("TorTimer",5000, 1); //Startet den Timer
    }
    }
    }


    Da wir die Farbe Rot noch definieren müssen sieht das dann so aus:
    #define COLOR_RED 0xAA3333AA


    Kommen wir nun zu dem public für den Timer:
    public TorTimer
    {
    MoveObject(Fraktionstor[1],X,Y,Z,Geschindigkeit,RotationsX,RotationsY,RotationsZ);
    SendClientMessage(playerid,COLOR_RED,"Das Tor ist nun wieder geschlossen");
    }



    Ihr wollt nun zu letzt bestimmt wissen wie ihr das Passwort ändern könnt oder?
    Wir definieren den Dialog:
    #define PasswortAnderTor Dialogid//Bitte die Dialogid anpassen

    Das machen wir am einfachsten mit einem Befehlt:
    if(strcmp("/changetorpw",cmdtext,true) == 0)
    {
    if(SpielerLeader == 1) //bitte anpassen und abfragen ob er ein Fraktionsleader ist
    {
    ShowPlayerDialog(playerid,PasswortAnderTor,DIALOG_STYLE_INPUT,"Passwort ändern","Bitte gib nun das neue Fraktionstorpasswort:","Weiter","Abbrechen");
    }
    return 1;
    }
    Ok jetzt gehen wir zu dem Dialog:
    if(dialogid == PasswortAnderTor)
    {
    if(response)
    {
    new save[128],string[128];
    format(save,sizeof(save),"/Fraktionstore/Tore.ini",);
    if(!strlen(inputtext))
    {
    }
    dini_Set(save,"Passwort",inputtext);
    strmid(pInfo[playerid][passwort], inputtext, 0, strlen(inputtext)-1, 255);
    format(string, sizeof(string), "Du hast dein Passwort erfolgreich geändert.\n Dein neues Passwort ist: %s",pInfo[playerid][passwort]);
    SendClientMessage(playerid,COLOR_RED,string);
    }
    }


    Ich hoffe ich konnte euch mit diesem Tutorial helfen.
    Mit freundlichen Grüßen
    Sven
    //edit 1 Code versucht einzurücken
    //edit 2 //edit 1 hinzugefügt
    //Edit 3 Beitrag buggt rum da steht sind mehr als 20.000Zeichen obwohl es nicht mal 8000 sind...