[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
  • Hallo,


    wie funktioniert AttachObjectToVehicle bei dem hier:

    AutomatischeFSCars[0] = CreateVehicle(405,1197.1656,-1826.6783,13.2841,270,1,1,300); // Automatische Fahrschule Auto
    AutomatischeFSCars[1] = CreateVehicle(405,1197.0096,-1830.8462,13.2803,270,1,1,300); // Automatische Fahrschule Auto
    AutomatischeFSCars[2] = CreateVehicle(405,1197.2211,-1835.6235,13.2771,270,1,1,300); // Automatische Fahrschule Auto
    AutomatischeFSCars[3] = CreateVehicle(405,1211.2765,-1826.3643,13.2855,270,1,1,300); // Automatische Fahrschule Auto

    Hab was versucht, kriege leider Errors.

  • Dann zeig doch mal wie du es versucht hast..


    Das Wiki beschreibt das doch ziemlich gut: [wiki]AttachObjectToVehicle[/wiki]


    Oder auf Deutsch [wiki]AttachObjectToVehicle_DE[/wiki]

    ast2ufdyxkb1.png


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

  • Weiß jemand warum ich Errors bekomme? :(


    if(pPlayerInfo[targetID][targetAmount] >= 10000 && pPlayerInfo[killerid][pTeam] == TEAM_HITMAN)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Du wurdest von einem Auftragsmörder getötet, weil ein Kopfgeld auf dich ausgesetzt war.");
    }


    ocmd:contract(playerid, params[])
    {
    if(IsPlayerLoggedIn(playerid) && pInfo[playerid][pLevel] >= 3)
    {
    new targetID, targetAmount;
    if(!sscanf(params, "ui", targetID, targetAmount))
    {
    if(pInfo[playerid][pMoney] < targetAmount)
    {
    SendClientMessage(playerid, COLOR_RED, "Du hast nicht genügend Geld auf der Hand!");
    return true;
    }
    if(pInfo[targetID][pTeam] != TEAM_HITMAN)
    {
    if(targetAmount >= 50000)
    {
    if(targetAmount <= 250000)
    {
    if(!pInfo[targetID][pContract])
    {
    pInfo[targetID][pContract] = true;
    pInfo[targetID][pContractAmount] = targetAmount;


    GiveMoney(playerid, -targetAmount);


    new strTemp[128];
    format(strTemp, 128, "Es ist ein neuer Auftrag in deinem Computer verfügbar! (Provision: $%i)", targetAmount);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))
    continue;


    if(pInfo[i][pTeam] == TEAM_HITMAN)
    SendClientMessage(i, COLOR_LIGHTBLUE, strTemp);
    }


    new strQuery[512];
    mysql_format(Handle, strQuery, 256, "INSERT INTO contracts (username, targetname, amount) VALUES ('%e', '%e', '%i')", Playername(playerid), Playername(targetID), targetAmount);
    mysql_pquery(Handle, strQuery);



    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Der Spieler wird bereits von den Hitmans gesucht!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Mehr als $250.000 nehmen die Hitmans nicht an! Sie müssen das Geld auch irgendwie waschen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Die Hitmans werden erst ab einen Mindestbetrag von $50.000 aktiv!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du kannst keinen Hitman auf die Auftragsliste setzen!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Verwende: /contract [ID] [Auftragspreis]");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du musst mindestens Level 3 sein, um einen Auftrag auf einen anderen Spieler zu setzen!");
    }
    return 1;
    }


    error 028: invalid subscript (not an array or too many subscripts): "pPlayerInfo"
    error 017: undefined symbol "targetID"
    error 029: invalid expression, assumed zero
    fatal error 107: too many error messages on one line

  • Weil es in deinem Skript pInfo und nicht pPlayerInfo heißt...


    Zum anderen ist targetID nicht definiert...


    Fragst du das evtl unter OnPlayerDeath ab?


    Wenn ja, mach es mit playerid einfach :)

    ast2ufdyxkb1.png


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

  • Hat alles geklappt #EsIstSpät muss morgen Arbeiten xd doch einer ist noch da undzwar ist jetzt targetAmount nicht definiert und ja habe es unter OnPlayerDeath


    //EDIT Hatte noch einen fehler, hat geklappt danke :)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Dann zeig doch mal wie du es versucht hast..


    Das Wiki beschreibt das doch ziemlich gut: [wiki]AttachObjectToVehicle[/wiki]


    Oder auf Deutsch [wiki]AttachObjectToVehicle_DE[/wiki]

    Habs mal mit [wiki]Attach3DTextLabelToVehicle[/wiki] versucht, leider hat nur 1 von 4 Autos ein TextLabel.


    new Text3D:vehicle3Dtext[MAX_VEHICLES],fslabel;

    fslabel = AutomatischeFSCars[0] = CreateVehicle(405,1197.1656,-1826.6783,13.2841,270,1,1,300); // Automatische Fahrschule Auto
    fslabel = AutomatischeFSCars[1] = CreateVehicle(405,1197.0096,-1830.8462,13.2803,270,1,1,300); // Automatische Fahrschule Auto
    fslabel = AutomatischeFSCars[2] = CreateVehicle(405,1197.2211,-1835.6235,13.2771,270,1,1,300); // Automatische Fahrschule Auto
    fslabel = AutomatischeFSCars[3] = CreateVehicle(405,1211.2765,-1826.3643,13.2855,270,1,1,300); // Automatische Fahrschule Auto


    vehicle3Dtext[fslabel] = Create3DTextLabel("Fahrschule", 0x33CCFFAA, 0.0, 0.0, 0.0, 50.0, 0, 0);
    Attach3DTextLabelToVehicle(vehicle3Dtext[fslabel], fslabel, 0.0, 0.0, 2.0);

  • ocmd:gov(playerid, params[])
    {
    if(pInfo[playerid][pLeader])
    {
    new strMessage[256];
    if(!sscanf(params, "s[256]", strMessage))
    {
    new strTemp[512];
    format(strTemp, 512, "|___________ %s %s Durchsage ___________|",pFrakInfo[pInfo[playerid][pTeam]][fName]);
    SendClientMessageToAll(-1, strTemp);
    format(strTemp, 512, "
    %s %s",strMessage);
    SendClientMessageToAll(-1, strTemp);
    new strLog[128];
    format(strLog, 128, "Durchsage: %s %s", strMessage);
    sqlLogAdmin(playerid, strLog);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Verwende: /gov [Text]");
    }
    }
    return 1;
    }


    Ist das richtig? Ich möchte das es heißt; Rank Name des Leaders und Durchsage

  • Hey,


    ich kann auch etwas Scripten und ich habe eine Frage, wenn man auf meinem Server betreten sollten die "Spieler" 10 Sekunden warten und dann in einer andere Virtuelle Welt spawn. Wie macht man sowas ?

  • Nah, die Funktionen die da vorgeschlagen werden sind sehr aufwändig.


    Eine sehr effiziente und schnelle wäre:


    ast2ufdyxkb1.png


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