[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
  • Das wird mit xy.xy gespeichert, weil es eine Float ist, da dir von samp her GetPlayerHealth immer eine Float zurück gibt. Ich würd das auch als Float lassen, da du sonst beim Einloggen probleme mit SetPlayerHealth und dem Integer bekommen könntest.

  • Naja ich gebe ja nen Float vor ("Float:hp"), mit GetPlayerHealth(playerid, hp); müsste laut Definition doch die HP des Spielers in hp gespeichert werden, und die HP sind ja Float, d.h. sie müssten doch in dem Float:hp gespeichert werden, oder nicht? Und trotzdem wirds in der Datei nur als "Health=1.0000" abgespeichert, obwohl ich eigentlich volle HP hatte.


  • player[playerid][lastX] = dini_Float(file, "lastX");
    player[playerid][lastY] = dini_Float(file, "lastY");
    player[playerid][lastZ] = dini_Float(file, "lastZ");
    SetPlayerPos(playerid, player[playerid][lastX], player[playerid][lastX], player[playerid][lastZ]);

  • Also paar Tests gemacht: Wenn ich volle HP habe (also 100), speichert er es mit 1.000 ab, habe ich aber 85 HP, speichert er es auch normal mit 85.000 ab, ich krieg die krise. xD

  • dann mach doch eifach GiveplayerMoney(-geld); und geld fragste ab wieviel geld er hat, und erstellst ne variable die dann in zehnerschritter erkannt (scheiß idee)


    andere frage:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if (isinwaesche[playerid] == 0)
    {
    if (!IsPlayerInRangeOfPoint(playerid,10.0,609.1162,-1511.0936,15.9790))
    {
    MoveObject(wassergate1, 615.37341308594, -1510.8579101563, 11.178580284119,0);
    MoveObject(wassergate2, 615.32415771484, -1510.9470214844, 22.481658935547,0);
    }
    else
    {
    MoveObject(wassergate1, 615.37341308594, -1510.8579101563, 14.407376289368,0);
    MoveObject(wassergate2, 615.32415771484, -1510.9470214844, 17.190818786621,0);
    }
    }
    }
    return 1;
    }
    tut sich nix warum?


    mfg multivan

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • Brauch /warn /ban und /kick Befehl mit gAdmin.Sollte Selfmade sein hoffe ihr könnt mir helfen.
    MFG
    EgoShooter

  • Brauch /warn /ban und /kick Befehl mit gAdmin.Sollte Selfmade sein hoffe ihr könnt mir helfen.
    Hier deine Frage:Kann mir da einer bitte helfen ?
    MFG
    EgoShooter

  • Brauch /warn /ban und /kick Befehl mit gAdmin.Sollte Selfmade sein hoffe ihr könnt mir helfen.
    Hier deine Frage:Kann mir da einer bitte helfen ?
    MFG
    EgoShooter

    Du hast den Sinn dieses Threads nicht verstanden, es geht hier darum, dass man Fragen zu seinen eigenen Codeteilen stellen kann, wenn was nicht funktioniert, oder nicht so funktioniert, wie es soll.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • -- Hier wird der Name des Spielers abgefragt und der Name des Spielern auf Name geändern - es ändert sich nichts, da Name == Name ist.

    Kannst du mir sagen, wie da denn was geändert wird?


    Im Moment sieht der Command bei mir so aus:



    //--------------Umbenennen----------------
    if(strcmp(strget(cmdtext,0),"/rename",true) == 0)
    {
    if(!IsPlayerConnected(ziel))
    {
    SendClientMessage(playerid,COLOR_GREY,"Diesen Spieler gibt es nicht.");
    return 1;
    }
    if(pInfo[playerid][admin] >= 7)
    {
    if(!strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,2)))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /rename [spielerid] [neuer Name]");
    return 1;
    }
    new string[28];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    format(string,sizeof(string),"%s",Name);
    SetPlayerName(playerid, string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du darfst diesen Command nicht nutzen!");
    }
    return 1;
    }


    Aber wie du schon geschrieben hast, wird da nichts geändert, was nicht so sein soll.

  • dcmd_rename(playerid, params[])
    {
    new id,name[25];
    if(sscanf(params, "ds",id,name)) return SendClientMessage(playerid,FARBE,"HINWEIS: /rename [ID] [Name]");
    if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,FARBE,"HINWEIS: Ungültige ID");
    SetPlayerName(id, name);
    return 1;
    }

  • Kannst du das mir auch an dem Beispiel machen, wie ich das oben gepostet hab? Von dcmd hab ich keine Ahnung :D.


    /edit: Und es soll auf andere verwendbar sein, also nicht auf mich selbst.

  • Hi, ich wollte, dass man in das Krankenhaus teleportiert und 1,5 Sekunden eingefroren wird.


    else if (PlayerToPointStripped(1, playerid,2033.9652,-1404.8622,17.2486, cx,cy,cz))
    {
    //Hospital enter
    TogglePlayerControllable(playerid, 0);
    SetTimer("UnfreezePlayer",1500,0);
    GameTextForPlayer(playerid, "~w~County General Hospital",5000,1);
    SetPlayerInterior(playerid,6);
    SetPlayerFacingAngle(playerid, 0);
    PlayerInfo[playerid][pInt] = 6;
    SetPlayerPos(playerid, 1171.8793,-1335.3782,1006.4965);
    }


    public UnfreezePlayer(playerid)
    {
    TogglePlayerControllable(playerid, 1);
    }


    Aber im Krankenhaus werde ich nicht unfreezed?

    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.

    Einmal editiert, zuletzt von xXPhoenixXx ()

  • Okay, danke :D


    ...\gamemodes\larp03.pwn(12904) : warning 225: unreachable code
    1 Warning.


    if(gEngine[playerid] == 1) { return 1; }


    new playerveh = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(playerid, playerveh, 0);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s versucht, den Motor zu starten.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    SetTimerEx("StartingTheVehicle",1000,0,"i",playerid);
    GameTextForPlayer(playerid, "~w~S",1,3);
    gEngine[playerid] = 1;
    return 1;
    }
    else
    {
    //GameTextForPlayer(playerid, "Dein Motor ist kaputt!", 5000, 6);
    }


    if(engineOn[GetPlayerVehicleID(playerid)]) //12904


    Was ist da falsch?


    Ganzer CMD:
    http://pastebin.com/6KHMiDAC

    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.

  • if(gEngine[playerid] == 1)
    {


    new playerveh = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(playerid, playerveh, 0);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s versucht, den Motor zu starten.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    SetTimerEx("StartingTheVehicle",1000,0,"i",playerid);
    GameTextForPlayer(playerid, "~w~S",1,3);
    gEngine[playerid] = 1;
    }
    else
    {
    //GameTextForPlayer(playerid, "Dein Motor ist kaputt!", 5000, 6);
    }




    und noch was ... wie soll das Bitte klappen ?


    if(gEngine[playerid] == 1) { return 1; }


    new playerveh = GetPlayerVehicleID(playerid);
    PutPlayerInVehicle(playerid, playerveh, 0);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s versucht, den Motor zu starten.", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    SetTimerEx("StartingTheVehicle",1000,0,"i",playerid);
    GameTextForPlayer(playerid, "~w~S",1,3);
    gEngine[playerid] = 1;
    return 1;
    }



    Erstens der Block ist ungültig zweitens würde "return" das ganze Abbrechen und der Funkion einen Wert übergeben ...

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Gut zu wissen ^^ Danke

    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.

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