[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
  • Kann mir einer sagen, wie ich hier weitere Dialoge für den Registrierungsvorgang hinzufüge? Möchte das Geschlecht sowie das Alter haben.


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch(dialogid)
    {
    case Dialog_Register:
    {
    if(!response)
    {
    SendClientMessage(playerid,0xFF0000FF,"Die Registrierung wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
    SetTimerEx("KickPlayer",250,0,"i",playerid);
    return 1;
    }
    if(!inputtext[0] || !(3 <= strlen(inputtext) <= 10))
    {
    ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"{FFFFFF}SmR: {308EAD}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen nicht in unserer Datenbank gefunden.\nUm einen Charakter auf unserem Server zu Erstellen\nben�tigen wir einige Informationen von Ihnen.\nAls erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\nMerken Sie sich Bitte Ihr Passwort Gut.","Annehmen","Abbrechen");
    return 1;
    }
    new query[950 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde;
    getdate(Tag,Monat,Jahr);
    gettime(Stunde,Minute,Sekunde);
    format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
    mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Accounts` (`pName`, `pPasswort`, `pAlter`, `pAdminlevel`, `pBanned`, `pBargeld`, `pKontoguthaben`, `pLastLogin`, `pRegDatum`, `pVersuche`, `pLeben`) VALUES ('%e','%e','%d','%d','%d','0','0','%s','%s','%d','100.0')",Spieler[playerid][pName],inputtext,Spieler[playerid][pAlter],Spieler[playerid][pAdminlevel],Spieler[playerid][pBanned],query,query,Spieler[playerid][pWrongPass],Spieler[playerid][pLeben]);
    mysql_tquery(DBHandle, query, "", "");
    Spieler[playerid][pLogged] = true;
    SpawnPlayer(playerid);
    return 1;
    }
    case Dialog_Login:
    {
    if(!response)
    {
    SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
    SetTimerEx("KickPlayer",250,0,"i",playerid);
    return 1;
    }
    if(!inputtext[0] || !(3 <= strlen(inputtext) <= 25))
    {
    ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"{FFFFFF}SmR: {308EAD}Einloggen","{0xA70000FF}Das Passwort darf nur 3-25 Zeichen enthalten!{FFFFFF}\n\nSie m�ssen von unserem System {0xFFFFFF}Identifiziert{FFFFFF} werden.\nGeben Sie daf�r Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschlie�end auf Einloggen, damit Ihre Daten kontrolliert werden k�nnen.","Einloggen","Abbrechen");
    return 1;
    }
    new query[180 + MAX_PLAYER_NAME];
    mysql_format(DBHandle, query,sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` ='%e' AND `pPasswort` ='%e'",Spieler[playerid][pName],inputtext);
    mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,2);
    Spieler[playerid][pLogged] = true;
    return 1;
    }
    }
    return 1;
    }

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Ist jetzt halb Scripting / Mapping Frage, mache es mal hier rein.


    Ich benutze diesen Mapeditor von Pottus http://forum.sa-mp.com/showthread.php?t=471474


    Ich habe nun Objekte erstellt und wollte die unter OnGameModeInit einfügen, doch beim compilen bekomme ich folgende Erros:


    tmpobjid = CreateObject(19123,1527.416,-1554.584,66.210,0.000,0.000,0.000,300.000);


    Ich muss tmpobjid definieren, doch ich weiß nicht wie.. Kann mir einer helfen?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Ich habe mir gerade ein Befehl erstellt um zu sehen wie mein gemapptes Nachts aussieht, das Problem ist nur das der Befehl halt funktioniert aber nicht so wie ich möchte.


    Mein Code sieht so aus:


    if(!strcmp(cmdtext, "/settime 0", true))
    SetPlayerTime(playerid, 0, 0); // Midnight
    SendClientMessage(playerid,GELB,"Time set to Midnight");
    return 1;
    }


    Das Problem ist der Befehl funktioniert auch wenn ich nur /settime eingebe oder so..


    Ich weiß das ich irgendwo eine Zahl anhängen muss, aber wo :S


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Mein Stats System Funtkioniert eig. aber es kommt bei Fraktion ein Punkt und bei IP eine 50.


    ocmd:stats(playerid)
    {
    new string[128];
    format(string, sizeof(string),"Name: %s\nLevel: %d\nFraktion: %s Rang: %d\n\nGeld: %d\nKills: %d Tode: %d\n\nAdminlevel: %i\nIP: %i",NamePlayer(playerid), SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pRang],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pIP]);
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX, "Stats",string,"Ok","");
    return 1;
    }

  • @[LnD]JustMe.77:
    if(!strcmp(cmdtext, "/settime", true))
    {
    if(!strcmp(cmdtext,"0",true))
    {
    SetPlayerTime(playerid, 0, 0); // Midnight
    SendClientMessage(playerid,GELB,"Time set to Midnight");
    }
    return 1;
    }
    Ich weiß jetzt nicht ob das so mit der "0" klappt.


    @FerienFreak:
    Ist "SpielerInfo[playerid][pFraktion]" ein Integer oder ein String?
    Kannst uns auch einfach mal dein Enum dazu zeigen.

  • ICy.:


    Ne, ich bin mir sicher das dass damit nix zu tun hat, ich glaube eher ein Problem mit return 1 oder return 0, habe beides probiert doch das hilft nicht.
    Ich habe außerdem vergessen zu erwähnen das jedes mal kommt "Time set to night" egal was für ein Befehl ich benutze, und das soll nicht passieren.



    if(!strcmp(cmdtext, "/setday 3", true))
    {
    SendClientMessage(playerid,GELB,"Weather changed to extra sunny.");
    SetWeather(0);
    return 1;
    }

    if(!strcmp(cmdtext, "/settime", true))
    SetPlayerTime(playerid, 0, 0); // Midnight
    SendClientMessage(playerid,GELB,"Time set to Midnight");
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Was ich gerade sehe. Bekommst du eigentlich keinen Fehler?
    Du hast nämlich eine Klammer vergessen.
    if(!strcmp(cmdtext, "/settime", true))
    SetPlayerTime(playerid, 0, 0); // Midnight
    SendClientMessage(playerid,GELB,"Time set to Midnight");
    return 1;
    }
    zu
    if(!strcmp(cmdtext, "/settime", true))
    {
    SetPlayerTime(playerid, 0, 0); // Midnight
    SendClientMessage(playerid,GELB,"Time set to Midnight");
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • pIP muss erst mal ein String sein.
    Sprich so: pIP[16],
    Die Zeichenlänge 16 reicht.
    Jetzt musst du gucken. Wie heißt das Array für dieses Enum?
    enum fraktEnum{

    Einmal editiert, zuletzt von AirM4X ()


  • Möglicherweise sind da zwei Preview Models übereinander gelegt worden, das könnte ich mir vorstellen.


    Dann poste bitte den Code wenn du wieder am PC bist, ohne Code können wir dir nicht helfen, es weiß ja keiner was du am Code gemacht hast, bzw was da ist oder was fehlt.


    Gute Nacht


    Wenn ich die jetzt übereinander mache, wird nur ein andere Skin angezeigt? Könntest du mir bitte einen Beispiel geben?


    -> Jetzt zum Crash problem: Es ist irgendwie verschwunden? :D

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • @FerienFreak:
    Für das 1. Enum hast du doch das Array SpielerInfo.
    Wie heißt das Array für das 2. Enum?


    @[GeD]Max:
    So wie ich das verstanden habe, sollst du nicht die TextDraws übereinander machen, sondern die sind möglicherweise schon übereinander. Laut Jeffry sollst du uns mal den Code schicken, was sicher sinnvoller ist :)

    So ein Blödsinn von mir :) - Falsch verstanden..

    Einmal editiert, zuletzt von AirM4X ()

  • Mein derzeitiger Code:



    if(clickedid == Textdraw6) // United States
    {
    PlayerTextDrawSetPreviewModel(playerid, Textdraw3[playerid], 287); // Mit das hier sol dann auch die M4 gezeigt werden
    PlayerTextDrawShow(playerid, Textdraw3[playerid]);
    ClearChat(playerid);
    SendClientMessage(playerid, 0xFF0000FF,"[INFO] {FFFFFF}Sie haben {FF0000}United States {FFFFFF}als Team ausgewählt!");
    gTeam[playerid] = TEAM_UNITEDSTATES;
    if(mysql_CheckAccount(playerid) == 1)
    {
    SpielerInfo[playerid][pTeamAuswahl] = 1;
    }
    else if(mysql_CheckNoAccount(playerid) == 1)
    {
    NoSpielerInfo[playerid][pNoTeamAuswahl] = 1;
    }
    }
    //....

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • Ja, du musst noch ein 2. TextDraw erstellen, auch mit den PreviewModel enthalten, und dort zeigst du dann die Model-ID 356 an. (356 ist die M4)
    Versuch das mal, ansonsten melde dich noch einmal.

  • Jetzt wird zwar die M4 angezeigt, aber der skin der schon vorher drauf ist z.b. Army skin soll die M4 halten. also da mit der M4 stehen.

    if(clickedid == Textdraw6) // United States
    {
    PlayerTextDrawSetPreviewModel(playerid, Textdraw3[playerid], 287);
    PlayerTextDrawShow(playerid, Textdraw3[playerid]);
    PlayerTextDrawSetPreviewModel(playerid, Textdrawdrei[playerid], 356);
    PlayerTextDrawShow(playerid, Textdrawdrei[playerid]);
    ClearChat(playerid);
    SendClientMessage(playerid, 0xFF0000FF,"[INFO] {FFFFFF}Sie haben {FF0000}United States {FFFFFF}als Team ausgewählt!");
    gTeam[playerid] = TEAM_UNITEDSTATES;
    if(mysql_CheckAccount(playerid) == 1)
    {
    SpielerInfo[playerid][pTeamAuswahl] = 1;
    }
    else if(mysql_CheckNoAccount(playerid) == 1)
    {
    NoSpielerInfo[playerid][pNoTeamAuswahl] = 1;
    }
    }
    //..


    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • @FerienFreak:
    Für das 1. Enum hast du doch das Array SpielerInfo.
    Wie heißt das Array für das 2. Enum?


    @[GeD]Max:
    So wie ich das verstanden habe, sollst du nicht die TextDraws übereinander machen, sondern die sind möglicherweise schon übereinander. Laut Jeffry sollst du uns mal den Code schicken, was sicher sinnvoller ist :)

    So ein Blödsinn von mir :) - Falsch verstanden..


    new fInfo[][fraktEnum] = {
    {"Zivilist", 0.0, 0.0, 0.0, 0.0, 0, 0, WEIß},
    {"LSPD", 1526.4583,-1677.8275,5.8906, 266.6004, 0, 0, BLAU},
    {"Ordnungsamt", 0.0, 0.0, 0.0, 0.0, 0, 0, BABYBLAU}
    };