Beiträge von MenInBlack95

    Hallo erstmal !
    Also ich habe folgendes Problem : Wenn man sich in ein Fahrzeug setzt bekommt man ,egal welches Flugzeug,Motorrad, Auto, die Meldung.


    Du hast keinen Führerschein!


    Man soll aber verschiedene Meldungen bekommen.
    Hier der Code:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new State = GetPlayerState(playerid);
    new newcar = GetPlayerVehicleID(playerid);
    if(IsABike(newcar))
    {
    if(GetPVarInt(playerid,"Motorad") == 0)
    {
    if(State==PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid, rot, "Du hast keinen Bikeschein!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    else if(IsAFlug(newcar))
    {
    if(GetPVarInt(playerid,"Flugzeug") == 0)
    {
    if(State==PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid, rot, "Du hast keinen Flugschein!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    else if(GetPVarInt(playerid,"Auto") == 0)
    {
    if(State==PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid, rot, "Du hast keinen Führerschein!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    return 1;
    }


    Hier die IsABike und die IsAFlug:


    forward IsAFlug(carid);
    public IsAFlug(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 469 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 519)
    {
    return 1;
    }
    return 0;
    }
    forward IsABike(carid);
    public IsABike(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 521 || modelid == 522 || modelid == 523 || modelid == 468)
    {
    return 1;
    }
    return 0;
    }


    danke schonmal im Vorraus!


    Mit freundlichen Grüßen!


    MenInBlack

    Hallo Brotfische.. folgendes , achtet auf die SetPVarInts !
    if(dialogid == Fragen)
    {
    if(response == 0)
    {
    new string[128];
    format(string,sizeof(string),"Berta:Wie alt sind du eigentlich %s ?",SName(playerid));
    ShowPlayerDialog(playerid,Fragen,DIALOG_STYLE_INPUT,"Alter",string,"Weiter"," ");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,Fragen,DIALOG_STYLE_INPUT,"Alter","Nein nein , ich habe nach dem Alter gefragt.","Weiter"," ");
    return 1;
    }
    else
    {
    new string[64];
    format(string,sizeof(string),"Berta: hmmm %i also ...",strval(inputtext));
    new alter = strval(inputtext);
    SetPVarInt(playerid,"Alter",alter); <----------------- Hier
    SendClientMessage(playerid,grün,string);
    ShowPlayerDialog(playerid,Fragen2,DIALOG_STYLE_MSGBOX,"Geschichte","Berta:Geh erst mal zu Jonny, der erklärt die wo du gelandet bist.","Weiter"," ");
    return 1;
    }
    }

    return 1;
    }
    if(dialogid == Fragen2)
    {
    if(response == 0)
    {
    ShowPlayerDialog(playerid,Fragen2,DIALOG_STYLE_MSGBOX,"Geschichte","Berta:Geh erst mal zu Jonny, der erklärt die wo du gelandet bist.","Weiter"," ");
    return 1;
    }
    if(response == 1)
    {
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,1105.7391,-299.2052,74.5391);
    SetPlayerFacingAngle(playerid,106.2978);
    TogglePlayerControllable(playerid,1);
    SetPVarInt(playerid,"Log",1);<----------------- und Hier!
    return 1;
    }
    return 1;
    }


    Diese beiden ROT makierten Sachen bringen nichts. Die Vars bleiben auf 0.
    Deswegen habe ich die Account.ini geöffnet und selber z.b. Log auf 1 gesetzt .
    es Funktioniert. Er läd es ganz normal. An der Spielerladen stock liegt es also nicht.


    Also muss es ein Fehler beim Speichern sein ? Oder woran liegt es , hier die Speichern stock.



    stock SpielerSpeichern(playerid)
    {
    new SDatei[64];
    format(SDatei,sizeof(SDatei),"/Accounts/%s.ini",SName(playerid));
    if(dini_Exists(SDatei))
    {
    dini_IntSet(SDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SDatei,"Alevel",GetPVarInt(playerid,"Alevel"));
    dini_IntSet(SDatei,"Blood",GetPVarInt(playerid,"Blood"));
    dini_IntSet(SDatei,"MS14",GetPVarInt(playerid,"MS14"));
    dini_IntSet(SDatei,"Police",GetPVarInt(playerid,"Police"));
    dini_IntSet(SDatei,"Medic",GetPVarInt(playerid,"Medic"));
    dini_IntSet(SDatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(SDatei,"Erfahrung",GetPVarInt(playerid,"Erfahrung"));
    dini_IntSet(SDatei,"Log",GetPVarInt(playerid,"Log"));
    dini_IntSet(SDatei,"Alter",GetPVarInt(playerid,"Alter"));
    }
    return 1;
    }


    ich finde keinen Fehler und frage mich warum es nichts speichert -.-


    danke schonmal


    MfG


    MenInBlack

    So bei
    dini_IntSet(SDatei,"Alter",GetPVarInt(playerid,"Alter"));


    im Speicher stock , wird es anscheinend nicht gespeichert oder sogar das


    SetPVarInt(playerid,"Alter",strval(inputtext));


    funktioniert nicht.


    Aber da


    new string[64];
    format(string,sizeof(string),"Berta: hmmm %i also ...",strval(inputtext));
    SendClientMessage(playerid,grün,string);


    die SCM das eingegebene Alter angibt , müsste das SetPVarInt doch auch funktionieren oder ?

    stock Spielerspeichern(playerid)
    {
    if(GetPVarInt(playerid,"logged") == 1)
    {
    new SDatei[64];
    format(SDatei,sizeof(SDatei),"/Accounts/%s.ini",SName(playerid));
    dini_IntSet(SDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SDatei,"Alevel",GetPVarInt(playerid,"Alevel"));
    dini_IntSet(SDatei,"Blood",GetPVarInt(playerid,"Blood"));
    dini_IntSet(SDatei,"MS14",GetPVarInt(playerid,"MS14"));
    dini_IntSet(SDatei,"Police",GetPVarInt(playerid,"Police"));
    dini_IntSet(SDatei,"Medic",GetPVarInt(playerid,"Medic"));
    dini_IntSet(SDatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(SDatei,"Erfahrung",GetPVarInt(playerid,"Erfahrung"));
    dini_IntSet(SDatei,"1Log",GetPVarInt(playerid,"1Log"));
    dini_IntSet(SDatei,"Alter",GetPVarInt(playerid,"Alter"));
    }
    return 1;
    }


    Bitteschön!

    Hallo Brotfische,


    das Alter wird nicht unter der Var Alter gespeichert, woran liegt das ?
    Aber beim text:"hmmm %i also" wird: hmm 18 also angezeigt. bzw. die Zahl die man angibt?
    if(dialogid == Fragen)
    {
    if(response == 0)
    {
    new string[128];
    format(string,sizeof(string),"Berta:Wie alt sind du eigentlich %s ?",SName(playerid));
    ShowPlayerDialog(playerid,Fragen,DIALOG_STYLE_INPUT,"Alter",string,"Weiter"," ");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,Fragen,DIALOG_STYLE_INPUT,"Alter","Nein nein , ich habe nach dem Alter gefragt.","Weiter"," ");
    return 1;
    }
    else
    {
    new string[64];
    format(string,sizeof(string),"Berta: hmmm %i also ...",strval(inputtext));
    SetPVarInt(playerid,"Alter",strval(inputtext));
    Spielerspeichern(playerid);
    SendClientMessage(playerid,grün,string);
    ShowPlayerDialog(playerid,Fragen2,DIALOG_STYLE_MSGBOX,"Geschichte","Berta:Geh erst mal zu Jonny, der erklärt die wo du gelandet bist.","Weiter"," ");
    return 1;
    }
    }

    return 1;
    }

    Hier ein Video vom Problem:
    In dem Video habe ich mich Medic gemacht seht was passiert.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health <= 5)
    {
    ApplyAnimation(playerid,"CRACK","crckdeth1",4.1, 0, 0, 0, 1, 0);
    SetTimer("Sterben", 30000, true);
    }
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerMedic(i))
    {
    new Float:px, Float:py, Float:pz;
    SendClientMessage(i,rot,"Ein Bürger von Los Santos liegt im Sterben, gucken sie auf ihre Karte!");
    GetPlayerPos(playerid, px, py, pz);
    SetPlayerCheckpoint(i, px, py, pz, 3.0);
    }
    }
    return 1;
    }


    Das Ziel ist es das wenn ein Spieler weniger oder genau 5 HP hat ein Medic eine Nachricht und einen Checkpoint bekommt.
    Kann mir da jemand helfen ?

    Hallo Brotfische habe grade versucht ein Tacho zu Scripten.


    Dabei sit ein Problem aufgetreten.


    unzwar folgendes:


    [pwn=48]//Tacho
    new Text:Tacho[MAX_PLAYERS];
    forward UpdateTacho();
    #define Tachotimer 1000;
    new Float: X1[MAX_PLAYERS],Float:Y1[MAX_PLAYERS],Float:Z1[MAX_PLAYERS];
    new Float: X2[MAX_PLAYERS],Float:Y2[MAX_PLAYERS],Float:Z2[MAX_PLAYERS];[/pwn]


    [pwn=59]public OnGameModeInit()
    {
    //Tacho
    for(new x= 0; x<MAX_PLAYERS;x++)
    {
    Tacho[x] = TextDrawCreate(357.0000,340.0000,"Uninterressant");
    TextDrawLetterSize(Tacho[x],0.4,1.1);
    TextDrawFont(Tacho[x],1);
    TextDrawSetShadow(Tacho[x],2);
    TextDrawSetOutline(Tacho[x],1);
    }
    SetTimer("UpdateTacho",Tachotimer,1);
    return 1;
    }[/pwn]



    [pwn=437]public UpdateTacho()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsPlayerNPC(i))
    {
    new Float:Strecke,Float:Geschwindigkeit;
    GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]);
    Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i]))2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs,floatsub(Z1[i],Z2[i])),2));
    Geschwindigkeit = (Strecke /(Tachotimer/1000)) + 3,6;
    new String[50];
    format(String,50,Geschwindigkeit: %d km/h,floatround(Geschwindigkeit));
    TextDrawSetString(Tacho[i],String);
    GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]);
    TextDrawShowForPlayer(i,Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i,Tacho[i]);
    }
    }
    return 1;
    }
    [/pwn]


    ich bekomme Folgende Errors:


    Code
    Untitled.pwn(70) : error 001: expected token: ",", but found ";"
    Untitled.pwn(70) : error 029: invalid expression, assumed zero
    Untitled.pwn(70) : warning 215: expression has no effect
    Untitled.pwn(70) : error 001: expected token: ";", but found ")"
    Untitled.pwn(70) : fatal error 107: too many error messages on one line


    Ich sehe den Fehler einfach nicht :o


    mfg


    MenInBlack

    Guten Tag Brotfische !


    Ich bin grade dabei ein Tacho zu Scripten , dabei habe ich auf Google was entdeckt.


    könnte mir jemand mal erklären wie man so eine Tankanzeige hinbekommt ?



    Vielen Dank schonmal ,


    mit freundlichen Grüßen


    MenInBlack

    Code
    Untitled.pwn(221) : warning 202: number of arguments does not match definition


    [pwn=207]public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health < 5)
    {
    ApplyAnimation(playerid,"CRACK","crckdeth1",4.1, 0, 0, 0, 1, 0);
    SetTimer("Sterben", 30000, true);
    }
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerMedic(i)
    {
    SendClientMessage(i,RED,"Ein Bürger von Los Santos liegt im Sterben, gucken sie auf ihre Karte!");
    SetPlayerCheckpoint(i, GetPlayerPos(playerid), 3.0);
    }
    }
    return 1;
    }[/pwn]


    hmm woran liegt das ? :P

    Also ich will das wenn der Spieler weniger als 5 HP hat die Animation ausgeführt wird, in dem Fall jetzt die "crckdeth1" Animation. Danach wird der Timer gestartet der im jede 30 Sekunden 1 Hp abzieht.
    Außerdem soll jedem Medic der grade online ist eine Nachricht geschickt werden und ein Checkpoint an die stelle des Opfers gesetzt werden.

    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health < 5)
    {
    ApplyAnimation(playerid,"CRACK","crckdeth1",4.1, 0, 0, 0, 1, 0);
    SetTimer("Sterben", 30000, true);
    }
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerMedic(i))
    {
    SendClientMessage(i,RED,"Ein Bürger von Los Santos liegt im Sterben, gucken sie auf ihre Karte!");
    SetPlayerCheckpoint(i, GetPlayerPos(playerid), 3.0);
    }
    }
    return 1;
    }


    habs jetzt so :P


    Meine Frage wird dann der Checkpoint an der Stelle gesetzt wo der im Sterben liegende liegt ?
    und die Nachricht an die Medics gesendet ?

    Ich versuche mich grade an nem Medicsystem.
    funktioniert das so ?


    if(GetPlayerHealth(playerid) < 5)
    {
    ApplyAnimation(playerid,"CRACK","crckdeth1",4.1, 0, 0, 0, 1, 0);
    SetTimer("Sterben", 30000, true);
    }
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerMedic(i)
    {
    SendClientMessage(i,RED,"Ein Bürger von Los Santos liegt im Sterben, gucken sie auf ihre Karte!");
    SetPlayerCheckpoint(i, GetPlayerPos(playerid), 3.0);
    }
    }


    Mit freundlichen Grüßen


    MenInBlack