[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 schön...das hat schonmal bestens geklappt :). Wie kann ich nun die var "i" in die ClientMessage einbinden? Ich will dem Spieler sagen wie lange er noch warten muss..

  • Frage : :D


    So öhm also wie geht es also ich habn cmd:


    if (strcmp("/savecarpos", cmdtext, true, 11) == 0)
    {
    new Float:X, Float:Y, Float:Z, Float:A, name[16], string[355], File:lol2, veh; veh = GetPlayerVehicleID(playerid);
    GetVehiclePos(veh, X, Y, Z); GetVehicleZAngle(veh, A); GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), " %f, %f, %f, %f // %s, Vehicleid: %d ", X, Y, Z, A, name, veh);
    lol2 = fopen("Savecarpos.cfg", io_append); fwrite(lol2, string); fclose(lol2);
    return 1;
    }


    meine frage ist jetzt wie ich wenn der server on geht das die datei geladen wird also wie geht das ? :D


    mfg


    Chillaaaa :P

  • huhu,


    weiss jemand wie man beim ggf von psychosandman die sterne wegbekommt wenn man wanteds hat? also aus dem script raus? weil die dinger spinnen bei mir :P
    und kann mal jemand bitte bitte bitte meine frage beantworten? ;( wäre sehr net danke im vorraus


    mfg :)

  • Ich hab auch noch zwei kleine Fragen:


    1. Gibt es einen Wait-Befehl oder ähnliches, der einfach x Sekunden wartet, bis der Rest des Scripts ausgeführt wird? In meinem Fall benötigt, um bei einem Team-Deathmatch nach Tod von allen Spielern eines Teams den Gamemode erst nach ein paar Sekunden neuzustarten.


    2. Ich möchte den Spielern erlauben, durch Eingabe eines Commands ein Motorrad zu spawnen. Dafür nehme ich einfach die Koordinaten des Spielers und AddStativVehicle bei diesen Koordinaten. Okay, dass das nicht funktioniert, war mir irgendwie klar^^ Aber auch wenn ich x und y jeweils -1 nehme und dann das Auto spawne, passiert nichts. Was mach ich falsch bzw. wie viel Abstand muss der Spieler zum Spawnpunkt haben, damit das Auto gespawnt wird?


    Vielen Dank schonmal ;)

  • Hab ne Frage:
    Wie mache ich ein Herz Pickup irgentwo hin.
    Und wen ich dort ins Pickup reingehe und /heal eingebe hat man volles Leben.
    Wie gehts das?
    thx im vorraus ;)

  • 1. Gibt es einen Wait-Befehl oder ähnliches, der einfach x Sekunden wartet, bis der Rest des Scripts ausgeführt wird? In meinem Fall benötigt, um bei einem Team-Deathmatch nach Tod von allen Spielern eines Teams den Gamemode erst nach ein paar Sekunden neuzustarten.


    Du willst wenn alle Tod sind das das Script nach ca. 10 Sekunden neu startet oder wie?

    forward GM();


    SetTimer("GM",/*ZEIT IN MS*/, 0);


    public GM()
    {
    SendRconCommand(gmx);
    return 1;
    }



    2. Ich möchte den Spielern erlauben, durch Eingabe eines Commands ein Motorrad zu spawnen. Dafür nehme ich einfach die Koordinaten des Spielers und AddStativVehicle bei diesen Koordinaten. Okay, dass das nicht funktioniert, war mir irgendwie klar^^ Aber auch wenn ich x und y jeweils -1 nehme und dann das Auto spawne, passiert nichts. Was mach ich falsch bzw. wie viel Abstand muss der Spieler zum Spawnpunkt haben, damit das Auto gespawnt wird?


    Das ist ganz egal wo das Auto spawnt, wenn es auf deinen Koordinaten spawn wirste halt vom Auto platt gemacht.
    Wenn es trotzdem nicht spawnt haste irgendwas falsch gemacht.


    Hab ne Frage:
    Wie mache ich ein Herz Pickup irgentwo hin.
    Und wen ich dort ins Pickup reingehe und /heal eingebe hat man volles Leben.
    Wie gehts das?
    thx im vorraus ;)


    AddStaticPickup(model,type, X,Y,Z); // X,Y,Z natürlich ersetzen Model und Type im wiki.sa-mp.de nachgucken


    dcmd_heal(playerid,params[])
    {
    #pragma unused params
    if(PlayerTopPoint(30, playerid, X,Y,Z) // X,Y,Z natürlich ersetzen
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du wurdest geahealt");
    SetPlayerHealth(playerid, 100);
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du musst im Pickup stehen !");
    }
    return 1;
    }



    *Edit: War wohl jemand schneller.

    ...

  • zu Alex :D Frage Nr.2


    Ich denke das du das meinst ? Der cmd spawnt jetzt ne nrg-500


    if (strcmp("/spawnbike", cmdtext, true, 11) == 0)
    {
    if(GetPlayerState(playerid) == 1)
    {
    new Float:X, Float:Y, Float:Z, Float:A, car, name[16];
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    CreateVehicle(522, X+3, Y+3, Z+2, A, 0, 0, -1);
    PutPlayerInVehicle(playerid, car, 0);
    GetPlayerName(playerid, name, sizeof(name));
    SetVehicleNumberPlate(car, name);
    // GivePlayerMoney(playerid, -5000);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xCE000000, "ERROR: Geh bitte aus dem Auto !");
    }
    }


    EDIT: frage hab ich glaub ich falsch verstanden :D ^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Bekomme dieses Error:
    function "PlayerToPoint" is not implemented

  • omg... Wozu gibts Breadfish's Fehler erklärbar dingens! und zweitenst ist das gaaanz einfaches englisches. Es ist fast genauso in deutsch...


    funktion "PlayerToPoint" ist nicht implementiert

  • Hab einen /Arrest Fehler, der Befehl funktioniert Im Spiel nicht.


    if(strcmp(cmd, "/arrest", true) == 0)
        {


        if(IsPlayerConnected(playerid))
            {
                if(gTeam[playerid] == 2 || IsACop(playerid))
                {
                    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
                    {
                    SendClientMessage(playerid, COLOR_GREY, " Du bist nicht im Dienst!");
                    return 1;
    }
                new suspect = GetClosestPlayer(playerid);
                if(IsPlayerConnected(suspect))
                    {
                    if(!PlayerToPoint(6.0,playerid,227.4859,113.9638,999.0156)) // wenn man in lspd ist
                {
                SetPlayerPos(suspect,227.4486,109.9337,999.0156); // landet man im lspd knast
                }
                if(!PlayerToPoint(6.0,playerid,198.1363,159.3188,1003.0234)) // wenn man in sfpd ist
                {
                SetPlayerPos(suspect,198.2559,162.7094,1003.0300); // landet man im sfpd knast
                }
                SendClientMessage(playerid, COLOR_GREY, " Du bist nicht bei den Zellen !");
                return 1;
                    }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, " Knastpreis darf nicht unter $1 und nicht über $99999 sein !"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    new time = strval(tmp);
                    if(time < 1 || time > 60) { SendClientMessage(playerid, COLOR_GREY, " Knastzeit darf nicht unter 1 Minute und nicht über 60 Minuten sein !"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    new bail = strval(tmp);
                    if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, " Kaution kann nicht unter 0 und nicht über 1 sein !"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    new bailprice = strval(tmp);
                    if(bailprice < 0 || bailprice > 3000000) { SendClientMessage(playerid, COLOR_GREY, " Kautionspreis kann nicht unter $1 und nicht über $300000 sein !"); return 1; }
                    new suspect = GetClosestPlayer(playerid);
                    if(IsPlayerConnected(suspect))
                    {
                        if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
                        {
                            GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            if(WantedLevel[suspect] < 1)
                            {
                            SendClientMessage(playerid, COLOR_GREY, " Spieler muss mindestens 1 Wanted Level haben !");
                            return 1;
                            }
                            format(string, sizeof(string), "* Du hast %s ins Gefängnis gesteckt !", giveplayer);
                            SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                            GivePlayerMoney(suspect, -moneys);
                            format(string, sizeof(string), "Eingebuchtet von %s ~n~ für $%d", sendername, moneys);
                            GameTextForPlayer(suspect, string, 5000, 5);
                            ResetPlayerWeapons(suspect);
                            if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
                            {
                                format(string, sizeof(string), "<< Officer %s hat %s eingesperrt >>", sendername, giveplayer);
                                OOCNews(COLOR_LIGHTRED, string);
                            }
                            else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
                            {
                                format(string, sizeof(string), "<< Agent %s hat %s eingesperrt >>", sendername, giveplayer);
                                OOCNews(COLOR_LIGHTRED, string);
                            }
                            else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
                            {
                                format(string, sizeof(string), "<< Soldat %s hat %s eingesperrt >>", sendername, giveplayer);
                                OOCNews(COLOR_LIGHTRED, string);
                            }
                            SetPlayerInterior(suspect, 3);
                            PlayerInfo[suspect][pJailTime] = time * 60;
                            if(bail == 1)
                            {
                                JailPrice[suspect] = bailprice;
                                format(string, sizeof(string), "Du wurdest für %d Sekunden eingeknastet. Bail: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
                                SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
                            }
                            else
                            {
                            JailPrice[suspect] = 0;
                                format(string, sizeof(string), "Du wurdest für %d Sekunden eingeknastet. Bail: Kein", PlayerInfo[suspect][pJailTime]);
                                SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
                            }
                            PlayerInfo[suspect][pJailed] = 1;
                    PlayerInfo[suspect][pArrested] += 1;
                            SetPlayerFree(suspect,playerid, "Eingesperrt");
                            WantedPoints[suspect] = 0;
                            WantedLevel[suspect] = 0;
                            WantLawyer[suspect] = 1;
                        }//distance
                    }//not connected
                    else
                    {
                    SendClientMessage(playerid, COLOR_GREY, " Niemand in deiner Nähe.");
                    return 1;
                    }
                }
                else
                {
                SendClientMessage(playerid, COLOR_GREY, " Du bist kein Cop/Fbi/Army !");
                return 1;
                }
            }//not connected
            return 1;*


    Habe es so gemacht, dass wenn man im Los Santos Pd ist, dass man dann im Los Santos Pd Knast landet, und wenn man im San Fierro Pd ist, dass man in den San Fierro Pd Knast landet. Doch Im Spiel ist es so, als ob der Befehl garnicht im Script ist. Ich hoffe jemand kann mir den Error fixen.


    Ps.: ich kriege keine Error's oder so.



    Mfg

  • omg... Wozu gibts Breadfish's Fehler erklärbar dingens! und zweitenst ist das gaaanz einfaches englisches. Es ist fast genauso in deutsch...


    funktion "PlayerToPoint" ist nicht implementiert


    Das weiß ich auch.Ich wollte eigentlich nur wissen was ich jetzt machen muss um den Fehler wegzubekommen^^

  • Sorry, hab den falschen gepostet .. Hier ist der richtige.
    Doch habe einen Error:



    (26343) : error 029: invalid expression, assumed zero



        if(strcmp(cmd, "/arrest", true) == 0)
        {
        new suspect = GetClosestPlayer(playerid);
            if(IsPlayerConnected(suspect))
            {
                if(gTeam[playerid] == 2 || IsACop(playerid))
                {
                    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
                    {
                    SendClientMessage(playerid, COLOR_GREY, " Du bist nicht im Dienst!");
                    return 1;
                    }
                    if(!PlayerToPoint(6.0,playerid,227.4859,113.9638,999.0156))
                {
                SetPlayerPos(suspect,227.4486,109.9337,999.0156);
                }
                if(!PlayerToPoint(6.0,playerid,198.1363,159.3188,1003.0234))
                {
                SetPlayerPos(suspect,198.2559,162.7094,1003.0300);
                }
                SendClientMessage(playerid, COLOR_GREY, " Du bist nicht bei den Zellen !");
                return 1;
                    }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    moneys = strval(tmp);
                    if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, " Knastpreis darf nicht unter $1 und nicht über $99999 sein !"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    new time = strval(tmp);
                    if(time < 1 || time > 60) { SendClientMessage(playerid, COLOR_GREY, " Knastzeit darf nicht unter 1 Minute und nicht über 60 Minuten sein !"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    new bail = strval(tmp);
                    if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_GREY, " Kaution kann nicht unter 0 und nicht über 1 sein !"); return 1; }
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
                        return 1;
                    }
                    new bailprice = strval(tmp);
                    if(bailprice < 0 || bailprice > 3000000) { SendClientMessage(playerid, COLOR_GREY, " Kautionspreis kann nicht unter $1 und nicht über $300000 sein !"); return 1; }
                    {
                        if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
                        {
                            GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            if(WantedLevel[suspect] < 1)
                            {
                            SendClientMessage(playerid, COLOR_GREY, " Spieler muss mindestens 1 Wanted Level haben !");
                            return 1;
                            }
                            format(string, sizeof(string), "* Du hast %s ins Gefängnis gesteckt !", giveplayer);
                            SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                            GivePlayerMoney(suspect, -moneys);
                            format(string, sizeof(string), "Eingebuchtet von %s ~n~ für $%d", sendername, moneys);
                            GameTextForPlayer(suspect, string, 5000, 5);
                            ResetPlayerWeapons(suspect);
                            if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1)
                            {
                                format(string, sizeof(string), "<< Officer %s hat %s eingesperrt >>", sendername, giveplayer);
                                OOCNews(COLOR_LIGHTRED, string);
                            }
                            else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
                            {
                                format(string, sizeof(string), "<< Agent %s hat %s eingesperrt >>", sendername, giveplayer);
                                OOCNews(COLOR_LIGHTRED, string);
                            }
                            else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
                            {
                                format(string, sizeof(string), "<< Soldat %s hat %s eingesperrt >>", sendername, giveplayer);
                                OOCNews(COLOR_LIGHTRED, string);
                            }
                            SetPlayerInterior(suspect, 3);
                            PlayerInfo[suspect][pJailTime] = time * 60;
                            if(bail == 1)
                            {
                                JailPrice[suspect] = bailprice;
                                format(string, sizeof(string), "Du wurdest für %d Sekunden eingeknastet. Bail: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
                                SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
                            }
                            else
                            {
                            JailPrice[suspect] = 0;
                                format(string, sizeof(string), "Du wurdest für %d Sekunden eingeknastet. Bail: Kein", PlayerInfo[suspect][pJailTime]);
                                SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
                            }
                            PlayerInfo[suspect][pJailed] = 1;
                    PlayerInfo[suspect][pArrested] += 1;
                            SetPlayerFree(suspect,playerid, "Eingesperrt");
                            WantedPoints[suspect] = 0;
                            WantedLevel[suspect] = 0;
                            WantLawyer[suspect] = 1;
                        }//distance
                    }//not connected
                    else//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                    {
                    SendClientMessage(playerid, COLOR_GREY, " Niemand in deiner Nähe.");
                    return 1;
                    }
                }
                else
                {
                SendClientMessage(playerid, COLOR_GREY, " Du bist kein Cop/Fbi/Army !");
                return 1;
                }
            }//not connected
            return 1;
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


    da ist Zeile 26343


  • suchfunktion ftw..

    hab das hier gefunden:
    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


    ist das richtig??
    Und wo muss ich das enfügen`?

  • hab das hier gefunden:
    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


    ist das richtig??
    Und wo muss ich das enfügen`?


    Ja das ist richtig und das musst du am Anfang des scriptes unter den includes reinkopieren allerdings fehlt da noch etwas.


    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }




    Und @ Hitman


    Ist das die Fehlerzeile?
    else//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    ...

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