[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
  • 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 ;/

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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.


  • Es macht mehr Sinn eine Funktion dafür zu erstellen, zumal dadurch auch viele unnötige Zeilen gespart werden.
    Außerdem hatte dein Code eins zwei Fehler, die ich zusätzlich behoben habe.



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


    public Motorstarten(playerid)
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return 1;
    new vID=GetPlayerVehicleID(playerid);
    if(!HatVehEinMotor(GetVehicleModel(vID)))return 1;

    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;
    format(string,sizeof(string), "((%s: stoppt den Motor und zieht die Handbremse an.))", getPlayerName(playerid));
    SendClientMessageInRangeOfPoint(playerid, FARBE_FUNK, string, 15.0);
    }
    else
    {
    tmp_motor=1;
    format(string,sizeof(string), "((%s: dreht den Zündschlüssel um und startet den Motor.))", getPlayerName(playerid));
    SendClientMessageInRangeOfPoint(playerid, FARBE_FUNK, string, 15.0);
    }
    SetVehicleParamsEx(vID,tmp_motor,tmp_licht,tmp_alarm,tmp_tuer,tmp_mhaube,tmp_kraum,tmp_objective);
    return 1;
    }


    stock SendClientMessageInRangeOfPoint(playerid, color, msg[], Float:range)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);

    for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i, range, X, Y, Z)) continue;
    SendClientMessage(i, color, msg);
    }
    return 1;
    }

  • Hey,


    Ich habe eine frage ich wollte kennzeichen machen.


    z.b er heißt Chris sollte kommen CH 147999 als kennzeichen z.b nicht Ch 147999 das die Anfangsbuchstaben groß sind



    new playerName[MAX_PLAYER_NAME+1], nPlate[32], [24+1];
    GetPlayerName(playerid, playerName, sizeof(playerName));
    strmid(cutName, playerName, 0, 1, sizeof(cutName));
    format(nPlate, sizeof(nPlate), "%s %d", cutName, PrivateVehicle[playerid][slot][vehID]);

  • Probier es mal so:


    new playerName[MAX_PLAYER_NAME+1], nPlate[32];
    GetPlayerName(playerid, playerName, sizeof(playerName));
    format(nPlate, sizeof(nPlate), "%s%s %d", toupper(playerName[0]), toupper(playerName[1]), PrivateVehicle[playerid][slot][vehID]);