[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
  • ocmd:kick(playerid,params[]){if(!IsPlayerGM(playerid,2))return 1;new pID, Grund[64],string[128];if(sscanf(params,"us[128]",pID,Grund))return SendClientMessage(playerid,FARBE_ROT,"INFO: /kick [Playerid] [Grund]");format(string,sizeof(string),"Du wurdest von %s vom Server gekickt.Grund: %s",getPlayerName(playerid),Grund);SendClientMessage(pID,FARBE_ROT,string);Kick(pID);return 1;}


    Wie bekomm ich erst die Nachricht, dann den Kick hin? So steht einfach nur Server Closed Connection

    1 Sekunden Timer erstellen, und in den Befehl einbauen.
    Nach dem Timer lässt du kicken, davor die Nachricht ausgeben.
    Ganz easy. :)

  • Hallo ^^


    Wenn ich auf dem Fahrrad sitze und /motor eingebe dann kann ich nicht mehr mit dem Fahrrad fahren.Kann mir jemand mein Fehler sagen?



    ocmd:motor(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) || return 1;
    new vID=GetPlayerVehicleID(playerid),tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;
    GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    if(tmp_motor==1)
    {
    tmp_motor =0;
    }
    else
    {
    tmp_motor=1;
    }
    SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    return 1;
    }



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    new vID=GetPlayerVehicleID(playerid);
    new vModel=GetVehicleModel(vID);
    for(new i=0; i<sizeof(VehOhneMotor);i++)
    {
    if(VehOhneMotor[i]!=vModel)continue;
    new tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;
    GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    SetVehicleParamsEx(vID,1,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    }
    return 1;
    }
    return 1;
    }



  • Weil du den Motor dann ausschaltest!
    Du startest den Motor automatisch, sobald du in ein Fahrzeug einsteigst, welches du in deinem Array (VehOhneMotor[]) definiert hast (siehe public OnPlayerStateChange(...)). Ich nehme mal an, dass du die ID des Fahrrads auch im Array definiert hast.

  • Hallo,


    wollte mal fragen wie man das ohne disen komischen cmdtext idx ect schreiben kann den Befhl sieht so hässlich aus :D
    "Und bugt um"


  • Weil du den Motor dann ausschaltest!
    Du startest den Motor automatisch, sobald du in ein Fahrzeug einsteigst, welches du in deinem Array (VehOhneMotor[]) definiert hast (siehe public OnPlayerStateChange(...)). Ich nehme mal an, dass du die ID des Fahrrads auch im Array definiert hast.


    Hier ist alles dazu.


    Eigentlich soll Ja gar nicht passieren wenn man auf ein Motorlosen Fahrzeug sitzt. Soweit geht es ja wenn ich Aufsteige kann ich normal fahren. Wenn ich /motor eingebe SOLLTE nichts passieren, jedoch geht der Motor aus.Wenn ich dann Absteige und wieder Aufsteige kann ich wieder normal fahren ohne das ich /machen müsste

  • So?

    ocmd:motor(playerid,params[])
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
    new vID=GetPlayerVehicleID(playerid);
    if(!HatFahrzeugEinMotor(GetVehicleModel(vID)))return SendClientMessage(playerid, -1, "Dieses Fahrzeug hat kein Motor.");
    new tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;
    GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    if(tmp_motor==1)
    {
    tmp_motor =0;
    }
    else
    {
    tmp_motor=1;
    }
    SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    return 1;
    }


    stock HatFahrzeugEinMotor(vehicleid)
    {
    for(new i=0; i < sizeof(VehOhneMotor); i++) {
    if(vehicleid != VehOhneMotor[i]) continue;
    return false;
    }
    return true;
    }

  • Stichwort: "sscanf".

    Habe ich jetzt gemacht wen ich /setskin 0 5 eingebe gibt er mir wider {247BA6}* Benutze {009933}/setskin [SpielerID/Name] [Skin Model] das raus warum?

  • Es reicht "ui" in sscanf brauchst das s[30] nicht.

    Dann verstehe ich das nicht warum das bei



    Nicht geht? Gibt er mir das auch wider zurück * Benutze /gov [Nachricht]

  • Dann verstehe ich das nicht warum das bei


    Nicht geht? Gibt er mir das auch wider zurück * Benutze /gov [Nachricht]

    if(sscanf(params, "s[96]", entry))


    Das u steht für user (username/userid) und das i steht für integer
    In diesem fall brauchst du aber einen string, also s


  • C:\Users\Medion\Desktop\German Next Era Life - v2.5\gamemodes\GNE.pwn(44523) : error 028: invalid subscript (not an array or too many subscripts): "gOOC"
    C:\Users\Medion\Desktop\German Next Era Life - v2.5\gamemodes\GNE.pwn(44523) : warning 215: expression has no effect
    C:\Users\Medion\Desktop\German Next Era Life - v2.5\gamemodes\GNE.pwn(44523) : error 001: expected token: ";", but found "]"
    C:\Users\Medion\Desktop\German Next Era Life - v2.5\gamemodes\GNE.pwn(44523) : error 029: invalid expression, assumed zero
    C:\Users\Medion\Desktop\German Next Era Life - v2.5\gamemodes\GNE.pwn(44523) : fatal error 107: too many error messages on one line



    Hey,


    Ich versuche gerade ein öffentlichen Chat zu machen aber scheinbar mag er nicht ;/

  • So?
    ocmd:motor(playerid,params[]){ if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1; new vID=GetPlayerVehicleID(playerid); if(!HatFahrzeugEinMotor(GetVehicleModel(vID)))return SendClientMessage(playerid, -1, "Dieses Fahrzeug hat kein Motor."); new tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective; GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective); if(tmp_motor==1) { tmp_motor =0; } else { tmp_motor=1; } SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective); return 1;}stock HatFahrzeugEinMotor(vehicleid){ for(new i=0; i < sizeof(VehOhneMotor); i++) { if(vehicleid != VehOhneMotor[i]) continue; return false; } return true;}

    Hat geklappt danke !

  • Hallo wen ich GameTextForPlayer darein mache kriege ich 26 ERRORS warum ? :(

  • Hey Leute,


    Welchen Befehl brauch ich um ein einfachen /do zu machen?


    Also das Wenn man den Motor startet, Automatisch für alle spieler im Fahrzeug oder in direkter nähe eine Nachricht bekommen z.B. PLAYER X dreht am Zündschloss und startet den Motor.


    SendClientMessageToAll ? Mit Radius?


    Würde der Befehl so stimmen Bis jetzt?




    ocmd:motor(playerid,params[])
    {
    SetTimerEx("Motorstarten",1000,false,"i",playerid);
    }


    public Motorstarten(playerid)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
    new vID=GetPlayerVehicleID(playerid),tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective;
    if(!HatVehEinMotor(GetVehicleModel(vID)))return 1;
    GetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    if(tmp_motor==1)
    {
    tmp_motor =0;
    format(string,sizeof(string), "((%s: stoppt den Motor und zieht die Handbremse an.))", getPlayerName(playerid;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    SendClientMessage(i, FARBE_FUNK, string);
    }
    }
    else
    {
    tmp_motor=1;
    format(string,sizeof(string), "((%s: dreht den Zündschlüssel um und startet den Motor.))", getPlayerName(playerid;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    SendClientMessage(i, FARBE_FUNK, string);
    }
    }
    SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    return 1;


    }


  • Hallo wen ich GameTextForPlayer darein mache kriege ich 26 ERRORS warum ? :(

    case 0:
    {
    PlayAudioStreamForPlayer(playerid, "http://s.sunset-radio.com:14200/;stream");
    GameTextForPlayer(playerid, "~g~Hands up", 4000, 3);
    }


    Bei einer funktion kann man { & } weg lassen, aber bei mehreren brauchst du die dann wieder, vergiss das nicht.