[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Dann erklär mal genauer was du willst. Hab dich immernoch nicht 100% verstanden.
    Wenn du die Buchstaben einzelnt speichern willst,aus welchem Grund auch immer, dann kannst du sie als Integer speichern.
    new iASCII;
    iASCII = cmd[i];
    dini_IntSet("Datei.endung","Buchstabe",iASCII);

  • Hmm mit speichern meinte ich eigentich was anderes...
    Hier ein beispiel für das was ich meine & will:
    stock charToSmiley(const string[]) //bY FoxHound
    {
    new len=strlen(string), i=0, newstr[128];
    format(newstr,sizeof(newstr),"%s",string);
    for(; i<len; i++)
    {
    switch(newstr[i])
    {
    case 'A': { strdel(newstr,i,i+1); strins(newstr,":-)",i); }
    case 'B': { strdel(newstr,i,i+1); strins(newstr,":-(",i); }
    case 'C': { strdel(newstr,i,i+1); strins(newstr,":-D",i); }
    case 'D': { strdel(newstr,i,i+1); strins(newstr,":-P",i); }
    default: { continue; }
    }
    }
    return newstr;
    }
    Also wenn ich zum beispiel in die Konsole "ABC" eingebe, wird es so ausgegeben:
    :-)BC


    Aber eigentlich müsste es doch so aussehen:
    :-):-(:-D


    Verstehst du's jetzt?



    €dit://
    Achso hat sich gelöst!


    Lag am "i<len", musste es zu "i<strlen(string)" ^^

    Einmal editiert, zuletzt von FoxHound ()

  • OnGameModeExit wird ausgeführt, wenn der Server bzw den Aktuellen Gamemode beendet wird.


    GameModeExitFunc ist eine Funktion aus dem Godfather, die zum beendet aufgerufen wird. Dort werden erst alle timer gelöscht, alle objekte entfernt etc und dann wird GameModeExit ausgeführt.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • ne.
    GameModeExit ist eine funktion, und OnGameModeExit ist ein so genanntes Callback. Das heisst wenn du GameModeExit ausführst wird OnGameModeExit automatisch ausgeführt. OnGameModeExit heisst so viel wie "Wenn GameModeExit ausgeführt wird"

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Hey Leute,
    Habe veruscht Fraktinsfahrzeuge zu machen, klappt eigt. außer dass bei mir die Leute aus der Fraktion das Auot nicht fahren dürfen :D


    if(gTeam[playerid] == TEAM_LSPD)

    Im Tutorial steht dass ich es so machen soll
    !if(gTeam[playerid] == TEAM_LSPD)

    Aber dann kommt Tag mismatch!


    lg

  • Kleine Frage was die "Serverbelastung" angeht.. Ich hab ein kleines Lichtblitzer-System gebaut (so wie beim Lightmod, das die vorderen Lichter des Fahrzeugs abwechselnd blinken).. Damit das auch vernünftig aussieht wegen der Geschwindigkeit hab ich den Timer jetzt auf 127.
    Sowas ist ja eigentlich eine große Belastung für den Server, oder?


    Hier mal der Code, vielleicht kann mir jemand Tipps geben, wie man es resourcenschonender machen kann, Performancetipps etc, und ob ein anderer Weg sinnvoller wäre..


    SetTimer("SosiBlitzer", 127, 1);


    new count1 = 0;
    new count2 = 1;
    public SosiBlitzer()
    {
    new panels, doors, lights, tires;


    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    if(SSBlitzer[i] == true)
    {
    GetVehicleDamageStatus(i, panels, doors, lights, tires);


    if(count2 == 1)
    {
    if(count1 == 0) { UpdateVehicleDamageStatus(i, panels, doors, 4, tires); count1++; return 1; }
    if(count1 == 1) { UpdateVehicleDamageStatus(i, panels, doors, 5, tires); count1++; return 1; }
    if(count1 == 2) { UpdateVehicleDamageStatus(i, panels, doors, 4, tires); count1++; return 1; }
    if(count1 == 3) { UpdateVehicleDamageStatus(i, panels, doors, 5, tires); count1 = 0; count2 = 2; return 1; }
    }
    else if(count2 == 2)
    {
    if(count1 == 0) { UpdateVehicleDamageStatus(i, panels, doors, 3, tires); count1++; return 1; }
    if(count1 == 1) { UpdateVehicleDamageStatus(i, panels, doors, 5, tires); count1++; return 1; }
    if(count1 == 2) { UpdateVehicleDamageStatus(i, panels, doors, 3, tires); count1++; return 1; }
    if(count1 == 3) { UpdateVehicleDamageStatus(i, panels, doors, 5, tires); count1 = 0; count2 = 1; return 1; }
    }
    }
    }
    return 1;
    }


    Im Befehl wird dann einfach SSBlitzer für die jeweilige VehicleID auf true gesetzt.

  • Ich hät da ma ne Frage!


    Also mein Plan ist: Wenn man stirbt soll man nen anderen Skin bekommen, in eine Virtuele Welt gebracht werden und es soll ein Pickup an der Stelle entstehen an der Stelle, an der er gestorben ist ( Totenkopf ) mit dem Namen des gestorbenen oben drüber!
    Ich hab bis jetzt alles soweit hingekriegt! Aber ich habe folgende Probleme:

    • An der Stelle wo man getorben ist, sind irgendwelche Flaschen oder brennende Zigaretten

    • Wie mach ich ein NICHT durchsichtigen Text über den Totenkopf? ( Irgendwie mit 3DTextLabel? Aber dieser ist durchsichtig )

    • Und wie mach ich damit der Totenkopf in Virtueler Welt 0 und 1 sichtbar ist?


    Danke im vorraus,
    MfG St0on


    Edit: Und ich hät da ma noch ne Frage über den Y_Objects (Streamer)!
    Wie geht das mit dem MoveDynamicObject ??? Da passiert nichts! Und wenn ich CreateGate benutze ist kein Object da! :/

    Einmal editiert, zuletzt von VaTeR325 ()

  • und zwar ich hab ein registriersysteme mit hilfe eines tuts hier ausm forum reingetahn als ich fertig war kam immer
    E:\Programme\Rockstar Games\pawno\include\Dini.inc(46) : error 017: undefined symbol "MAX_STRING"
    E:\Programme\Rockstar Games\pawno\include\Dini.inc(46) : error 009: invalid array size (negative, zero or out of bounds)
    E:\Programme\Rockstar Games\pawno\include\Dini.inc(46) : error 036: empty statement
    E:\Programme\Rockstar Games\pawno\include\Dini.inc(46) : fatal error 107: too many error messages on one line


    hier ma da berreich wo der fehler sein soll den ich aber nicht finde ;(


    #include <a_samp>
    #include <Dini>
    #include <Dudb>
    #include <morphinc>



    #define BLAU 0x0019FFFF


    #define DIALOG_TUTORIAL 1
    #define DIALOG_REGISTER 2
    #define DIALOG_LOGIN 3


    enum Info
    {
    passwort[128], // 128 steht für die maximale länge des passworts
    skin,
    };


    new bsnenter;
    new bsnexit;
    new pInfo[MAX_PLAYERS][Info];
    new spieler[MAX_PLAYER_NAME];
    new bool:loggedin[MAX_PLAYERS];
    main()
    {
    print("\n----------------------------------");
    print(" Willkommen auf meinem Testserver");
    print("----------------------------------\n");
    }



    public OnGameModeInit()
    {
    bsnexit=CreatePickup(1559,1,362.8524,-75.1179,1001.5078);
    bsnenter=CreatePickup(1559,1,1199.2235,-918.1543,43.1233);



    CreateObject(10845,-2072.3947753906,1424.2192382813,9.206844329834,0,0,3);
    CreateObject(6052,-2071.1662597656,1410.0627441406,15.009171485901,0,0,0);
    CreateObject(968,1544.6795654297,-1630.7457275391,13.229564666748,0,90,90.000640869141);
    CreateObject(970,1544.7055664063,-1634.6872558594,13.10560798645,0,0,90);
    CreateObject(970,1544.6759033203,-1621.6463623047,13.106042861938,0,0,90);
    CreateObject(980,1578.7996826172,-1638.3039550781,15.184175491333,0,0,0);
    CreateObject(3036,1587.4365234375,-1651.7705078125,15.680126190186,0,0,0);
    CreateObject(3036,1583.7141113281,-1638.1951904297,14.129894256592,0,0,0);
    CreateObject(3036,1588.4224853516,-1638.1905517578,14.123910903931,0,0,0);
    CreateObject(3928,1543.1162109375,-1643.587890625,25.534675598145,0,0,0);
    CreateObject(3749,1140.9603271484,-1294.4411621094,18.443271636963,0,0,0);
    CreateObject(980,1141.0678710938,-1293.5091552734,15.358037948608,0,0,2);
    CreateObject(6976,1138.5650634766,-1349.0732421875,15.578325271606,0,0.5,270.75);
    CreateObject(987,1137.6479492188,-1369.3122558594,12.984375,0,0,0);
    CreateObject(987,1082.5213623047,-1362.3272705078,12.781249046326,0,0,0);
    CreateObject(10829,1092.5267333984,-1315.0069580078,12.708112716675,0,0,90.5);
    CreateObject(3749,1808.0059814453,-1891.7738037109,18.264766693115,0,0,90.5);


    DisableInteriorEnterExits();
    SetGameModeText("TestMode");
    AddPlayerClass(0,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(1,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(2,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(3,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(4,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(5,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(6,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(7,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(8,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(9,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(10,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(11,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(12,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(13,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(14,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(15,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(16,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(17,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(18,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position
    AddPlayerClass(19,1268.9095,-1239.3866,16.4824,191.1859,0,0,0,0,0,0); // position


    AddStaticVehicle(462,1254.1637,-1268.3468,13.0427,1.9387,14,14); // postion roller1
    AddStaticVehicle(462,1256.3005,-1268.2739,13.0447,2.6597,2,1); // postion roller2
    AddStaticVehicle(462,1258.3967,-1268.1855,13.0482,357.6740,2,1); // postion roller3
    AddStaticVehicle(462,1260.3949,-1268.2092,13.0337,349.3607,3,1); // postion roller4
    AddStaticVehicle(462,1252.4052,-1268.4800,13.0438,7.0043,12,12); // postion roller6
    AddStaticVehicle(462,1252.4052,-1268.4800,13.0438,6.9997,12,12); // postion roller5
    AddStaticVehicle(416,1178.7789,-1308.2673,13.9652,269.2517,1,3); // postion RTW1
    AddStaticVehicle(416,1178.5264,-1338.9004,14.0198,271.6402,1,3); // postion RTW2
    AddStaticVehicle(416,1097.4500,-1328.4202,13.4468,0.2943,1,3); // postion RTW3
    AddStaticVehicle(416,1110.1466,-1328.3466,13.4515,0.1865,1,3); // postion RTW4
    AddStaticVehicle(416,1125.5907,-1328.5476,13.4433,0.1582,1,3); // postion RTW5
    AddStaticVehicle(563,1162.2200,-1377.5509,27.3168,266.3167,1,6); // postion mediHELI
    AddStaticVehicle(563,1162.1211,-1363.2943,27.3567,271.8440,1,6); // postion mediHELI2
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


  • Keiner ne Antwort? xD

  • 1. Ka, kann ich nicht nachvollziehen woher dieser Bug kommt.
    2. die letzten beiden Ziffern bei farbcodes sind die transparenz. Also 0x008080FF ind 0x00808000 ändern und die transparenz ist wieder anders.
    3. CreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld) - Einfach bei Virtualworld deine welt ID eintragen^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Gibt es eig. Eine Liste oder sowas wo die ganzen Schriftarten stehen.
    Weil ich habs auf verschiedenen servern gemerkt das es bestimmt ca. 1000 verschiedene scrhiftarten gibt ;)
    MfG xAdy