[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
  • Hi es liegt nicht an der Log funktion selbst sonder soblad ich wbbAddpost benutze kommt der error

  • hallo.wie fängt am besten an mit chripten an?


    Ich meine so:


    Ein kleines mysql system, fraktionen,jobs,admin system.



    Ich möchte gerne lernen aber die videos im youtobe ist nanche schwer zu erkennen.

  • Auf youtube kanns du dir die tutorials von MrMonat angucken ambesten von #1 anfangen.
    dort erkennt man es sehr gut und ein tutorial script ist auch immer in der beschreibung

  • Beitrag von 0x00 ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Spam ().
  • @[RSS]kevin7372


    Schau am besten mal hier vorbei, wo anders bist du vermutlich an falscher Adresse..
    Bei den Tutorials findet sich ganz bestimmt der ein oder andere hilfreiche Thread. ;)


    Tutorials

    kann ich zustimmen.


    Ansonsten learning by doing. Schau dir vielleicht einige Basics an die du zum Scripten z.B. für einen RL brauchst. Und dann fängst du mit einfachen Cmds an und gehst irgendwann zu komplexeren über. Vielleicht erstmal auch ohne MySQL, falls das schwerfällt. Mit etwas Grundwissen solltest du das aber dann auch hinbekommen.

    MfG. Adrian

  • Tag,


    Ich hab folgendes Problem, sobald sich ein Spieler einloggt wird sein Fahrzeug nicht gespawnt.



    CALLBACK:OnPlayerConnect(playerid)
    {
    new query[256], string[128], uhrzeit[32], playerIP[16];

    ResetPlayerData(playerid);
    SetPlayerColor(playerid, COLOR_GRAD1);
    SetPlayerVirtualWorld(playerid, playerid + 2001);
    GetPlayerIp(playerid, playerIP, sizeof(playerIP));
    IpInfo[playerid][ip__] = playerIP;

    if (!strcmp(AntiFlood[floodAdress], playerIP, false))
    {
    if ((AntiFlood[floodTime] + 3) > gettime())
    {
    format(string, sizeof(string), "Die IP-Adresse (%s) wurde vom Server gesperrt, Grund: IP-Flood", HideIP(playerIP));
    ABroadCast(COLOR_DARKRED, string, 3);

    UserAkte(playerid, playerid, "IP Ban (Flooding)");

    format(string, sizeof(string), "banip %s", playerIP);
    return SendRconCommand(string);
    }
    }



    AntiFlood[floodTime] = gettime();
    format(AntiFlood[floodAdress], 24, "%s", playerIP);

    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    if (IsLoggedIn(i))
    {
    if (PlayerInfo[i][pMessages])
    {
    if (GetAdminRank(i) == 0) format(string, sizeof(string), "%s (ID: %d) hat den Server betreten.", GetFullName(playerid), playerid);
    // if (GetAdminRank(i) == 1) format(string, sizeof(string), "%s (ID: %d, IP: %s) hat den Server betreten.", GetFullName(playerid), playerid, HideIP(playerIP));
    // if (GetAdminRank(i) >= 3) format(string, sizeof(string), "%s (ID: %d, IP: %s) hat den Server betreten.", GetFullName(playerid), playerid, playerIP);
    SendClientMessageEx(i, COLOR_BLUE, string);
    }
    }
    }



    HidePlayerDialog(playerid);
    StopAudioStreamForPlayer(playerid);
    ClearPlayerChat(playerid, 20);



    GameTextForPlayer(playerid, "~w~Verbindung wird hergestellt", 4000, 3);
    SetPlayerVirtualWorld(playerid, 1337);



    PlayAudioStreamForPlayer(playerid, RandomSongs[random(sizeof(RandomSongs))]);

    format(uhrzeit, sizeof(uhrzeit), "%02d.%02d.%02d - %02d:%02d", tag, monat, jahr, stunde, minute);
    mysql_format(myCon, query, sizeof(query), "INSERT INTO `script_loginlogout` (playername, type, data) VALUES ('%e', 'Login', '%s')", GetFullName(playerid), uhrzeit);
    mysql_tquery(myCon, query, "", "");
    mysql_free_result();

    mysql_format(myCon, query, sizeof(query), "SELECT `clientid`, `banadmin`, `reason`, `data` FROM `script_hddban` WHERE `clientid`='%s'", getCID(playerid));
    mysql_function_query(myCon, query, true, "CheckGPCBan", "d", playerid);

    SetTimerEx("OnLoginCamera", 3000, 0, "i", playerid);

    TogglePlayerClock(playerid, 0);
    FreezePlayer(playerid);
    StopLoopingAnim(playerid);
    LoadPlayerTextDraws(playerid);
    LoadPlayerMapIcons(playerid);
    RemoveObjects(playerid);



    PlayerInfo[playerid][pInformation] = CreateDynamic3DTextLabel(" ", COLOR_WHITE, 0.0, 0.0, 0.5, 20.0, playerid, INVALID_VEHICLE_ID, 0, -1, -1, -1, 100.0);
    PlayerTextDrawHide(playerid, Spec[playerid]);

    DisablePlayerCheckpointEx(playerid);

    UpdateMarkerForPlayer(playerid);
    UpdateMarkerForOther(playerid);

    DisablePlayerCheckpointEx(playerid);
    return 1;
    }


    Das ist alles was in OnPlayerConnect geschrieben steht

  • Du solltest eher den Abschnitt zeigen wo die Fahrzeuge geladen werden.


  • stock CreatePlayerVehicle(playerid, vehmodel, Float:posx, Float:posy, Float:posz, Float:posa, numberplate[], preis, neon, color1, color2)
    {
    new mainQuery[1537], secondQuery[256];

    for(new slot = 0; slot < MAX_PLAYER_VEHICLES; slot ++)
    {
    if (PrivateVehicle[playerid][slot][modelid] == 0)
    {
    format(PrivateVehicle[playerid][slot][vehBesitzer], 24, "%s", GetFullName(playerid));

    PrivateVehicle[playerid][slot][modelid] = vehmodel;
    PrivateVehicle[playerid][slot][vehPosX] = posx;
    PrivateVehicle[playerid][slot][vehPosY] = posy;
    PrivateVehicle[playerid][slot][vehPosZ] = posz;
    PrivateVehicle[playerid][slot][vehPosA] = posa;
    PrivateVehicle[playerid][slot][vehInterior] = GetPlayerInterior(playerid);
    PrivateVehicle[playerid][slot][vehWorld] = GetPlayerVirtualWorld(playerid);
    PrivateVehicle[playerid][slot][vehColor1] = color1;
    PrivateVehicle[playerid][slot][vehColor2] = color2;
    PrivateVehicle[playerid][slot][vehPaintjob] = -1;
    PrivateVehicle[playerid][slot][vehSpoiler] = 0;
    PrivateVehicle[playerid][slot][vehHood] = 0;
    PrivateVehicle[playerid][slot][vehRoof] = 0;
    PrivateVehicle[playerid][slot][vehSideskirt] = 0;
    PrivateVehicle[playerid][slot][vehLamps] = 0;
    PrivateVehicle[playerid][slot][vehNitro] = 0;
    PrivateVehicle[playerid][slot][vehExhaust] = 0;
    PrivateVehicle[playerid][slot][vehWheels] = 0;
    PrivateVehicle[playerid][slot][vehStereo] = 0;
    PrivateVehicle[playerid][slot][vehHydraulics] = 0;
    PrivateVehicle[playerid][slot][vehFrontBumper] = 0;
    PrivateVehicle[playerid][slot][vehRearBumper] = 0;
    PrivateVehicle[playerid][slot][vehVentRight] = 0;
    PrivateVehicle[playerid][slot][vehVentLeft] = 0;
    PrivateVehicle[playerid][slot][vehPreis] = preis;
    PrivateVehicle[playerid][slot][vehHealth] = 1000.0;
    PrivateVehicle[playerid][slot][vehNeonID] = neon;
    PrivateVehicle[playerid][slot][vehTankKM] = 0;
    PrivateVehicle[playerid][slot][vehKMStandCount] = 0;
    PrivateVehicle[playerid][slot][vehKMStand] = 0;
    PrivateVehicle[playerid][slot][vehMaterialien] = 0;
    PrivateVehicle[playerid][slot][vehDrogen] = 0;
    PrivateVehicle[playerid][slot][vehAKRounds] = 0;
    PrivateVehicle[playerid][slot][vehM4Rounds] = 0;
    PrivateVehicle[playerid][slot][vehSniperRounds] = 0;
    PrivateVehicle[playerid][slot][vehDeagleRounds] = 0;
    PrivateVehicle[playerid][slot][vehMP5Rounds] = 0;
    PrivateVehicle[playerid][slot][vehShotgunRounds] = 0;
    format(PrivateVehicle[playerid][slot][vehNumberPlate], 16, numberplate);

    PrivateVehicle[playerid][slot][vehID] = CreateVehicleEx(PrivateVehicle[playerid][slot][modelid], PrivateVehicle[playerid][slot][vehPosX], PrivateVehicle[playerid][slot][vehPosY], PrivateVehicle[playerid][slot][vehPosZ], PrivateVehicle[playerid][slot][vehPosA], PrivateVehicle[playerid][slot][vehColor1], PrivateVehicle[playerid][slot][vehColor2], -1, false, 0);

    new playerName[MAX_PLAYER_NAME+3], nPlate[32], cutName[24+1];

    GetPlayerName(playerid, playerName, sizeof(playerName));
    strmid(cutName, playerName, 0, 3, sizeof(cutName));

    format(nPlate, sizeof(nPlate), "{B22222}SA %s %d", cutName, PrivateVehicle[playerid][slot][vehID]);
    SetVehicleNumberPlate(PrivateVehicle[playerid][slot][vehID], nPlate);
    SetVehicleHealth(PrivateVehicle[playerid][slot][vehID], PrivateVehicle[playerid][slot][vehHealth]);



    strdel(mainQuery, 0, sizeof(mainQuery));
    strcat(mainQuery, "INSERT INTO `script_vehicles` (`vehBesitzer`, `slot`, `modelid`, `vehPosX`, `vehPosY`, `vehPosZ`, `vehPosA`, `vehHealth`, `vehColor1`, `vehColor2`, ");
    strcat(mainQuery, "`vehPaintjob`, `vehSpoiler`, `vehHood`, `vehRoof`, `vehSideskirt`, `vehLamps`, `vehNitro`, `vehExhaust`, `vehWheels`, `vehStereo`, `vehHydraulics`, ");
    strcat(mainQuery, "`vehFrontBumper`, `vehRearBumper`, `vehVentRight`, `vehVentLeft`, `vehPreis`, `vehNeonID`, `vehNumberPlate`, `vehFuel`, `vehKMStand`, `vehInterior`, ");
    strcat(mainQuery, "`vehWorld`,`vehMaterialien`,`vehDrogen`, `vehAKRounds`, `vehM4Rounds`, `vehSniperRounds`, `vehDeagleRounds`, `vehMP5Rounds`, `vehShotgunRounds`) VALUES (");
    format(secondQuery, sizeof(secondQuery), "'%s', '%d', '%d', '%f', '%f', '%f', '%f', '%f', '%d', '%d', ",
    PrivateVehicle[playerid][slot][vehBesitzer], slot, PrivateVehicle[playerid][slot][modelid], PrivateVehicle[playerid][slot][vehPosX],
    PrivateVehicle[playerid][slot][vehPosY], PrivateVehicle[playerid][slot][vehPosZ], PrivateVehicle[playerid][slot][vehPosA],
    PrivateVehicle[playerid][slot][vehHealth], PrivateVehicle[playerid][slot][vehColor1], PrivateVehicle[playerid][slot][vehColor2]);
    strcat(mainQuery, secondQuery);

    format(secondQuery, sizeof(secondQuery), "'%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', ",
    PrivateVehicle[playerid][slot][vehPaintjob], PrivateVehicle[playerid][slot][vehSpoiler], PrivateVehicle[playerid][slot][vehHood],
    PrivateVehicle[playerid][slot][vehRoof], PrivateVehicle[playerid][slot][vehSideskirt], PrivateVehicle[playerid][slot][vehLamps],
    PrivateVehicle[playerid][slot][vehNitro], PrivateVehicle[playerid][slot][vehExhaust], PrivateVehicle[playerid][slot][vehWheels],
    PrivateVehicle[playerid][slot][vehStereo], PrivateVehicle[playerid][slot][vehHydraulics]);
    strcat(mainQuery, secondQuery);



    format(secondQuery, sizeof(secondQuery), "'%d', '%d', '%d', '%d', '%d', '%d', '%s', '%f', '%f', '%d', '%d', '%d', '%d', ",
    PrivateVehicle[playerid][slot][vehFrontBumper], PrivateVehicle[playerid][slot][vehRearBumper], PrivateVehicle[playerid][slot][vehVentRight],
    PrivateVehicle[playerid][slot][vehVentLeft], PrivateVehicle[playerid][slot][vehPreis], PrivateVehicle[playerid][slot][vehNeonID],
    PrivateVehicle[playerid][slot][vehNumberPlate], PrivateVehicle[playerid][slot][vehFuel], PrivateVehicle[playerid][slot][vehKMStand],
    PrivateVehicle[playerid][slot][vehInterior], PrivateVehicle[playerid][slot][vehWorld],PrivateVehicle[playerid][slot][vehMaterialien],PrivateVehicle[playerid][slot][vehDrogen]);
    strcat(mainQuery, secondQuery);

    format(secondQuery, sizeof(secondQuery), "'%d', '%d', '%d', '%d', '%d', '%d')", PrivateVehicle[playerid][slot][vehAKRounds], PrivateVehicle[playerid][slot][vehM4Rounds], PrivateVehicle[playerid][slot][vehSniperRounds],
    PrivateVehicle[playerid][slot][vehDeagleRounds], PrivateVehicle[playerid][slot][vehMP5Rounds], PrivateVehicle[playerid][slot][vehShotgunRounds]);
    strcat(mainQuery, secondQuery);
    mysql_function_query(myCon, mainQuery, false, "", "");

    SetVehicleToRespawn(PrivateVehicle[playerid][slot][vehID]);
    Vehicle[PrivateVehicle[playerid][slot][vehID]][vehFuel] = VehicleData[vehmodel-400][vehMaxTank];
    return 1;
    }
    }



    return 1;
    }

  • Das Problem ist, das die Fahrzeuge beim Serverstart, obwohl sie gekauft wurden, nicht bei /carkey eingesehen werden können und auch ingame nicht gespawnt werden bzw. sichtbar sind.

    MfG. Adrian

  • Hey,


    Hier wird ein Objekt verschoben. ist es am schlausten eine globale Variable zu erstellen und abzufragen ob dieses Objekt bereits gemoved wurde? (Zeile 13.)
    Gibt es alternativen?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Nabend mal eine frag bei einem System lasse ich mit Punkte in einem Dialog anzeigen aber sobald es 12 sind kriegt man ein Crash.
    Bei 11 werden noch alle angezeigt aber wieso ?

    Code
    for(new i = 0; i < sizeof(Telei); i++)
    			    {
    			        if(Telei[i][ID] == -1) continue;
    			        if(Telei[i][tele_oteil] != 1) continue;
    			        if(count == 0) format(string, sizeof(string), "{FFFFFF}Beschreibung: %s | Ersteller: %s", Telei[i][tele_name], Telei[i][tele_ersteller]);
    			        else format(string, sizeof(string), "{FFFFFF}%s\nBeschreibung: %s | Ersteller: %s", string, Telei[i][tele_name], Telei[i][tele_ersteller]);
    			        count ++;
    			    }
    			    if(count == 0) return SendClientMessage(playerid, COLOR_RED, "Es gibt dort keine Teleports.");
    			    ShowPlayerDialog(playerid, DIALOG_TELE1, DIALOG_STYLE_LIST, "{FFFFFF}Teleport's Los Santos", string, "{FFFFFF}Teleportieren", "{FFFFFF}Abbruch");