Beiträge von Aleks

    Moin. Ich bin gerade dabei, mein GUI Banksystem zu scripten. Ein-/Auszahlen geht bereits. Nur möchte ich, dass man ebenfalls überweisen kann.
    Ich hab mir da bereits eine Lösung ausgedacht, die jedoch sehr umständlich wäre und die ich nur verwenden werde, wenn das gleich Gefragte nicht möglich ist.


    Ich habe folgendes vor:


    Der Nutzer schreibt folgendes in den Input-Dialog: [EmpfängerID],[Betrag]
    Dann wandel ich den Inputtext so um, dass er als Zahl gehandhabt wird mit:
    new Betrag = strval(inputtext);


    Frage: Kann ich den Input aufteilen, sodass er die ID herausfindet, sprich die Zahlen BIS zum Komma nimmt, und im nächsten Schritt den Betrag, sprich die Zahlen NACH dem Komma nimmt?


    Ich hab mit der SuFu nichts gefunden, sollte es aber trotzdem schonmal gelöst worden sein, bitte melden ;)


    MfG
    Aleks

    Ich stand vor einiger Zeit vor dem gleichen Problem und hab mich für den PC entschieden.
    Aus einfachen Gründen:


    - Für gleiches Geld viel mehr Leistung
    - Man kann immer wieder aufrüsten


    Selbst Argumente wie:


    - PC ist lauter als ein Laptop oder
    - schlechter zu transportieren


    müssen nicht zutreffen. Wenn man beim PC drauf achtet, dass eine gute Kühlung drin ist, ist die auch bei voller Belastung dementsprechen flüsterleise
    (Bei mir zumindest, und war nicht teuer). Mal abgesehen davon merkt man das nach einer Weile zocken garnicht mehr. Laptops hingegen drehen zeitweise richtig auf und werden lautstark,
    da bei denen durch wenig Platz viel mehr Abwärme produziert wird.
    Ich gehe öfters auf Lans und muss sagen, dass mich das Transportieren bisher nie gestört hat.
    Der Vorteil daran ist halt, dass man immer aktuelle Spiele mit seinen Kumpels spielen kann, was sich bei Laptops schwieriger gestaltet da da Aufrüstung schwerer ist.


    Ich meine sogar, dass sich der Grafikchip nicht austauschen lässt -> Wenn's nicht stimmt, bitte beschweren ;)


    MfG
    Aleks

    Hi,


    ich habe da mal ne Frage. Und zwar wollte ich für mein RL-Gamemode das ich gerade schreibe, ein spezielles Todessystem machen. Und zwar, sollte ein anderer Spieler umgebracht werden, will ich dass er liegen bleibt bis die Polizei den Mord anhand von abgeworfenen Items (Anzeige der DNA des Täters, bzw. Fingerabdrücke) aufklärt.
    Leider spawnt man direkt nach dem Tod.
    Lässt sich das umgehen?

    Hi,


    wie man Cars dem Namen eines Spielers zuweist ist klar, hab ich ja auch schon in der SuFu gefunden.
    Allerdings arbeite ich gerade an einem CarSystem. Der Spieler steigt in eines der beiden "Vorstellungsautos" ein, kauft es und es spawnt am Ausgabepunkt.
    Wie mache ich es, dass dieses Auto nur von dem Käufer gefahren werden kann?



    MfG und danke schonmal,


    Aleks

    Hi, ich hoffe ihr könnt mir helfen.
    Und zwar bin ich grade dabei ein einfaches Car System aufzubauen, andere Dinge wie Tuning Teile usw. werde ich dann irgendwann später ergänzen. Aber jetzt gehts mir nur darum, dass das Grundgerüst funktionert, was es bis auf eine Kleinigkeit auch tut.


    Wenn man in ein Auto steigt, dann bekommt man einen Dialog angezeigt: "Willst du dieses Auto für XX SA$ kaufen?" [Ja][Nein]
    Das funktioniert bis dahin, das Geld wird abgezogen, aufs Biz eigezahlt und das Auto spawnt am Ausgabeplatz.
    So da das Auto ja nicht für jeden zugänglich sein soll, hab ich gedacht, dass ich die Autos mit einer Vehicleid über 700 spawnen lasse, und die Vehicleid dann im Accountfile eingetragen wird. Das funktioniert auch, bei mir ist 701 eingetragen. Das wiederum speichert er gleichzeitig in einer anderen Datei, auf deren Inhalt dann aufgebaut wird damit nach und nach 702,703,704...usw. zugewisen wird.
    Aber dem Auto wird die ID 701 nicht zugewiesen sondern letztenendlich 39. Das ist das Problem. Und weil OnPlayerStateChange auf ID's über 700 greifen soll und prüfen soll ob das Auto jmd. speziellen gehört (Alle IDs über 700), greift das System dort nicht und lässt wildfremde Leute mit dem Auto fahren.


    Jetzt mal meine Frage: Worin liegt mein Fehler im Code?
    -> Und vlt. als kleiner Zusatz: Wie wäre es besser Autos den Spielern zuzuweisen?


    Aber hier mal der Code:


    if(vehicle == AHSF1)
    {
    new Model = GetVehicleModel(vehicle);
    new Account[256];
    GetPlayerName(playerid, playrname, sizeof(playrname));
    format(Account, sizeof(Account), "Accounts/%s.ini", playrname);

    new CarIDsd = dini_Int("CarID.ini", "ID");

    new CarID = CarIDsd + 1;

    dini_IntSet(Account, "CarOwner", 1);
    dini_IntSet(Account, "CarModel", Model);
    dini_IntSet(Account, "CarID", CarID);

    dini_IntSet("CarID.ini", "ID", CarID);

    SendClientMessage(playerid, COLOR_BLUE, "-> Glückwunsch, du hast dieses Auto gekauft!");

    GivePlayerMoney(playerid, -Price1);

    new SD = dini_Int("Biz/6.ini", "Kasse");
    dini_IntSet("Biz/6.ini", "Kasse", SD+Price1);


    CarID = CreateVehicle(Model,-1984.1594,302.8695,35.0092,88.3266, 0, 0, 800);


    // CarID zum test anzeigen lassen
    new msg[256];
    format(msg, sizeof(msg), "CarID: %d", CarID);
    SendClientMessage(playerid, COLOR_LIGHTRED, msg);
    // ==============

    TogglePlayerControllable(playerid, true);
    RemovePlayerFromVehicle(playerid);
    }


    Wär schön wenn ihr mir helfen könntet...
    mfg
    Aleks

    Hi,


    füg das mal unten in dein Script ein, unter die publics:


    stock ini_GetKey( line[] )
    {
    new keyRes[128];
    keyRes[0] = 0;
    if ( strfind( line , "=" , true ) == -1 ) return keyRes;
    strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
    return keyRes;
    }


    stock ini_GetValue( line[] )
    {
    new valRes[128];
    valRes[0]=0;
    if ( strfind( line , "=" , true ) == -1 ) return valRes;
    strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
    return valRes;
    }



    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Müsste funktionieren.


    Mfg
    Aleks

    sry dass ich den Thread nochmal ausgrabe. Hab aber ein ähnliches Problem wie mein Vorredner.


    Ich hab eine Telemaut (Automatisch Geld abziehende Maut) mithilfe eines Timers und PlayerToPoint gemacht. Nur leider Funktioniert die Maut nur mit ID0.
    Woran liegt das?


    public Maut(playerid)
    {
    new stringziel[256];
    new playrname[MAX_PLAYER_NAME];


    if(PlayerToPoint(5.0, playerid, 144.2668,-1374.6394,49.6506) || PlayerToPoint(5.0, playerid, 1181.9232,-677.2064,62.3592))
    {
    GetPlayerName(playerid, playrname, sizeof(playrname));
    format(stringziel, sizeof(stringziel), "%s Setting.ini", playrname);
    new number = dini_Int(stringziel, "Maut");
    if(number == 1)
    {
    }
    else if(number == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "TELEMAUT: Du hast die Mautstation passiert. Kosten: 25$ . Bitte fahre weiter zur Entwerungsstation!");

    GivePlayerMoney(playerid, -25);
    new schondrin = dini_Int("Maut.ini", "Kasse");
    dini_IntSet("Maut.ini", "Kasse", schondrin+25);
    dini_IntSet(stringziel, "Maut", 1);
    }
    }
    return 1;
    }

    Hi Community ;)


    bin gerade am erstellen eines RealLife Scriptes und bin nun auf einen Makeleader Befehl hier im Forum gestoßen.
    Hab es ein wenig geändert, nun speichert er das Team und ob man Leader ist in eine Datei.
    Allerdings bekomme ich immer einen Fehler:


    Scriptausschnitt:
    if(!strcmp(strget(cmdtext,0),"/makeleader"))
    {
    new teamid = strval(strget(cmdtext,2));
    {
    if(IsPlayerAdmin(playerid))
    {
    gLeader[ziel] = teamid;
    new stringziel[256];
    GetPlayerName(playerid, playrname, sizeof(playrname));
    format(stringziel, sizeof(stringziel), "%s Setting.ini", playrname);

    if(teamid==1) { SetPlayerSkin(ziel,282);}
    {
    dini_IntSet(stringziel, "Fraktion", 1);
    dini_IntSet(stringziel, "Leader", 1);
    }
    else
    {
    if(teamid==2) { SetPlayerSkin(ziel,163);}
    {
    dini_IntSet(stringziel, "Fraktion", 2);
    dini_IntSet(stringziel, "Leader", 1);
    }

    SendClientMessage(ziel,COLOR_GREEN,"Du wurdest zum Leader einer Fraktion ernannt!");
    }
    }
    }
    return 1;
    }


    Fehler:
    C:\Users\Aleks\Desktop\AC-RealLife v1_0\gamemodes\AC-ReaLLife.pwn(515) : error 029: invalid expression, assumed zero
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    In diesem Fall stimmt die Zeilenzahl nicht. Er streicht mir das "else" als Fehler an. Wieso? Ich hab schon alles versucht aber es einfach nicht hingekrigt. Würde da kein Else stehen, würde er ja über z.B "Fraktion" = 1, "Fraktion" = 2 drüber schreiben.


    Ich hoffe ihr könnt mir helfen,


    mfG Aleks