[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 hab 1 Wunsch und 1 Frage^^ Fangen wir mit dem Wunsch an:



    public SetPlayerSpawn(playerid)
    {
    new string[128], rand;
    if(IsPlayerConnected(playerid))
    {
    if(!IsPlayerNPC(playerid))
    {
    if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0)
    {
    if(PlayerInfo[playerid][pAdminDuty] == 1) return 1;
    if(FirstSpawn[playerid] != 1)
    {
    SetRealMoney(playerid, ScriptMoney[playerid]);
    PlayerInfo[playerid][pDeaths] += 1;
    SetPlayerHealth(playerid, 50.0);
    SafeSetPlayerInterior(playerid, 3);
    rand = random(sizeof(gMedicSpawns));
    SafeSetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); // Warp the player
    SetPlayerFacingAngle(playerid, 0);
    TogglePlayerControllable(playerid, 0);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Du musst dich jetzt ausruhen ...", 5000, 3);
    ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
    if(PlayerInfo[playerid][pRegularRank] == 1)
    {
    SetTimerEx("ReleaseFromHospital", 20000, 0, "i", playerid);
    }
    else if(PlayerInfo[playerid][pRegularRank] == 2)
    {
    SetTimerEx("ReleaseFromHospital", 17500, 0, "i", playerid);
    }
    else if(PlayerInfo[playerid][pRegularRank] == 3)
    {
    SetTimerEx("ReleaseFromHospital", 15000, 0, "i", playerid);
    }
    else if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    SetTimerEx("ReleaseFromHospital", 12500, 0, "i", playerid);
    }
    else if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    SetTimerEx("ReleaseFromHospital", 10000, 0, "i", playerid);
    }
    else
    {
    SetTimerEx("ReleaseFromHospital", 25000, 0, "i", playerid);
    }
    PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0);
    return 1;
    }
    }
    if(PlayerInfo[playerid][pAdminDuty] == 1 && PlayerInfo[playerid][pAdmin] >= 3)
    {
    SetPlayerSkin(playerid, 294);
    if(PlayerInfo[playerid][pAdmin] >= 6)
    {
    SafeResetPlayerWeapons(playerid);
    SafeGivePlayerWeapon(playerid, 42, 10000);
    SafeGivePlayerWeapon(playerid, 39, 10000);
    SafeGivePlayerWeapon(playerid, 38, 10000);
    SafeGivePlayerWeapon(playerid, 34, 10000);
    SafeGivePlayerWeapon(playerid, 31, 10000);
    SafeGivePlayerWeapon(playerid, 29, 10000);
    SafeGivePlayerWeapon(playerid, 27, 10000);
    SafeGivePlayerWeapon(playerid, 24, 10000);
    SafeGivePlayerWeapon(playerid, 40, 1);
    SafeGivePlayerWeapon(playerid, 10, 1);
    SafeGivePlayerWeapon(playerid, 9, 1);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, 1000);
    SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, 1000);
    SetPlayerHealth(playerid, 99999);
    SetPlayerArmour(playerid, 99999);
    }
    }
    if(Spectate[playerid] != 255)
    {
    SafeSetPlayerPos(playerid, TeleportDest[playerid][0],TeleportDest[playerid][1],TeleportDest[playerid][2]);
    SafeSetPlayerInterior(playerid, Interior[playerid]);
    SetPlayerVirtualWorld(playerid, VirWorld[playerid]);
    if(PlayerInfo[playerid][pAdmin] >= 6)
    {
    if(PlayerInfo[playerid][pAdminDuty] == 1)
    {
    SetPlayerHealth(playerid, SpHealth[playerid]);
    SetPlayerArmour(playerid, SpArmour[playerid]);
    }
    else
    {
    SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]);
    SetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
    }
    }
    else
    {
    SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]);
    SetPlayerArmour(playerid, PlayerInfo[playerid][pArmour]);
    }
    SetPlayerWeapons(playerid);
    SetPlayerToTeamColor(playerid);
    Spectate[playerid] = 255;
    TextDrawShowForPlayer(playerid, Textdraw44);
    TextDrawShowForPlayer(playerid, Textdraw45);
    TextDrawShowForPlayer(playerid, Textdraw55);
    TextDrawShowForPlayer(playerid, Textdraw51[playerid]);
    TextDrawHideForPlayer(playerid, Textdraw54[playerid]);
    if(PlayerInfo[playerid][pWatch] == 1)
    {
    TextDrawShowForPlayer(playerid, Textdraw56);
    TextDrawShowForPlayer(playerid, Textdraw57);
    TextDrawShowForPlayer(playerid, Textdraw58);
    }
    return 1;
    }
    if(PlayerInfo[playerid][pAndro] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "US Airlines: Ein Arzt hat dich gerettet!");
    SafeSetPlayerInterior(playerid, PlayerInfo[playerid][pInt]);
    SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirWorld]);
    SafeSetPlayerPos(playerid, 315.745,984.969,1958.919);
    return 1;
    }
    if(PlayerInfo[playerid][pJet] == 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "US Airlines: Ein Arzt hat dich gerettet!");
    SafeSetPlayerInterior(playerid, PlayerInfo[playerid][pInt]);
    SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirWorld]);
    SafeSetPlayerPos(playerid, 3.7333,23.0483,1199.6012);
    return 1;
    }


    Hier hat mir Firerfan gesagt da muss ich die Variablen beim Tod des Spielers und beim Start setzen.. nur check ich das nicht so ganz. (Das Problem is das wenn ich sterbe spawne ich nicht am KH) Kann mir einer sagen wo ich die Variablen hinmachen muss oder am besten den richtigen Code geben? ^^ (Link: Habe ein "KH-Bug")


    Frage:


    Habe das Dynamic Fraktion Car System als Filterscript eingefügt, und ich musste noch solche "Forwards" in mein GM einfügen damit es richtig funktioniert. Nur Leider bekomm ich diese Warnings:


    C[color=green]:[/color]\Users\Benedikt\Desktop\Eigener Server\Server_1 (Raven[color=red]'s Roleplay)\gamemodes\larp.pwn(1419) : error 017: undefined symbol "PlayerInfo"
    C:\Users\Benedikt\Desktop\Eigener Server\Server_1 (Raven'[/color]s Roleplay)\gamemodes\larp.pwn([color=darkorange]1425[/color]) [color=green]:[/color] error [color=darkorange]017[/color][color=green]:[/color] undefined symbol [color=red]"PlayerInfo"[/color]
    C[color=green]:[/color]\Users\Benedikt\Desktop\Eigener Server\Server_1 (Raven's Roleplay)\gamemodes\larp.pwn([color=darkorange]1431[/color]) [color=green]:[/color] error [color=darkorange]017[/color][color=green]:[/color] undefined symbol [color=red]"PlayerInfo"[/color]


    Compilation aborted.Pawn compiler [color=darkorange]3[/color].[color=darkorange]2[/color].[color=darkorange]3664[/color] Copyright (c) [color=darkorange]1997[/color][color=green]-[/color][color=darkorange]2006[/color], ITB CompuPhase



    [color=darkorange]3[/color] Errors.


    (Link: [ FILTERSCRIPT ] [DYNAMIC] Fraction - Car - System v1.0)



    So hoffe mal das ist nicht zu viel^^ Danke für die Hilfe ^^

    mfg

  • Hey,
    Nochmal ne kleine Frage:


    Ist es möglich bei SendClientMessage die Farbe mehrmals zu ändern?
    Also bei GameTextForPlayer kann man ja beispielsweise durch ~r~ ändern und dann mit ~w~ weiterschreiben, versteht ihr?


    lg

  • Ja , dann musst du Hexadezimalzahlen (ich glaub so heißen die) einfügen.
    Versuchs mal mit der SuFu , ich glaub da gibts was , wo das genauer beschrieben wird.


    Ich meine mich daran zu erinnern das es so geht:


    SendClientMessage(playerid, {Farbe} Text , {FARBE_ROT} Text in roter Farbe);


    Das was ich in den Klammern geschrieben hab musst du noch durch die Hexadezimalzahl ersetzen.

    PN Support? Kannste knicken!

  • die Farben kannst du alle definieren, das heißt du musst nicht immer die Hexadezimalzahl einsetzen


    ganz oben sind einige


    #define


    da gibst du einfach z.B. das ein


    #define FARBE_ROT 0F51452 (Hexadezimalzahl.. ka was für ne Farbe hab iwas eingegeben^^)

    mfg

  • #define COLOR_REDA 0xFF0000FF//ServerOwner
    #define COLOR_LIGHTBLUE 0x33CCFFAA//Administrator
    #define COLOR_LIGHTGREEN 0x9ACD32AA//moderator
    #define COLOR_ORANGERED 0xFF4500AA//supporter


    forward OnPlayerLogin(playerid);
    public OnPlayerLogin()
    {
    new sup[MAX_PLAYER_NAME];
    new Owner[MAX_PLAYER_NAME];
    new mod[MAX_PLAYER_NAME];
    new adm[MAX_PLAYER_NAME];


    if(Player[playerid][admin] == 2000) //adminlvl 4 =ServerOwner könnt auch 1337 Admin lvl
    {
    Owner = "ServerOwner";
    ServerOwner[playerid] = Create3DTextLabel(Owner,COLOR_REDA,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(ServerOwner[playerid], playerid, 0.0, 0.0, 0.45);
    }
    if(Player[playerid][admin] == 1)//adminlvl 1 =moderator :)
    {
    mod = "Moderator]";
    Moderator[playerid] = Create3DTextLabel(mod,COLOR_LIGHTGREEN,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(Moderator[playerid], playerid, 0.0, 0.0, 0.45);
    }
    if(Player[playerid][admin] == 2)//adminlvl 2 =supporter
    {
    adm = "Supporter";
    Administrator[playerid] = Create3DTextLabel(adm,COLOR_LIGHTBLUE,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(Administrator[playerid], playerid, 0.0, 0.0, 0.45);
    }
    if(Player[playerid][admin] == 3)//adminlvl 3=administrator
    {
    sup = "Administrator";
    SuperAdmin[playerid] = Create3DTextLabel(sup,COLOR_ORANGERED,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(SuperAdmin[playerid], playerid, 0.0, 0.0, 0.45);
    }
    public OnPlayerDisconnect(playerid)
    Delete3DTextLabel(ServerOwner[playerid]);//Löscht den 3D Textlabel
    Delete3DTextLabel(Moderator[playerid]);//same
    Delete3DTextLabel(Administrator[playerid]);//same
    Delete3DTextLabel(Supporter[playerid])//same


    ich check das nicht wie ich es ohne errors schaffen kann


    Einmal editiert, zuletzt von Mark () aus folgendem Grund: rechtsschreibfehler (meine leertaste klemmt) + verbesserrung

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