[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
  • Alles klar danke, aber irgendwie soll er ja zum Team zugewiesen werden.. kann ich einfach so machen: case 0: GameTextForPlayer(playerid, "Skin 1", 5000, 4),gTeam[playerid] = TEAM_USARMY ; ... ? Oder wie soll dass gehen?

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

  • Einfach so:
    switch(classid)
    {
    case 0:
    {
    GameTextForPlayer(playerid, "Skin 1", 5000, 4);
    gTeam[playerid] = TEAM_USARMY;
    }
    case 1:
    {
    GameTextForPlayer(playerid, "Skin 2", 5000, 4);
    gTeam[playerid] = TEAM_USARMY;
    }
    case 2:
    {
    GameTextForPlayer(playerid, "Skin 3", 5000, 4);
    gTeam[playerid] = TEAM_IRGDNWAS;
    }
    }


  • Ich würde es anders machen....


    new string[10];
    format(string,sizeof(string),"Skin %i",classid+1);
    GameTextForPlayer(playerid,string, 5000, 4);
    gTeam[playerid] = TEAM_IRGDNWAS;

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Poste bitte den dazugehörigen Code.

    Derzeitig habe ich es so:



    //Oben im Skript:


    new Float:RandomArmySpawn[][4] =
    {
    // Position(X, Y, Z and Facing Angle)
    {245.2496,1858.8896,14.0840,352.6703},
    {203.5284,1873.5922,13.1470,267.9237},
    {226.0326,1924.9410,17.6406,183.1771}
    };


    new Float:RandomTerroristenSpawn[][4] =
    {
    // Position(X, Y, Z and Facing Angle)
    {-399.3865,2208.9065,42.4261,13.7749},
    {-384.8585,2206.3315,42.4235,283.4435},
    {-367.2962,2238.7842,42.4844,288.8203}
    };
    new value = random(5);//<- Ist das so richtig? Ich bin mir nicht ganz sicher deswegen. Ich glaub statt random muss "[size=10]RandomArmySpawn[/size]" hin oder nicht?
    //unter onPlayerSpawn


    [size=10]if(gTeam[playerid] == TEAM_USARMY)
    {
    new rand = random(sizeof(RandomArmySpawn));
    SendClientMessage(playerid,-1,"Du bist ein Army!");
    }
    else if(gTeam[playerid] == TEAM_TERRORISTEN)
    {
    new rand = random(sizeof(RandomTerroristenSpawn));
    SendClientMessage(playerid,-1,"Du bist ein Terrorist!");[/size]
    [size=8] }[/size]

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

  • Beitrag von [KoSoVa] ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Alles Klar danke geht jetzt alles!


    -> Aber wieder ein Problem... Ich will jetzt die Ranks per Befehl und sowie per Textdraw auslesen.. Textdraw und so passt alles. Aber es steht immer wieder Rank Private.. Obwohl da eigentlich jetzt Captain stehen sollte(ab 1500 Score) In der Datenbank habe ich ebenso auch 1500 Score eingetragen jedoch passiert einfach nichts. Ich habe ebenso einen Befehl reingemacht. (/ranks) womit er den Rank im Spiel abliest , aber auch da steht immer "Private"
    ... Habe es ebenso grade auch per printf.... ausgeben und es wird genau der Score angzeigt wie aus der Datenbank...



    Hier die Codes:



    //TextDrawString:
    new string[144];



    format(string, sizeof(string), "~b~US Army ~w~- ~r~%s", GetUSRank(playerid));
    PlayerTextDrawSetString(playerid,USANZEIGE[playerid],string);
    PlayerTextDrawShow(playerid, USANZEIGE[playerid]);


    //Der befehl /ranks
    ocmd:ranks(playerid,params[])
    {
    new string[128];
    format(string,sizeof(string),"Dein Rank ist: '%s'!",GetUSRank(playerid));
    SendClientMessage(playerid,0xFF0000FF,string);
    return 1;
    }


    //mein GetUSRank


    stock GetUSRank(playerid)
    {
    new usrankname[30];
    if(SpielerInfo[playerid][pScore] >= 0) { usrankname = "Private"; }
    else if(SpielerInfo[playerid][pScore] >= 50) { usrankname = "Specialist"; }
    else if(SpielerInfo[playerid][pScore] >= 650) { usrankname = "Coporal"; }
    else if(SpielerInfo[playerid][pScore] >= 850) { usrankname = "Sergeant"; }
    else if(SpielerInfo[playerid][pScore] >= 1500) { usrankname = "Captain"; }
    else if(SpielerInfo[playerid][pScore] >= 4500) { usrankname = "Major"; }
    else if(SpielerInfo[playerid][pScore] >= 6500) { usrankname = "Lieutenant"; }
    else if(SpielerInfo[playerid][pScore] >= 10000) { usrankname = "General"; }
    return usrankname;
    }

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

  • Alles klar danke .. es geht jetzt zwar... aber ich komme an den /setarmour & /sethp nicht weiter.


    Der Fehler: Ich hab es per String gemacht , und wenn es dann ingame steht kommen da solche Zahlen raus: "5481861618616" obwohl ich nur 1 oder 50 eingegeben hab. Es geht halt , aber nur die Texte sind falsch:



    ocmd:setarmour(playerid,params[])
    {
    if(SpielerInfo[playerid][pAlevel] >= 3)
    {
    new pID,string[128],aname[MAX_PLAYERS],spieler[MAX_PLAYERS],Float:armour;
    if(IsPlayerConnected(pID))
    {
    if(sscanf(params,"uf",pID,armour))return SendClientMessage(playerid, 0xFF0000FF,"[FEHLER]{FFFFFF} /SetArmour [Name/ID] [Armour]");
    {
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,spieler,sizeof(spieler));
    format(string,sizeof(string),"[A-INFO]{FF9100} %s %s {FFFFFF}hat {FF9100}%s's {FFFFFF}Armour auf {00FF00}%i {FFFFFF}gesetzt!",GetPlayerAdminRankName(playerid),aname,spieler,armour);
    SendAdminMessage(0xFF0000FF,string);
    format(string,sizeof(string),"[A-INFO]{FF9100} %s %s {FFFFFF}hat dein Armour auf {00FF00}%i {FFFFFF}gesetzt!",GetPlayerAdminRankName(playerid),aname,armour);
    SendClientMessage(pID,0xFF0000FF,string);
    SetPlayerArmour(playerid, armour);
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"[FEHLER]{FFFFFF} Dieser Spieler ist nicht Online!");
    }
    }
    return 1;
    }

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

  • Beitrag von [KoSoVa] ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Alles Klar danke!



    Jetzt habe ich eine Frage: Ich möchte gerne jetzt einen System schreiben, indem man wenn man gebannt wurde , und dann wird ein Timer gestartet und wenn der Spieler nicht entbannt wurde etc. dann soll er nach dem der Time abgelaufen ist, gelöscht werden. Würde dass gehen? Falls ja , wie genau denn? (Ich besitze R5 MySQL)

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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen