[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
  • Da ich einen Motorsystem habe, und er auch funktioniert, man aber /m schreiben muss um ihn anzumachen, möchte ich gern das wenn man auf die "N" Taste drückt er an geht.
    Nun zur meiner Frage, wie mache ich soetwas, das man jeder belibige Taste benutzen kann ?


    Es sollte in etwa so aussehen:



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == N)
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new car = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
    {
    SendClientMessage(playerid, ROT, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
    }
    else if (Tank[car] < 1)
    {
    SendClientMessage(playerid, ROT, "Der Tank ist leer. Du musst erst /tanken.");
    }
    else if (Motor[car] == false )
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = true;
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~an!", 2000, 5);
    }
    else
    {
    GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[car] = false;
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
    }
    }
    }
    return 1;
    }

  • Ich weiß das es die Frage bereits gab, leider spuckte die SuFu nichts aus.
    Jedenfalls wiederholt sich mein Tutorial nach einem normalen Login?


    public Tutorial(playerid)
    {
    if(TutTime[playerid] >= 1)
    {
    if(TutTime[playerid] == 2)
    {
    SetPlayerPos(playerid, 803.59997558594, -1335.4000244141, 12.5);
    SetPlayerCameraPos(playerid, 794.9351, -1313.2435, 18.4001);
    SetPlayerCameraLookAt(playerid, 795.4894, -1314.0754, 18.3251);
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    SendClientMessage(playerid,msg,"» Einführung «");
    SendClientMessage(playerid,msg,"Es folgt nun ein kleines Tutorial, pass bitte gut auf.");
    SendClientMessage(playerid,msg,"Falls dann doch noch Fragen offen bleiben, fragt im Forum oder die Admins/Spieler.");
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    }
    else if(TutTime[playerid] == 10)
    {
    SetPlayerCameraPos(playerid, 1332.2734, -898.9604, 83.6816);
    SetPlayerCameraLookAt(playerid, 1332.8689, -898.1586, 83.7116);
    SendClientMessage(playerid,msg,"» Respekt und Umgangston «");
    SendClientMessage(playerid,msg,"Behandle andere User, so wie du behandelt werden willst, sollte dies nicht der Fall sein");
    SendClientMessage(playerid,msg,"so wirst du verwarnt. Siehst du jemandem mit unangemessenem Verhalten, so melde ihn.");
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    }
    else if(TutTime[playerid] == 25)
    {
    SetPlayerCameraPos(playerid, 1541.4180, -1296.7351, 361.8101);
    SetPlayerCameraLookAt(playerid, 1541.4685, -1297.7336, 361.2403);
    SendClientMessage(playerid,msg,"» Bugusing & Cheating «");
    SendClientMessage(playerid,msg,"Falls du jemanden siehst, der einen Bug benutzt, cheatet oder Ähnliches,");
    SendClientMessage(playerid,msg,"mach bitte einen Screenshot oder reporte ihn.");
    SendClientMessage(playerid,msg,"Wir werden die nötigen Maßnahmen ergreifen um den Spielspaß zu erhalten.");
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    }
    else if(TutTime[playerid] == 40)
    {
    SetPlayerCameraPos(playerid, 288.8694, -1854.7761, 17.2881);
    SetPlayerCameraLookAt(playerid, 289.0029, -1853.7847, 17.1732);
    SendClientMessage(playerid,msg,"» Häuser und Autos «");
    SendClientMessage(playerid,msg,"Da unser Server noch in der Alpha Phase ist, wird es dies noch nicht geben,");
    SendClientMessage(playerid,msg,"natürlich wird es so schnell wie möglich eingefügt um mehr Reallifegefühl zu haben.");
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    }
    else if(TutTime[playerid] == 60)
    {
    SetPlayerCameraPos(playerid, 2208.4670, -1091.4160, 45.9611);
    SetPlayerCameraLookAt(playerid, 2208.6892, -1092.3918, 45.7062);
    SendClientMessage(playerid,msg,"» Berufe und Firmen «");
    SendClientMessage(playerid,msg,"Berufe kannst du dir im Arbeitsamt holen.");
    SendClientMessage(playerid,msg,"Um in eine Fraktion zu kommen musst du dich im Forum bewerben.");
    SendClientMessage(playerid,msg,"Leaderposten können durch eine Bewerbung im Forum errungen werden.");
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    }
    else if(TutTime[playerid] == 70)
    {
    SetPlayerCameraPos(playerid, 1520.6116, -1708.0830, 48.0832);
    SetPlayerCameraLookAt(playerid, 1520.0710, -1708.9249, 47.7133);
    SendClientMessage(playerid,msg,"» Das Ende «");
    SendClientMessage(playerid,msg,"Vielen Dank, dass du dir Zeit für das Tutorial genommen hast.");
    SendClientMessage(playerid,msg,"Falls weitere Fragen bestehen, wende dich an Spieler oder Admins.");
    SendClientMessage(playerid,msg,"Viel Spaß auf Street of Reallife.");
    SendClientMessage(playerid,msg,"---------------------------------------------------------------------------------------------------------------------------------------------");
    }
    else if(TutTime[playerid] == 90)
    {
    KillTimer(TutTimer[playerid]);
    TutTime[playerid] = -1;
    SetPlayerPos(playerid,814.79998779297, -1350.9000244141, -1);
    TogglePlayerControllable(playerid,true);
    GameTextForPlayer(playerid,"~r~Willkommen, ~r~ in Los Santos.",6000,1);
    SetCameraBehindPlayer(playerid);
    }
    TutTime[playerid]++;
    }
    }


    Ist zwar ganz lustig, aber nervt auch. ^^

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.


  • rCmd[]->pcbuy(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,PC_R,PC_X,PC_Y,PC_Z))
    {
    if(GetPlayerMoney(playerid) >= PC_P)
    {
    if(HatPC[playerid] == false)
    {


    new Name[24];
    GetPlayerName(playerid,Name,24);
    new File:internet = fopen("internetnutzer.txt",io_write);
    if(internet)
    {
    fwrite(internet,Name);
    fclose(internet);
    }
    SendClientMessage(playerid,cGrün,"Du hast dir erfolgreich einen Computer gekauft!");
    SendClientMessage(playerid,cGrün,"Nun kannst du im Internet surfen.");
    return 1;
    }
    else return SendClientMessage(playerid,cRot,"Du besitzt bereits einen Computer!");
    }
    else return SendClientMessage(playerid,cRot,"Du hast nicht genug Geld für einen Computer!");
    }
    else return SendClientMessage(playerid,cRot,"Du bist nicht am Computerladen!");
    }


    Warum kommt das immer "Unknown Command" ?!

  • [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • Es geht auch nicht um das Vergessen eines returns sondern um ein falsches return. Sprich: return 1; o. return 0;

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • SendClientMessage gibt 1 zurück wenn es erfolgreich gesendet wurde, damit ist es vollkommen richtig was er da macht.


    Möglicherweise failt SendClientMessage.
    überprüf das mal

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Google mag mich auch nicht. :O

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • setz am ende einfach ein return also
    else if(TutTime[playerid] == 90)
    {
    KillTimer(TutTimer[playerid]);
    TutTime[playerid] = -1;
    SetPlayerPos(playerid,814.79998779297, -1350.9000244141, -1);
    TogglePlayerControllable(playerid,true);
    GameTextForPlayer(playerid,"~r~Willkommen, ~r~ in Los Santos.",6000,1);
    SetCameraBehindPlayer(playerid);
    //hier
    }
    dann kein deine variable auch nicht mehr 0 sein.
    ich weiß ja nicht wie dein OnPlayerSpawn aussieht, aber ich denke
    das du abfragst ob die TutZeit 0 ist oder etwas ähnliches

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Dann mach dass omg...


    enum bla
    {
    Admin
    }
    new blalbal[MAX_PLAYERS][bla];



    //edit
    ehm grauerhase


    newkey == N ??? Was soll das den sein? was kommt da für n Fehler?

    Roleplay Network | Dᴇᴀᴅ.Nᴇᴛ

  • Also,
    ich verwende zum Speichern meiner Userdateien das Format dini.
    Bei allen bisherigen Scripts hat das auch ohne Probleme funktioniert, und ich habe dieses Login/Register System auch original von einem meiner anderen Selfmades (!) kopiert, bei denen es unter den gleichen Bedingungen funktioniert hat!!


    Ich habe zum Beispiel bei der Registrierung:

    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);



    Die Datei wird zwar erstellt, allerdings wird das Passwort nicht in die Datei geschrieben!
    Dateiberechtigungen im FTP sind 777 - falls das noch jemand wissen muss..