[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
  • Schreib in der Variable 100000.0


    und dann in der Funktion es so:


    C
    new Kamerafahrt = random(sizeof(Kamerafahrten));
    InterpolateCameraPos(playerid,Kamerafahrten[Kamerafahrt][0],Kamerafahrten[Kamerafahrt][1],Kamerafahrten[Kamerafahrt][2],Kamerafahrten[Kamerafahrt][3],Kamerafahrten[Kamerafahrt][4],Kamerafahrten[Kamerafahrt][5],_:Kamerafahrten[Kamerafahrt][6]);
    InterpolateCameraLookAt(playerid,Kamerafahrten[Kamerafahrt][0],Kamerafahrten[Kamerafahrt][1],Kamerafahrten[Kamerafahrt][2],Kamerafahrten[Kamerafahrt][3],Kamerafahrten[Kamerafahrt][4],Kamerafahrten[Kamerafahrt][5],_:Kamerafahrten[Kamerafahrt][6]);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Warum wird mir der Dialog(D_REG_EMAIL) nicht angezeigt?


    if(dialogid == D_REG_ALTER)
    {
    if(response)
    {
    new age = GetPlayerAge(inputtext);
    new r_ueber[128], r_text[2048];
    format(r_ueber, sizeof(r_ueber), ""SERVER_HTML""SERVER_TAG""HTML_WEIS": Registration");
    format(r_text, sizeof(r_text), ""HTML_WEIS"Bitte gebe zur Authentifizierung dein Geburtsdatum ein. \n \nDiese Angabe wird später Einfluss auf das ganze Spielerlebniss haben!");
    if(age == -1)
    {
    return SendClientMessage(playerid, SERVER_COLOR, "Server: Dein Geburtsdatum muss im Format "HTML_ROT"TT.MM.YYYY "SERVER_HTML"sein!"), ShowPlayerDialog(playerid, D_REG_ALTER, DIALOG_STYLE_INPUT, r_ueber, r_text, "Weiter", "Abbrechen");
    }
    else
    {
    format(sI[playerid][pAlter], 10, inputtext);
    new em_ueber[128], em_text[2048];
    format(em_ueber, sizeof(em_ueber), ""SERVER_HTML""SERVER_TAG""HTML_WEIS": Registration");
    format(em_text, sizeof(em_text), ""HTML_WEIS"Bitte gebe eine gültige E-Mail Adresse von dir ein. \nDiese wird legentlich zur Authentifizierung benutzt!");
    ShowPlayerDialog(playerid, D_REG_EMAIL, DIALOG_STYLE_INPUT, em_ueber, em_text, "Weiter", "Abbrechen");
    }
    return 1;
    }
    else
    {
    Kick(playerid);
    return 1;
    }
    }


  • C:\Users\Natascha\Desktop\GTA Scripts\German-Next-Era-Life---v2.5\German-Next-Era-Life---v2.5\German Next Era Life - v2.5\gamemodes\GNE.pwn(5918) : error 017: undefined symbol "ReturnPlayerID"
    C:\Users\Natascha\Desktop\GTA Scripts\German-Next-Era-Life---v2.5\German-Next-Era-Life---v2.5\German Next Era Life - v2.5\gamemodes\GNE.pwn(5921) : error 017: undefined symbol "ReturnPlayerID"




    if(PlayerInfo[playerid][pHeadValue] > 0)
    {
    if(IsPlayerConnected(killerid))
    {
    if(PlayerInfo[killerid][pMember] == 8 || PlayerInfo[killerid][pLeader] == 8)
    {
    ConsumingMoney[killerid] = 1;
    new killer[MAX_PLAYER_NAME];
    GetPlayerName(killerid, killer, sizeof(killer));
    FraktionsKasse[7] += PlayerInfo[playerid][pHeadValue]/2;
    GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]/2);
    if(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]) != INVALID_PLAYER_ID && IsPlayerConnected(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]))) //5918
    {
    format(string, 128, "Hitman %s hat dein Contract %s getötet.", killer, name);
    SendClientMessage(ReturnPlayerID(PlayerInfo[playerid][pAuftraggeber]), COLOR_YELLOW, string); //5921
    }
    format(string,128,"<< Hitman %s hat den Auftrag an %s erfüllt und bekommt: $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]/2);
    SendFamilyMessage(8, COLOR_YELLOW, string);
    PlayerInfo[playerid][pHeadValue] = 0;
    }
    }
    }


    Warum? wie kann ich die erros beheben?

  • Irgendwo unten ins Script, Funktion ist von Jeffry.



    stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
    {
    new l_name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(!strcmp(l_name,l_PlayerName, true)) return i;
    }
    }
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
    {
    if(strfind(l_name,l_PlayerName,true)!=-1) return i;
    }
    }
    return INVALID_PLAYER_ID;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde von Trooper[Y] aus folgendem Grund gelöscht: Bitte den Likebutton für sowas benutzen ().
  • Wieso wird mir nur der letzte String im Dialog angezeigt?

    format(DialogString,sizeof(DialogString),"\t"HTML_SERVERFARBE"Name:"HTML_WHITE" %s\n\t"HTML_SERVERFARBE"Geschlecht: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Ehepartner: "HTML_WHITE"%s\n\n\t"HTML_SERVERFARBE"Nebenjob: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Fraktion: "HTML_WHITE"%s\t"HTML_SERVERFARBE"Rang: "HTML_WHITE"%d\n\n",PlayerInfo[playerid][pName], geschlecht, PlayerInfo[playerid][pEhepartner],job, fraktionsname, PlayerInfo[playerid][pRang]);
    strcat(DialogString, DialogString);
    format(DialogString,sizeof(DialogString),"\t"HTML_SERVERFARBE"Level: "HTML_WHITE"%d\n\t"HTML_SERVERFARBE"Respektpunkte: "HTML_WHITE"%d/%d\n\t"HTML_SERVERFARBE"PayDay: "HTML_WHITE"%d/60\n\t"HTML_SERVERFARBE"Verwarnungen: "HTML_WHITE"%d/3\n\t"HTML_SERVERFARBE"Spielstunden: "HTML_WHITE"%d",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pRespekt],expamount,PlayerInfo[playerid][pPayDay],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pGesamtMinutes]);
    strcat(DialogString, DialogString);
    format(DialogString,sizeof(DialogString),"\n\n\t"HTML_SERVERFARBE"Bargeld: "HTML_WHITE"$%d\n\t"HTML_SERVERFARBE"Kontostand: "HTML_WHITE"$%d\n\n\t"HTML_SERVERFARBE"Führerschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Flugschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Bootsschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Waffenschein: "HTML_WHITE"%s",PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pGiroKonto],schein[1],schein[2],schein[3],schein[4]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, ""HTML_SERVERFARBE""#SERVER_NAME": "HTML_WHITE"Statistiken",DialogString,"Schließen", "");

  • Beitrag von ReborN ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Falsch gelesen... ().
  • Wieso wird mir nur der letzte String im Dialog angezeigt?
    format(DialogString,sizeof(DialogString),"\t"HTML_SERVERFARBE"Name:"HTML_WHITE" %s\n\t"HTML_SERVERFARBE"Geschlecht: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Ehepartner: "HTML_WHITE"%s\n\n\t"HTML_SERVERFARBE"Nebenjob: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Fraktion: "HTML_WHITE"%s\t"HTML_SERVERFARBE"Rang: "HTML_WHITE"%d\n\n",PlayerInfo[playerid][pName], geschlecht, PlayerInfo[playerid][pEhepartner],job, fraktionsname, PlayerInfo[playerid][pRang]); strcat(DialogString, DialogString); format(DialogString,sizeof(DialogString),"\t"HTML_SERVERFARBE"Level: "HTML_WHITE"%d\n\t"HTML_SERVERFARBE"Respektpunkte: "HTML_WHITE"%d/%d\n\t"HTML_SERVERFARBE"PayDay: "HTML_WHITE"%d/60\n\t"HTML_SERVERFARBE"Verwarnungen: "HTML_WHITE"%d/3\n\t"HTML_SERVERFARBE"Spielstunden: "HTML_WHITE"%d",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pRespekt],expamount,PlayerInfo[playerid][pPayDay],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pGesamtMinutes]); strcat(DialogString, DialogString); format(DialogString,sizeof(DialogString),"\n\n\t"HTML_SERVERFARBE"Bargeld: "HTML_WHITE"$%d\n\t"HTML_SERVERFARBE"Kontostand: "HTML_WHITE"$%d\n\n\t"HTML_SERVERFARBE"Führerschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Flugschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Bootsschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Waffenschein: "HTML_WHITE"%s",PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pGiroKonto],schein[1],schein[2],schein[3],schein[4]); ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, ""HTML_SERVERFARBE""#SERVER_NAME": "HTML_WHITE"Statistiken",DialogString,"Schließen", "");

    Code
    format(DialogString,sizeof(DialogString),"\t"HTML_SERVERFARBE"Name:"HTML_WHITE" %s\n\t"HTML_SERVERFARBE"Geschlecht: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Ehepartner: "HTML_WHITE"%s\n\n\t"HTML_SERVERFARBE"Nebenjob: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Fraktion: "HTML_WHITE"%s\t"HTML_SERVERFARBE"Rang: "HTML_WHITE"%d\n\n",PlayerInfo[playerid][pName], geschlecht, PlayerInfo[playerid][pEhepartner],job, fraktionsname, PlayerInfo[playerid][pRang]);
    format(DialogString,sizeof(DialogString),"%s\t"HTML_SERVERFARBE"Level: "HTML_WHITE"%d\n\t"HTML_SERVERFARBE"Respektpunkte: "HTML_WHITE"%d/%d\n\t"HTML_SERVERFARBE"PayDay: "HTML_WHITE"%d/60\n\t"HTML_SERVERFARBE"Verwarnungen: "HTML_WHITE"%d/3\n\t"HTML_SERVERFARBE"Spielstunden: "HTML_WHITE"%d",DialogString,PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pRespekt],expamount,PlayerInfo[playerid][pPayDay],PlayerInfo[playerid][pWarns],PlayerInfo[playerid][pGesamtMinutes]);
    
    
    format(DialogString,sizeof(DialogString),"%s\n\n\t"HTML_SERVERFARBE"Bargeld: "HTML_WHITE"$%d\n\t"HTML_SERVERFARBE"Kontostand: "HTML_WHITE"$%d\n\n\t"HTML_SERVERFARBE"Führerschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Flugschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Bootsschein: "HTML_WHITE"%s\n\t"HTML_SERVERFARBE"Waffenschein: "HTML_WHITE"%s",DialogString,PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pGiroKonto],schein[1],schein[2],schein[3],schein[4]);
    
    
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, ""HTML_SERVERFARBE""#SERVER_NAME": "HTML_WHITE"Statistiken",DialogString,"Schließen", "");

    So sollte es gehen, ist der String groß genug?

  • beim 1 (nach 1 sekunde )durchlauf geht alles beim 2 (nach 2 sekunden) mal kommt
    Obwohl ich Jobtruck nirgend außer beim einsteigen ändere?
    Du bist nichtmehr in dein Jobfahrzeug


    //edit habe gemerkt wenn ich Weizen[w][w_besitzer] ausklammere geht es aber wieso ?


  • CMD:fill(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Fahrzeug.");
    if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "** Du bist nicht der Fahrer eines Fahrzeuges.");
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i=1;i<MAX_TANKEN;i++)
    {
    if(Tanke[i][tCreated] == 1)
    {
    if(Tanke[i][tOwned] == 1)
    {
    if(Tanke[i][tLock] == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    {
    if(Tanke[i][tLiter] <= 0.0)return SendClientMessage(playerid, COLOR_GREY, "** Die Tankstelle hat kein Benzin mehr.");
    if(Vehicle[vehicleid][vehFuel] == VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank])return SendClientMessage(playerid, COLOR_GREY, "** Dein Fahrzeug ist bereits befüllt.");
    if(pRefillVehicle[playerid] == 1)return SendClientMessage(playerid, COLOR_GREY, "** Das Fahrzeug wird bereits befüllt.");
    if(Vehicle[vehicleid][vehMotor] == true)return SendClientMessage(playerid, COLOR_GREY, "** Der Motor muss ausgeschaltet sein.");
    FreezePlayer(playerid);
    SendClientMessage(playerid, COLOR_WHITE, "* Dein Fahrzeug wird betankt ...");
    SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    pRefillVehicle[playerid] = 1;
    return 1;
    }
    }
    else return SendClientMessage(playerid, COLOR_GREY, "** Diese Tankstelle hat geschlossen.");
    }
    else return SendClientMessage(playerid, COLOR_GREY, "** Diese Tankstelle hat keinen Besitzer.");
    }
    }
    return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich an keiner Tankstelle.");
    }



    Wen ich /fill eingebe hat die Tankstelle immer zu obwohl die geöffnet ist?

  • Hier, schreib es so:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hier, schreib es so:


    @Kaliber jetzt passiert nichts mehr wen ich /fill mache?

  • Guten Abend,
    ich habe da ein "kleines" Problem, und zwar wird mir immer der Dialog Angezeigt dass ich mich Einloggen soll obwohl kein Account in der Datenbank vorhanden ist. ( Nutze SQLite )



    new DBResult:Result, query[128], string[512];
    format(query, 128, "SELECT * FROM `Accounts` WHERE `Spielername` = '%s'", sInfo[playerid][sName]);
    Result = db_query(Amazing, query);
    if(db_num_rows(Result) < 0)
    {
    // Register Dialog ist hier
    }
    else
    {
    // Login Dialog ist hier
    }
    db_free_result(Result);


    Mit freundlichen Grüßen,

  • Das liegt daran, dass db_num_rows nicht < 0 ausgibt, sondern genau 0 wenn nichts vorhanden ist ^^


    Also auf == 0 setzen die Abfrage ;)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich danke, das klappt nun.
    Ich habe aber nun leider ein neues Problem.
    Und zwar Speichert er bei mir die Spieler nicht ab. Ich habe es schon Geprintet und der Print bleibt einfach leer.



    new query[256], getip[16];
    format(query, 256, "UPDATE `Accounts` SET `Level` = '%d', `Bargeld` = '%d', `IP` = '%s' WHERE `Spielername` = '%s'",
    GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPlayerIp(playerid, getip, sizeof(getip)), sInfo[playerid][sName]);
    db_query(Amazing, query);


    Mit freundlichen Grüßen,

  • Versuchs mal so:


    C
    new query[256], getip[16];
    GetPlayerIp(playerid, getip, sizeof(getip));
    format(query, 256, "UPDATE `Accounts` SET `Level` = '%d', `Bargeld` = '%d', `IP` = '%s' WHERE `Spielername` = '%s'",
    GetPlayerScore(playerid), GetPlayerMoney(playerid), getip, sInfo[playerid][sName]);
    db_query(Amazing, query);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Mir fällt gerade auch auf, er schreibt nichts in meine Tabelle rein.
    Der Print ist komplett richtig, aber meine Tabelle wird nichts eingetragen.



    format(query, sizeof(query), "INSERT INTO `Accounts` (`Spielername`, `Passwort`, `Bargeld`, `Level`) VALUES ('%s', '%s', '1200', '1')", sInfo[playerid][sName], inputtext);
    db_query(Amazing, query);
    printf("Register: %s", query);
    GivePlayerMoney(playerid, 1200);
    SetPlayerScore(playerid, 1);
    sInfo[playerid][sEingeloggt] = true;


    Mit freundlichen Grüßen,