[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
  • for(new hp = 0; hp < sizeof(HealthPickups); hp++)
    {
    if (pickupid == HealthPickups[hp])
    {

  • wie heißt das OnPlayerPrivmsg auf 0.3 ? weil auf 0.2 geht es nur bei 0.3 ned da kommt warning

  • Hallo
    Habe ein Problem


    Ich habe unter GameModeInit


    AllowInteriorWeapons(0);


    Allerdings, kann ich immernoch in einem Ammunation Waffen nehmen.


    Oder kann es sein, dass wenn man sich wie bei mir reinteleportiert, diese Funktion nicht wirkt ?

  • So, habe wieder ein Problem. Wenn ich kompiliere, öffnet sich das Compiler-Fenster, aber nichts steht drin. Es ist ein komplett leeres Filterscript, wo nur ein paar teleports drin stehen.


    Anfang von OnPlayerCommandText:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];
    new cmd[256];
    new tmp[256];
    cmd = strtok(cmdtext, idx);


    Und die Commands, bei denen ich denke, dass es an denen liegt:


    if(strcmp(cmd, "/goto1", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 2644.4778,-2038.8990,13.5500);
    }
    else
    {
    SetPlayerPos(playerid, 2644.4778,-2038.8990,13.5500);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }


    Und das ganze Script ...


    Spoiler anzeigen
    #define FILTERSCRIPT
    #define COLOR_GRAD1 0xB4B5B7FF

    Spoiler anzeigen
    #include <a_samp>

    Spoiler anzeigen
    #if defined FILTERSCRIPT

    Spoiler anzeigen
    public OnFilterScriptInit()
    {
    return 1;
    }

    Spoiler anzeigen
    public OnFilterScriptExit()
    {
    return 1;
    }

    Spoiler anzeigen
    main()
    {
    print("----------------------------------\n");
    }

    Spoiler anzeigen
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[256];
    new cmd[256];
    new tmp[256];
    cmd = strtok(cmdtext, idx);

    Spoiler anzeigen
    if(strcmp(cmd, "/goto1", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 2644.4778,-2038.8990,13.5500);
    }
    else
    {
    SetPlayerPos(playerid, 2644.4778,-2038.8990,13.5500);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto2", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 1972.8408,-1622.1426,15.9688);
    }
    else
    {
    SetPlayerPos(playerid, 1972.8408,-1622.1426,15.9688);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto3", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 2796.7512,-2481.5188,12.5143);
    }
    else
    {
    SetPlayerPos(playerid, 2796.7512,-2481.5188,12.5143);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto4", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 1643.2224,-1696.4561,15.4013);
    }
    else
    {
    SetPlayerPos(playerid, 1643.2224,-1696.4561,15.4013);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto5", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, -1935.9930,239.1291,34.3210);
    }
    else
    {
    SetPlayerPos(playerid, -1935.9930,239.1291,34.3210);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto6", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, -2716.0480,217.9418,4.3494);
    }
    else
    {
    SetPlayerPos(playerid, -2716.0480,217.9418,4.3494);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto7", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 2386.6780,1043.5566);
    }
    else
    {
    SetPlayerPos(playerid, 2386.6780,1043.5566);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto8", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 1843.2667,-1854.5895,12.0828);
    }
    else
    {
    SetPlayerPos(playerid, 1843.2667,-1854.5895,12.0828);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto9", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 1025.2795,-1029.2299,32.1016);
    }
    else
    {
    SetPlayerPos(playerid, 1025.2795,-1029.2299,32.1016);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto10", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 488.2341,-1735.4591,11.1416);
    }
    else
    {
    SetPlayerPos(playerid, 488.2341,-1735.4591,11.1416);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto11", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 2071.5410,-1831.4143,13.5469);
    }
    else
    {
    SetPlayerPos(playerid, 2071.5410,-1831.4143,13.5469);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto12", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, 719.8199,-462.4768,16.3359);
    }
    else
    {
    SetPlayerPos(playerid, 719.8199,-462.4768,16.3359);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/goto13", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, -1904.4561,277.8578,41.0469);
    }
    else
    {
    SetPlayerPos(playerid, -1904.4561,277.8578,41.0469);
    }
    SendClientMessage(playerid, COLOR_GRAD1, " Du wurdest teleportiert");
    SetPlayerInterior(playerid,0);
    }
    }
    return 1;
    }
    return 0;
    }


    Hoffe auf eine Antwort.


    MfG
    xXPhoenixXx

    How do I post wrong?


    After successfully ignoring Google, the FAQ, Stickies and the Search button, I create two to five new threads in the wrong section, with creative titles and unclear text that everybody can imagine something different from.

  • Das fehlt ja nicht ^^


    Na ja, habs schon selbst herausgefunden, sorry. War bei jedem Teleport eine Klammer am Ende zu viel.


    EDIT:: Und schon wieder ich :P


    Habe wieder einmal ein Problem. Wenn man stirbt, kommt man ins Krankenhaus, ja ja, aber nicht wieder raus. Wenn man gezahlt hat geht es wieder von vorne los!


    Spoiler anzeigen
    if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0 && PlayerPaintballing[playerid] == 0)
    {
    if(FirstSpawn[playerid] != 1)
    {
    /*new string[256];
    new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
    SafeGivePlayerMoney(playerid, -cut);
    format(string, sizeof(string), "DOC: Your Medical Bill comes to $%d, Have a nice day.", cut);
    SendClientMessage(playerid, TEAM_CYAN_COLOR, string);
    MedicBill[playerid] = 0;
    MedicTime[playerid] = 0;
    NeedMedicTime[playerid] = 0;*/
    PlayerInfo[playerid][pDeaths] += 1;
    SetPlayerHealth(playerid, 50.0);
    SetPlayerInterior(playerid, 6);
    PlayerInfo[playerid][pInt] = 6;
    rand = random(sizeof(gMedicSpawns));
    SetPlayerPos(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 erholen...", 30000, 3);
    JustDied[playerid] = 1;
    MedicTime[playerid] = 1;
    ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
    if(PlayerInfo[playerid][pDonateRank] > 0)
    {
    NeedMedicTime[playerid] = 30;
    }
    else
    {
    NeedMedicTime[playerid] = 30;
    }
    PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0);
    return 1;
    }
    }
    if(JustDied[playerid] == 1)
    {
    if(GetPlayerVirtualWorld(playerid) != 0 || PlayerInfo[playerid][pVirWorld] != 0)
    {
    SetPlayerVirtualWorld(playerid, 0);
    PlayerInfo[playerid][pVirWorld] = 0;
    }
    SetPlayerPos(playerid, 1182.5638,-1323.5256,13.5790);
    SetPlayerFacingAngle(playerid, 270.0);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }


    Spoiler anzeigen
    if(MedicTime[i] > 0)
    {
    if(MedicTime[i] == 3)
    {
    SetPlayerInterior(i, 3);
    PlayerInfo[i][pInt] = 3;
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(i, X,Y,Z);
    SetPlayerCameraPos(i, X - 3, Y, Z);
    SetPlayerCameraLookAt(i,X,Y,Z);
    }
    MedicTime[i] ++;
    if(MedicTime[i] >= NeedMedicTime[i])
    {
    new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
    //SafeGivePlayerMoney(i, -cut);
    format(string, sizeof(string), "Doctor: Your Medical Bill comes to $%d, Have a nice day.", cut);
    SendClientMessage(i, TEAM_CYAN_COLOR, string);
    TogglePlayerControllable(i, 1);
    MedicBill[i] = 0;
    MedicTime[i] = 0;
    NeedMedicTime[i] = 0;
    PlayerInfo[i][pDeaths] += 1;
    PlayerFixRadio(i);
    ClearAnimations(i);
    SpawnPlayer(i);
    }
    }


    Weiß jemand, was da falsch sein könnte? Und ja, es ist GF :rolleyes:


    MfG
    xXPhoenixXx


    Und noch einmal EDIT:: Ich habe den Fehler gefunden. Die Variable MedicBill wurde beim spawnen immer auf 1 gesetzt, deshalb ist die Schleife entstanden. Jetzt habe ich dies geändert, aber nun kommt man beim Tod nicht mehr ins Krankenhaus, sondern wieder zu dem Spawn, bei dem man auch ist, wenn man einloggt.

    Spoiler anzeigen
    if(newstate == PLAYER_STATE_SPAWNED)
    {
    new Float: lwx, Float:lwy, Float:lwz;
    GetPlayerPos(playerid, lwx, lwy, lwz);
    if((lwz > 530.0 && PlayerInfo[playerid][pInt] == 0) || PlayerToPoint(1000.0, playerid, -1041.9,-1868.4,79.1)) //the highest land point in sa = 526.8
    {
    SetPlayerSpawn(playerid);
    }
    if(WantedPoints[playerid] > 0)
    {
    new dstring[128];
    new wanted = WantedPoints[playerid];
    new diecash = 0;
    while(WantedPoints[playerid] > 0)
    {
    diecash += 500;
    WantedPoints[playerid] --;
    }
    format(dstring, sizeof(dstring), "Du hast $%d verloren, weil du mit dem Fahndungslevel %d gestorben bist.", diecash, wanted);
    SendClientMessage(playerid, COLOR_YELLOW, dstring);
    SafeGivePlayerMoney(playerid, - diecash);
    PlayerInfo[playerid][pWantedDeaths] += 1;
    }
    if(PlayerOnMission[playerid] > 0)
    {
    GameTextForPlayer(playerid, "~r~Mission fehlgeschlagen", 5000, 3);
    PlayerOnMission[playerid] = 0;
    PlayerInfo[playerid][pMissionNr] = 0;
    }
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    if(PlayerInfo[playerid][pDonateRank] > 0) { SetPlayerHealth(playerid, 100.0); }
    else { SetPlayerHealth(playerid, 50.0+PlayerInfo[playerid][pSHealth]); }
    MedicBill[playerid] = 0; //<<<<<<<<<<< Das war die Zeile ...
    TelePos[playerid][0] = 0.0;
    TelePos[playerid][1] = 0.0;
    gPlayerSpawned[playerid] = 1;
    SafeTime[playerid] = 60;
    }
    return 1;
    }

    Jetzt wäre meine Frage, wie man bei OnPlayerDeath überprüfen kann, ob der Spieler gestorben ist oder getötet wurde?

    How do I post wrong?


    After successfully ignoring Google, the FAQ, Stickies and the Search button, I create two to five new threads in the wrong section, with creative titles and unclear text that everybody can imagine something different from.

    3 Mal editiert, zuletzt von xXPhoenixXx ()

  • only a single statement (or expression) can follow each "case"


    Was heißt, was muss ich tun? :O


    Ich hab versucht eine Join/Leave Message in Spectres interior Dingens einzu fügen und dann kam das ( beim Leave Message, Join message geht)



    public OnPlayerDisconnect(playerid, reason)
    {
    new pname [MAX_PLAYER_NAME];
    new string[64];
    GetPlayerName(playerid, pname, sizeof(pname));


    switch(reason)
    {
    case 0: format(string, sizeof(string), "%s hat den Server verlassen. (Timeout)", pname);
    case 1: format(string, sizeof(string), "%s hat den Server verlassen.", pname);
    case 2: format(string, sizeof(string), "%s hat den Server verlassen. (Kick/Ban)", pname);



    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;
    }


    Sry scripte gard erst seit heute :/

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