Beiträge von sLy

    Stimmt ist mir garnicht aufgefallen :3


    Danke ^^


    Aber wieso wird nur die Hälfte , bzw nur 'string' angezeigt im Dialog?


    Ich musste es teilen weil sonst n Error kommt dass die Zeile zu lang ist :O


    Habs ^^

    if(GetPlayerScore(playerid) >= Buycars[i][CarScore])


    Du fragst bei deiner Abfrage ab , ob der Score kleiner als CarScore ist.

    Hey.


    Hab nen Stats Befehl gemacht , nur funktioniert der nicht so wie ich gerne möchte ^^


    Zum einen wird nur ein Teil angezeigt , und die 'Lebensanzeige' ist buggy ^^




    ocmd:stats(playerid,params[])
    {
    new string[600];
    new string2[600];
    new string3[1600];
    new fraktname[64];
    new fraktrangname[64];
    new arang[32];
    new Spieler[64];
    new herkunft[32];
    new geschlecht[32];
    new levelpunkteprolevel=GetPlayerScore(playerid)*2;
    levelpunkteprolevel+=6;
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    switch(dini_Int(Spieler,"Geschlecht"))
    {
    case 0:{geschlecht="Maennlich";}
    case 1:{geschlecht="Weiblich";}
    }
    switch(dini_Int(Spieler,"Land"))
    {
    case 0:{herkunft="Deutschland";}
    case 1:{herkunft="Oesterreich";}
    case 2:{herkunft="Schweiz";}
    }
    switch(dini_Int(Spieler,"Fraktion"))
    {
    case 0:{fraktname="Zivilist";}
    case 1:
    {
    fraktname="LSPD";
    switch(dini_Int(Spieler,"Fraktionsrang"))
    {
    case 1:{fraktrangname="Streife";}
    case 2:{fraktrangname="Polizist";}
    case 3:{fraktrangname="Offizier";}
    case 4:{fraktrangname="Co-Leader";}
    case 5:{fraktrangname="Leader";}
    }
    }
    case 2:
    {
    fraktname="Grove Street";
    switch(dini_Int(Spieler,"Fraktionsrang"))
    {
    case 1: {fraktrangname="Sidekick";}
    case 2: {fraktrangname="Homie";}
    case 3: {fraktrangname="Bro";}
    case 4: {fraktrangname="Co-Leader";}
    case 5: {fraktrangname="Leader";}
    }
    }
    case 3:
    {
    fraktname="Hitman";
    switch(dini_Int(Spieler,"Fraktionsrang"))
    {
    case 1: {fraktrangname="Gelegenheitskiller";}
    case 2: {fraktrangname="Auftragskiller";}
    case 3: {fraktrangname="Hitman";}
    case 4: {fraktrangname="Co-Leader";}
    case 5: {fraktrangname="Leader";}
    }
    }
    }
    switch(dini_Int(Spieler,"Adminlevel"))
    {
    case 0:{arang="Kein Admin";}
    case 1:{arang="Supporter";}
    case 2:{arang="Moderator";}
    case 3:{arang="Admin";}
    case 4:{arang="Co-Owner";}
    case 5:{arang="Owner";}
    }
    switch(dini_Int(Spieler,"Geschlecht"))
    {
    case 1:{geschlecht="Maennlich";}
    case 2:{geschlecht="Weiblich";}
    }
    new Float:leben;
    GetPlayerHealth(playerid,leben);
    format(string,sizeof(string),"{BE1816}[Ingame]{FFFFFF}\n\t[Name: %s]\n\t[Level: %i]\n\t[Levelpunkte: %i/%i]\n\t[Geld: %i]\n\t[Leben: %i]\n\n\n{BE1816}[Reallife]{FFFFFF}\n\t[Geschlecht: %s]\n\t[Alter: %i]\n\t[Herkunft: %s]\n\n",PlayerName(playerid),GetPlayerScore(playerid),levelpunkte[playerid],levelpunkteprolevel,GetPlayerMoney(playerid),leben/10,geschlecht,dini_Int(Spieler,"Alter"),herkunft);
    format(string2,sizeof(string2),"{BE1816}[Fraktion]{FFFFFF}\n\t[Fraktion: %s]\n\t[Fraktionsrang: %s]\n\n{BE1816}[Admin]{FFFFFF}\n\t[Adminrang: %s]",fraktname,fraktrangname,arang);
    format(string3,sizeof(string3),"%s %s",string,string2);
    ShowPlayerDialog(playerid,Dialog_Stats,DIALOG_STYLE_MSGBOX,"Statistik",string,"Okay","");
    return 1;
    }

    Hey.


    Musste grade feststellen dass mein ATM System buggt.


    zB. habe ich 50k , wenn ich 20k einzahle habe ich auf einmal 200k+ auf der Hand?
    Die Dialogids überschneiden sich nicht!


    if(dialogid==Dialog_atmeinzahlen)
    {
    if(response)
    {
    if(isNumeric(inputtext))
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    new geld=GetPlayerMoney(playerid);
    if(geld>=strval(inputtext))
    {
    SpielerSpeichern(playerid);
    SpielerLaden(playerid);
    dini_IntSet(Spieler,"Kontostand",dini_Int(Spieler,"Kontostand")+strval(inputtext));
    new string[256];
    format(string,sizeof(string),"Eingezahlt: %i | Neuer Kontostand: %i",strval(inputtext),dini_Int(Spieler,"Kontostand"));
    SendClientMessage(playerid,Gruen,string);
    GivePlayerMoney(playerid,-strval(inputtext));
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast nicht soviel Geld!");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du kannst nur $ einzahlen !");
    }
    }
    else
    {
    ShowPlayerDialog(playerid,Dialog_atm,DIALOG_STYLE_LIST,"ATM","Kontostand\nEinzahlen\nAuszahlen","Weiter","Abbrechen");
    }
    }

    Hey.


    Ich versuche die ganze zeit zu scripten , dass man als Beifahrer in ein Auto mit nur einem Sitz reinkann , also in ein Interior geportet wird.


    Nehmen wir den Shamal. Man kann nur mit F einsteigen. Es ist egal ob ich F oder G drücke , ich werde immer reingeportet.
    Und wenn ich den Shamal verlasse , werde ich an die Koordinaten 0.0,0.0,0.0 geportet, anstatt bei dem Shamal.



    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(GetVehicleModel(vehicleid)==519)
    {
    if(ispassenger)
    {
    SendClientMessage(playerid,Grau,"Du kannst das Fahrzeug mit der Leertaste verlassen!");
    inshamal[playerid]=GetPlayerVehicleID(playerid);
    SetPlayerPos(playerid,1.808619,32.384357,1199.593750);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,1);
    }
    }
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys==KEY_SPRINT)
    {
    if(inshamal[playerid]!=-1)
    {
    new Float:x,Float:y,Float:z;
    GetVehiclePos(inshamal[playerid],x,y,z);
    inshamal[playerid]=-1;
    SetPlayerPos(playerid,x,y,z);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    }
    }
    }

    Hey


    Also 1.
    Ich hab versucht ein Führerschein system zu machen mit Race Checkpoints.
    Klappt auch alles , nur passiert bei letzten Checkpoint nichts!



    new Float:fscheckpoints[6][3] ={
    {657.8871,-1226.5524,16.0821},
    {687.5119,-1165.8440,14.9317},
    {792.3574,-1051.9912,24.3873},
    {794.8701,-1312.6343,13.0873},
    {666.5079,-1316.3820,13.1576},
    {670.3506,-1292.0353,13.2476}
    };


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if(fsauto[playerid])
    {
    fsCheckpointStatus[playerid]++;
    new letzerpunkt = 6;
    if(fsCheckpointStatus[playerid] < letzerpunkt)
    {
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,fscheckpoints[fsCheckpointStatus[playerid]][0],fscheckpoints[fsCheckpointStatus[playerid]][1],fscheckpoints[fsCheckpointStatus[playerid]][2],fscheckpoints[fsCheckpointStatus[playerid]+1][0],fscheckpoints[fsCheckpointStatus[playerid]+1][1],fscheckpoints[fsCheckpointStatus[playerid]+1][2],5.0);
    }
    if(fsCheckpointStatus[playerid] == letzerpunkt)
    {
    fsauto[playerid]=false;
    fsCheckpointStatus[playerid] = 0;
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    DisablePlayerRaceCheckpoint(playerid);
    }
    }
    }
    return 1;
    }


    2. habe ich ein Problem mit farbigen Dialogen.


    Ich habe {HTML-Farboce} gemacht , jedoch kommt im Dialog anstatt der Farbe {HTML-Farbcode} vor dem Wort ^^


    new string[400];
    format(string,sizeof(string),"{D10000}Beschreibung: {FFFFFF}%s\n\nWenn das Ticket okay ist , drücke auf '{D10000}Absenden'{FFFFFF} , sonst auf '{D10000}Abbrechen'{FFFFFF}!",inputtext);
    ShowPlayerDialog(playerid,Dialog_TicketBestaetigen,DIALOG_STYLE_MSGBOX,"Ticket bestätigen",string,"Absenden","Abbrechen");

    das jetzt nur dir bei fahrer ins interior geportet werden klappt aber wie mach ich das ich jetzt wieder zum auto zurück geportet werde


    Würde sagen in ner Variable die Fahrzeug ID oder so reinspeichern , also GetPlayerVehicleID , wenn er einsteigt , dann beim aussteigen die Koordinaten des Autos (aus der Variable) per GetVehiclePos abfragen und den Spieler dahin setzen ^^


    1. Bitte [ pwn][ /pwn]benutzen ^^


    2. Würde dass so gehen:



    if(GetPlayerVehicleSeat(playerid)==0||GetPlayerVehicleSeat(playerid)==1||GetPlayerVehicleSeat(playerid)==2||GetPlayerVehicleSeat(playerid)==3)


    ^^

    Alles klar..


    Soll ich abfragen ob man ein Admin ist, dann das SetPlayerPosFindZ anwenden und dann einfach dort hin porten?


    MfG.


    Bei mir gehts so


    public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
    {
    if(IsPlayerAnAdmin(playerid,1))
    {
    if(adutyb[playerid])
    {
    SetPlayerPosFindZ(playerid, fX, fY, fZ+10.0);
    }
    }
    return 1;
    }


    Allerdings spawne ich dann unterm Boden , was aber kein Problem ist , weil du wieder nach oben buggst ;)

    Ahoi ^^


    Meine Events bzw Timer buggen 'leicht' rum.
    Was der Fehler ist , kann man im Video glaube ich gut genug sehen ^^
    Also es wird 'Das Event wurde gestartet' so oft geschrieben wie Spieler teilnehmen und die Variable sinkt nicht.


    Spoiler anzeigen


    public DeagleEventTimer()
    {
    if(DeagleTime == 20 || DeagleTime == 15 || DeagleTime == 10 || DeagleTime == 3 || DeagleTime == 2 || DeagleTime == 1)
    {
    new tstring[40];
    DeagleTime--;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!deagleeventteilnehmer[i] || !IsPlayerConnected(i)) continue;

    Spoiler anzeigen
    format(tstring,sizeof(tstring),"Das Event startet in %d Sekunden.",DeagleTime);
    SendClientMessage(i,Hellblau,tstring);
    }
    }
    if(DeagleTime <= 0)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(!deagleeventteilnehmer[i] || !IsPlayerConnected(i)) continue;

    Spoiler anzeigen
    SendClientMessage(i,Hellblau,"Viel Glück!");
    TogglePlayerControllable(i,1);
    }
    DeagleCheckTimer=SetTimer("DeagleCheck",1000,1);
    DeagleTime = -1;
    KillTimer(DeagleTimer);
    }
    }


    Video: [video]

    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.
    [/video]