Beiträge von John_Kramer

    Hallo.
    Ich habe ein Problem mit meinen Spawnen.
    Das gilt nur wenn ich mein Server betrete.
    Ich werde meist 2-3 Mal gespawnt. Das sehe ich dadran,
    das ich eine Meldung gemacht habe, immer wenn ich Spawne.
    Und diese Meldung steht gaz oft da. Wie soll ich das Scripten,
    das ich nur einmal Spawne. ?
    Hier noch ein Screen.
    Ich hoffe ihr könnt helfen, für Codes oder so.


    ////////////////////////////////////////////////////////
    Weiterer Bug
    ///////////////////////////////////////////////////////


    Wenn ich Tod bin, also gemeint sterbe,
    bin ich erst in meinen Interior und werde dann da hingesetzt wo ich gestorben bin.


    Das ist zu sehen auf meinen anderen Screens
    358 - 362


    /////////////////////////////////////////////////////////////
    Beim Tod bin ich erst im Interior und dann Dort.

    Also um das mal klar zu stellen.
    Die Frage war ob ich es vereinfachen kann. Sscanf habe ich.
    Die Frage ist nun aber wie frage ich ab Ob er
    waffen,scheine,key, usw. eingegeben hat.
    Wie soll ich das abfragen.

    Hallo,ich möchte ein Takesystem.
    Ich mache es so.


    ocmd:take waffen(playerid,params[])
    {
    new pid,str[128];
    format(str,sizeof(str),"%s hat dir deine Waffen entzogen",MeinName(playerid))
    ResetPlayerWeapons(pid);
    return 1;
    }
    Muss ich jetzt immer wieder ein neuen
    take machen ?
    ocmd:take key(playerid,params[])
    Muss ich das immer wieder neu machen ?
    Oder gehts auch einfacher, in einen Befehl.

    Hallo,
    Bei mir wird der Text nicht angezeigt.


    public OnPlayerConnect(playerid)
    {
    if(IsPlayerInFrak(playerid,1))
    {
    new string[128];
    Maske[playerid] = 0;
    Anzeige[playerid] = TextDrawCreate(630.0,410.0," ");
    TextDrawSetOutline(Anzeige[playerid],1);
    TextDrawAlignment(Anzeige[playerid],3);
    TextDrawSetShadow(Anzeige[playerid],0);
    TextDrawShowForPlayer(playerid,Anzeige[playerid]);
    CBUG[playerid] = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInFrak(i,1))
    {
    format(string,sizeof(string),"<< Fraktionsmitglied %s hat sich eingeloggt. >>",SpielerName(playerid));
    SendClientMessage(i,weiss,string);
    }
    }
    }
    Beim Connecten Sendet er die Nachricht nicht an andere Spieler und auch nicht an mich.
    Wo ist der Fehler.

    Hallo
    Ich habe ein Problem und eine Frage.
    Da man meist mit den schlimmeren beginnt also das Problem fang ich doch mal damit an,
    ich John_Kramer wird es euch wieder so gestalten, dass ihr das versteht, ich hafte nicht für Rechtschreibfehler.
    Vielen Dank das Sie sich bereit erlären mir zu Helfen.
    Ich bitte euch alles nun einmal aufmerksam durchzulesen.

    Was ist dein Fehler oder Problem John.Kramer ?

    Ich habe ein Problem mit meinen Tank-System.
    Ich habe ein Textdraw das den Tank bestimmt, nur der funktioniert manchmal nicht so wie ich es möchte,
    meist wird er nicht angeziegt oder wenn wird er immernoch angezeigt, wenn ich aus den Fahrzeug gestiegen sind.
    Wie könnte ich das nur BUghaft scripten, ich würde sagen es mar mal wieder Chuck, naja gut wie kann man das Beheben?


    Den Code
    new Tank[MAX_VEHICLES]


    new car = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(car) != 509 && GetVehicleModel(car) != 481 && GetVehicleModel(car) != 510 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new str[128];
    if(Tank[car] <= 10) format(str,sizeof str,"~w~Tank: ~r~%i%",Tank[car]);
    else if(Tank[car] <= 50) format(str,sizeof str,"~w~Tank: ~o~%i%",Tank[car]);
    else if(Tank[car] <= 75) format(str,sizeof str,"~w~Tank: ~y~%i%",Tank[car]);
    else if(Tank[car] <= 100) format(str,sizeof str,"~w~ Tank: ~g~%i%",Tank[car]);
    TextDrawSetString(Anzeige[playerid],str);
    }
    else
    {
    TextDrawSetString(Anzeige[playerid]," ");
    }
    return 1;
    Jo wenn ihr noch mehr braucht sagt bescheid


    Wie ist deine Frage ?
    Ich möchte wissen wie ich eine Zustands anzeige scripte, so wie der Tank angezeigt wird, soll
    da stehen Zustand: %d.
    Aber ich habe leider nicht so viel Ahnung, aber ich denke das ist ok, da hier das Breadfischforum ist und man hier hilfe bekommen kann ?
    Ich möchte nur wissen was ich dazu tuhn muss und ja.


    Weitere Fragen ?
    Was ist der unterschied zwischen %d
    und %i ? Wird doch bei beiden eine Zahl angegeben.


    MfG

    Ich habe ein kleines Problem.
    Wenn ich In das Sperrgebiet gehe kommt. "Du hast das Sperrgebiet betreten, habe es mit einen Kumpel getestet.
    So Aber dann kommt die Meldung nicht ins LSPD oder ARMY, warum nicht ?
    Da steht nur der der nicht in der Frack 1 oder 5 ist " Du hast das ... betreten.
    Aber die Meldung kommt einfach nicht zu den Fracktionen hilfe pls.
    Wo ist der Fail.
    if(pickupid==pup7)
    {
    if(IsPlayerInFrak(playerid,1) || IsPlayerInFrak(playerid,5)){}
    else
    {
    SendClientMessage(playerid,rot,"ACHTUNG: Du hast das Sperrgebiet betreten.");
    PlayerPlaySound(playerid,1058,238.3292,1872.5686,11.4609);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInFrak(playerid,1) || IsPlayerInFrak(playerid,5))
    {
    SendClientMessage(i,orange,"HQ: Ein unbefugter befindet sich in der Bombenfabrik");
    }
    }
    }

    }

    Was muss bei OnPLayerUpdate hin ?
    Wenn da vorher das stand ?

    public OnPlayerUpdate(playerid)
    {
    if(Maske[playerid] == 1)
    {
    new string[128], Float:hp, Float:am; //Wie brauchen diese Zeile, damit das HP ausgegeben und abgefragt werden kann!
    GetPlayerHealth(playerid,hp);//Hier fragen wir das Leben ab
    GetPlayerArmour(playerid,am);//Hier wird die Rüstung abgefragt
    floatround(hp,floatround_tozero);//Das ganze wird gerundet
    floatround(am,floatround_tozero);//Erneut gerundet
    format(string,sizeof(string),"Unbekannter\n{FF1400}L:%.0f R:%.0f",hp,am);//Der Name undbekannt wird gesetzt, Leben & Rüstung wird eingesetzt
    SetPlayerChatBubble(playerid,string,rot,40.0,10000);//Das ganze steht über dem Namen
    return 1;
    }

    Hallo Mein Afksystem buggt.
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(1914) : warning 213: tag mismatch
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(1914) : error 033: array must be indexed (variable "AFKPLAYERS")


    Hier so sieht das aus ?
    SendClientMessage(playerid,rot, "---------------AFK---------------"); //was als erstes Stehen soll wenn man den befehl nutzt (habe es Blau gemacht)
    new i = 0, aname[256];
    new string[126];
    for(; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(AFKPLAYERS[AFK] == 1) //Hier werden die AFK spieler mit 1 geladen
    {
    GetPlayerName(i, aname, sizeof(aname));
    format(string, 256, "%s", aname);
    SendClientMessage(playerid,weiss, string);
    SendClientMessage(playerid,rot,"-----------------------------");
    }
    }
    }
    return 1;

    Hallo
    Wie ihr schon mitbekommen habt, ich habe ein maskensystem gescriptet und möchte es nun etwas Erweitern.
    D.h mit was coolen, Namen selbstschreibbar.


    Maskensystem bei mir
    ocmd:maske(playerid,params[])
    {
    if(IsPlayerInFrak(playerid,6))
    {
    if(Maske[playerid]==1)
    {
    GameTextForPlayer(playerid,"~r~Du setzt deine Maske ab.",100,0);
    Maske[playerid] = 0;
    RemovePlayerAttachedObject(playerid, 1);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid,true);
    }
    }
    else if(Maske[playerid]==0)
    {
    new Float:health, Float:armour, string[128];
    GetPlayerHealth(playerid,health);
    GetPlayerArmour(playerid,armour);
    floatround(health,floatround_tozero);
    floatround(armour,floatround_tozero);
    format(string,128,"Unbekannter\nL:%.0f R:%.0f",health,armour);
    SetPlayerChatBubble(playerid,string,rot,40.0,10000);
    GameTextForPlayer(playerid,"~w~Du setzt deine Maske auf.",100,0);
    Maske[playerid] = 1;
    SetPlayerAttachedObject(playerid,1,19036,2,0.107,0.035,0.0,90,90,0);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid,false);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,weiss,"Du bist kein Terrorist");
    }
    }

    Was willst du genau John_Kramer ?

    Ich möchte mein Maskensystem verändern.
    Ich möchte das wenn der Spieler den Befehl eingibt ein Dialog gezeigt wird,
    wo man was Eintragen kann. Genau gesagt ein INPUT Dialog, in den man nun sein Namen eintragen muss.
    Und den Namen den Man eingetragen hat soll nun über den Spieler erscheinen, wo nun Unbekannter steht.
    format(string,128,"Unbekannter\nL:%.0f R:%.0f",health,armour);
    Wenn ich die Maske nun wieder absetzte soll der Name weggehen und der richtige wieder erscheinen, wenn man die Maske wieder aufstetzt ist der Name wieder änderbar. Habt ihr alles verstanden ? Wenn nicht könnt ihr gerne die Screens im Anhang sehen.

    Was brauchst du deiner Meinung ?

    Ich brauche meiner meinung nach erstmal den Dialog...
    ShowPlayerDialog(playerid,DIALOG_TNAME,DIALOG_STYLE_INPUT,"Wie willst du heissen","Trage bitte unten dein gewünschten Namen ein","Ok","Abbruch");
    Dann unter ONDIALOGRESPONSE
    Das weiss ich leider nicht wie und was ich da machen soll
    Dann gehe ich zur Maske
    also zu den Befehl.
    new Float:health, Float:armour, string[128],text;
    format(string,128,"%s\nL:%.0f R:%.0f"text,health,armour);
    So sollte das eigentlich gehen habe ich Recht ?


    Dann muss ich noch hier nichts machen xD
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    if(Maske[forplayerid]==1)
    {
    SetPlayerAttachedObject(forplayerid, 1, 19036, 2, 0.107, 0.035, 0.0, 90, 90, 0);//Object wird auf den Character gesetzt
    ShowPlayerNameTagForPlayer(playerid,forplayerid,false);//Der Name verschwindet
    }
    return 1;
    }
    Aber Unter OnPlayerUpdate
    public OnPlayerUpdate(playerid)
    {
    if(Maske[playerid] == 1)
    {
    new string[128], Float:hp, Float:am,text; //Wie brauchen diese Zeile, damit das HP ausgegeben und abgefragt werden kann!
    GetPlayerHealth(playerid,hp);//Hier fragen wir das Leben ab
    GetPlayerArmour(playerid,am);//Hier wird die Rüstung abgefragt
    floatround(hp,floatround_tozero);//Das ganze wird gerundet
    floatround(am,floatround_tozero);//Erneut gerundet
    format(string,sizeof(string),"{FFFFFF}%s\n{FF1400}L:%.0f R:%.0f",text,hp,am);//Der Name undbekannt wird gesetzt, Leben & Rüstung wird eingesetzt
    SetPlayerChatBubble(playerid,string,rot,40.0,10000);//Das ganze steht über dem Namen
    return 1;
    }
    So war das
    public OnPlayerUpdate(playerid)
    {
    if(Maske[playerid] == 1)
    {
    new string[128], Float:hp, Float:am; //Wie brauchen diese Zeile, damit das HP ausgegeben und abgefragt werden kann!
    GetPlayerHealth(playerid,hp);//Hier fragen wir das Leben ab
    GetPlayerArmour(playerid,am);//Hier wird die Rüstung abgefragt
    floatround(hp,floatround_tozero);//Das ganze wird gerundet
    floatround(am,floatround_tozero);//Erneut gerundet
    format(string,sizeof(string),"{FFFFFF}Unbekannter\n{FF1400}L:%.0f R:%.0f",hp,am);//Der Name undbekannt wird gesetzt, Leben & Rüstung wird eingesetzt
    SetPlayerChatBubble(playerid,string,rot,40.0,10000);//Das ganze steht über dem Namen
    return 1;
    }
    Dann wars das glaube ich.


    Wie könnt ihr mir helfen ?
    Ihr könnt mir über Skype helfen (pro_gamer38)
    Oder den Coder hier einfach als Antwort posten.
    Das Script gebe ich keinen weiter.


    Ich erwarte nun hilfreiche antworten.


    SREENS

    Danke mein bester :)
    Habe aber noch ein Warning.
    rangname(rang)
    {
    new str[50];
    switch(SpielerInfo[playerid][pFraktion])
    {
    case 1:
    {
    switch(rang)
    {
    case 0: str = "Praktikant";
    case 1: str = "Anwärter";
    case 2: str = "Hauptwachmeister";
    case 3: str = "Komissar";
    case 4: str = "Polizeidirektor";
    case 5: str = "Polizeivizepräsident";
    case 6: str = "Polizeipräsident";
    }
    }
    }
    return str;
    }
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(3581) : warning 203: symbol is never used: "rangname"

    Hallo ich ahbe ein Warning und der regt ziemlich auf.
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(3581) : warning 203: symbol is never used: "rangname"
    Warum benutzt er das er soll es nicht nutzen.
    rangname(rang)
    {
    new str[50];
    switch(SpielerInfo[playerid][pFraktion])
    {
    case 1:
    {
    switch(rang)
    {
    case 0: str = "Praktikant";
    case 1: str = "Anwärter";
    case 2: str = "Hauptwachmeister";
    case 3: str = "Komissar";
    case 4: str = "Polizeidirektor";
    case 5: str = "Polizeivizepräsident";
    case 6: str = "Polizeipräsident";
    }
    }
    }
    return str;
    }
    irgendwo hier ist es.
    Danke im Vorraus

    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(906) : error 029: invalid expression, assumed zero
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(906) : warning 215: expression has no effect
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(906) : error 001: expected token: ";", but found ")"
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(906) : error 029: invalid expression, assumed zero
    C:\Users\steffen\Dropbox\Scripting Unterricht 1\gamemodes\su.pwn(906) : fatal error 107: too many error messages on one line


    Hier was ich neu gescriptet habe.
    enum eSpielerDaten
    {
    pName,
    pPasswort,
    pFraktion,
    pRang
    }
    new SpielerInfo[MAX_PLAYERS][eSpielerDaten];
    rangname(rang)
    {
    new str[50];
    switch(SpielerInfo[playerid][pFraktion])
    {
    case 1:
    {
    switch(rang)
    {
    case 0: str = "Praktikant";
    case 1: str = "Anwärter";
    case 2: str = "Hauptwachmeister";
    case 3: str = "Komissar";
    case 4: str = "Polizeidirektor";
    case 5: str = "Polizeivizepräsident";
    case 6: str = "Polizeipräsident";
    }
    }
    }
    return str;
    }
    Und habe folgende Errors und eine Frage.


    Frage
    Ist das System so Funktionsfähig und bereit ?


    Error
    if(SpielerInfo[playerid][pFraktion] == 1) || SpielerInfo[playerid][pFraktion] == 5){}
    Hier ist irgendwo ein Fehler :(

    Machst eine Vari
    new vari;
    Dann unter OngameModeInit
    vari = 0;
    Dann gehste zu deinen Befehl machst da über eine If abfrage.
    if(vari == 0)
    Fragst ab ob die Vari auf 0 ist dann machst du am besten vor deinen return 1; oder irgendwo in deinen Command musst gucken wo es am Sinnvollsten ist ein
    vari = 1;
    Dann Fragst du Ab wie schon gesagt. Mit vari 0 , wenn die vari auf eins ist soll der Befehl abgebrochen werden.
    Dann darfst du aber den Timer aber nicht vergesse setzt einen Timer der die Vari wenn der Timer abläuft wieder auf 0 setzt.
    vari = 0;
    Dann kann man es noch erweitern mit einer
    SendClientMessage(playerid,color,"Du kannst nun wieder /offduty gehen");