[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
  • Tag, habe Folgendes Problem unzwar habe ich nen Befehl eingebaut um im OOC chat nen Nametag zu setzen und selbst entfernen zu können... jetzt habe ich das problem, dass wenn man sich einloggt hat man ihn nicht. setzt man ihn bekommt man ihn auch aber wenn ich ihn per Befehl Deaktivieren möchte klappt das nicht... wo ist der Fehler ? :D


    Inagame siehts dann so aus:



    Code-Schnipsel

    ocmd:nametagon(playerid,params[]) {
    if(PlayerInfo[playerid][pNametag]= 0) return ShowInfoDialog(playerid,"Zugriff Verweigert","Du hast deinen Nametag bereits Aktiviert!");
    PlayerInfo[playerid][pNametag] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Nametag Aktiviert!");
    return 1;
    }
    ocmd:nametagoff(playerid,params[]) {
    if(PlayerInfo[playerid][pNametag]= 1) return ShowInfoDialog(playerid,"Zugriff Verweigert","Du hast deinen Nametag bereits Deaktiviert!");
    PlayerInfo[playerid][pNametag] = 0;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Nametag Deaktiviert!");
    return 1;
    }


    Also die abfrage im ooc chat funktioniert, wenn ich es manuell mache aber der Befehl will nicht so ganz...

    Einmal editiert, zuletzt von DomiixP ()

  • Beitrag von [KoSoVa] ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • ocmd:nametagon(playerid,params[])
    {
    if(PlayerInfo[playerid][pNametag] == 0)
    {
    ShowInfoDialog(playerid,"Zugriff Verweigert","Du hast deinen Nametag bereits Aktiviert!");
    return 1;
    }
    PlayerInfo[playerid][pNametag] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Nametag Aktiviert!");
    return 1;
    }
    ocmd:nametagoff(playerid,params[])
    {
    if(PlayerInfo[playerid][pNametag] == 1)
    {
    ShowInfoDialog(playerid,"Zugriff Verweigert","Du hast deinen Nametag bereits Deaktiviert!");
    return 1;
    }
    PlayerInfo[playerid][pNametag] = 0;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Nametag Deaktiviert!");
    return 1;
    }


    //EDIT:
    Du hast bei der IF abfrage ein '=' vergessen.

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



  • gemacht, aber funktionier immernoch nicht :D



    EDIT:


    Fehler gefunden, falsche Zahlen oben ( vertauscht )


    Funktioniert, Danke ! :D

    Einmal editiert, zuletzt von DomiixP ()

  • gemacht, aber funktionier immernoch nicht


    ocmd:nametagon(playerid,params[]) {
    if(PlayerInfo[playerid][pNametag]==1) return ShowInfoDialog(playerid,"Zugriff Verweigert","Du hast deinen Nametag bereits Aktiviert!");
    PlayerInfo[playerid][pNametag] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Nametag Aktiviert!");
    return 1;
    }
    ocmd:nametagoff(playerid,params[]) {
    if(PlayerInfo[playerid][pNametag]==0) return ShowInfoDialog(playerid,"Zugriff Verweigert","Du hast deinen Nametag bereits Deaktiviert!");
    PlayerInfo[playerid][pNametag] = 0;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Nametag Deaktiviert!");
    return 1;
    }

  • Bekomme bei meiner savePlayer Funktion einen MySQL Error.


    savePlayer(playerid) {
    new query[600];
    format(query, sizeof(query), "UPDATE `"#SQL_PRE"_accounts` SET \
    level=%i, admin=%i, money_hand=%i. \
    money_bank=%i, exp=%i, auto_schein=%i, \
    lkw_schein=%i, bike_schein=%i, \
    boot_schein=%i, waffe_klasse=%i, \
    helikopter_schein=%i, flugzeug-schein=%i, \
    angel_schein=%i, warns=%i, faction=%i, \
    rank=%i, job=%i, payday=%i, stvo_auto, \
    stvo_bike=%i, stvo_lkw=%i, tot=%i WHERE ÌD`=%i",
    pData[playerid][pLevel], pData[playerid][pAdmin], pData[playerid][pMoneyHand], pData[playerid][pMoneyBank], pData[playerid][pEXP], pData[playerid][pAutoLic],
    pData[playerid][pLKWLic], pData[playerid][pBikeLic], pData[playerid][pBoatLic], pData[playerid][pWeaponClass], pData[playerid][pHeliLic], pData[playerid][pPlaneLic],
    pData[pFishLic], pData[playerid][pWarns], pData[playerid][pFaction], pData[playerid][pRank], pData[playerid][pJob], pData[playerid][pPayday],
    pData[playerid][pStvo_Auto], pData[playerid][pStvo_Bike], pData[playerid][pStvo_LKW], pData[playerid][pTot], pData[playerid][pDBID]);
    return mysql_tquery(dbHandle, query);
    }


    SQL
    [16:40:12] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'money_bank=0, exp=0, auto_schein=0, lkw_schein=0, bike_schein=0, boot_schein=0, ' at line 1


    Kann jemand helfen?

  • stock GetFreeHotel(playerid)
    {
    for(new i = 0; i<MaxHaus; i++)
    {
    if(Haus[i][hArt] == 1)continue;
    if(Haus[i][hZimmerA] >= Haus[i][hZimmerM])continue;
    {
    SetPlayerPos(playerid,Haus[i][hX],Haus[i][hY],Haus[i][hZ]);
    break;
    }
    SendClientMessage(playerid, 0xFF0000FF, "[SERGEY] {FFFFFF}Es gibt keine freie Hotelszimmer mehr.");
    SendClientMessage(playerid, 0xFF0000FF, "[SERGEY] {FFFFFF}Deshalb wirst du jetzt wohl in ein Miethaus.");
    GetFreeMietHaus(playerid);
    }
    }


    wie würdet ihr das machen? Also damit nicht mehr dieser WARNING kommt: warning 225: unreachable code


    Ich weiß was der Code heißt etc. aber ich weiß sosnt nciht wie ich es anders schreiben könnte?

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

  • stock GetFreeHotel(playerid)
    {
    for(new i = 0; i<MaxHaus; i++)
    {
    if(Haus[i][hArt] == 1)continue;
    if(Haus[i][hZimmerA] >= Haus[i][hZimmerM]) //>= oder < ? Kommt drauf an was die bedeuten. Gegebenenfalls ändern.
    {
    SetPlayerPos(playerid,Haus[i][hX],Haus[i][hY],Haus[i][hZ]);
    return 1;
    }
    }
    SendClientMessage(playerid, 0xFF0000FF, "[SERGEY] {FFFFFF}Es gibt keine freie Hotelszimmer mehr.");
    SendClientMessage(playerid, 0xFF0000FF, "[SERGEY] {FFFFFF}Deshalb wirst du jetzt wohl in ein Miethaus.");
    GetFreeMietHaus(playerid);
    return 1;
    }

  • Gibt es eine Möglchkeit einen bestimmten Spieler zu beschleunigen (Beim Laufen/Sprinten)?


    Nein, außer: https://wiki.sa-mp.com/wiki/UsePlayerPedAnims



    Wie kann ich ein random erstellen der eine Zahl von x bis y selbstständig auswählt.


    Das wäre am besten, wenn du es so machst:


    #define randEx(%0,%1) ((random(0) % ((%0) - (%1))) + (%1))


    //Nutzung:


    printf("%d",randEx(5,50)); //gibt dir eine Zahl zwischen 5 und 50 aus


    mfg. :thumbup:

    ast2ufdyxkb1.png


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