[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
  • Wo ist das genaue Probleme ? Sollte alles so laufen.



  • Hey kann mir jemand verraten, warum mein Compiler Abstürzt ?



    ocmd:setleader(playerid,params[])
    {
    new pID,fID;
    if(!IsPlayerGM(playerid,3))return 1;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,FARBE_ROT," INFO: /setleader [Playerid] [FraktionsID]");
    if(fID >= sizeof (fInfo))return SendClientMessage(playerid),FARBE_ROT," Diese Fraktion (ID) existiert nicht.");
    return 1;
    }


    Habe daran gearbeitet

  • Hey kann mir jemand verraten, warum mein Compiler Abstürzt ?


    ocmd:setleader(playerid,params[]){new pID,fID;if(!IsPlayerGM(playerid,3))return 1;if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,FARBE_ROT," INFO: /setleader [Playerid] [FraktionsID]");if(fID >= sizeof (fInfo))return SendClientMessage(playerid),FARBE_ROT," Diese Fraktion (ID) existiert nicht.");return 1;}


    Habe daran gearbeitet

    Eine Klammer zuviel bei der letzten SendClientMessage Funktion.
    Du hast SendClientMessage(playerid),FARBE_ROT,..);

  • Kann mir jemand sagen, warum in der MYSQL Bank nicht der Wert FRang übernommen wird, wenn ich setleader mache?



    ocmd:setleader(playerid,params[])
    {
    new pID,fID;
    if(!IsPlayerGM(playerid,3))return 1;
    if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,FARBE_ROT," INFO: /setleader [Playerid] [FraktionsID]");
    if(fID >= sizeof(fInfo))return SendClientMessage(playerid,FARBE_ROT, "Diese Fraktion (ID) existiert nicht.");
    sInfo[pID][Fraktion]= fID;
    sInfo[pID][FRang]= 6;
    new string[128];
    format(string,sizeof(string),"%s hat dich zum Leader einer Fraktion ernannt! Herzlichen Glückwunsch",getPlayerName(playerid),fInfo[fID][f_name]);
    SendClientMessage(pID,FARBE_ROT,string);
    SendClientMessage(playerid,FARBE_ROT,"Du hast einen Spieler zum Leader einer Fraktion ernannt!");
    return 1;
    }


    SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][LoginStatus]==0)return 1;
    new query[256];
    format(query,sizeof(query),"UPDATE accounts SET level='%i',geld='%i',admin='%i',fraktion='%i,frang='%i',spawnchange='%i' WHERE id='%i'",
    sInfo[playerid][Level],GetPlayerMoney(playerid),sInfo[playerid][Adminlevel],sInfo[playerid][Fraktion],sInfo[playerid][FRang],sInfo[playerid][Spawnchange],sInfo[playerid][Id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }


  • Hey, Ich mache gerade die Fraktion Medic neu und mache den Heal Befehl ebenso neu aber wen ich /heal eingebe gibt er mir nichts raus warum?

  • Dann bist du entweder nicht in der Fraktion 3 oder in keinem Fahrzeug.

    Haben Hinbekommen Dank,


    Create3DTextLabel("Grove Steet Base\nDrücke Enter", COLOR_GREY, 2495.3782,-1690.6981,14.7656,15.0,0);


    Hey,
    Ich habe eine Frage bei den 3DTextLabel ist ja Mitten im Icon aber ich möchte es ein Stück überhalb vom Icon haben wie geht das?


  • 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

    Einmal editiert, zuletzt von xPatrick ()

  • @xPatrick


    Code
    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);
    SendClientMessageToAll(pID,FARBE_ROT,string);
    Kick(pID);
    return 1;
    }
  • 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.