Beiträge von [NWO]Nero

    Hier einmal der Befehl

    dcmd_ad(playerid,params[]) //Fraktions Befehl
    {
    new string[128], i = 0, ADtext[65], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
    if(SpielerInfo[playerid][pPerso] != 1) return 1;
    if(sscanf(params,"s[65]",ADtext)) return SendClientMessage(playerid,GRAU,"Verwendung: /AD [Text]");
    adtextsize[playerid] = strlen(ADtext);
    adkosten[playerid] = adtextsize[playerid]*2;
    if(Now()<ADCheck) { format(string, sizeof(string), "Du kannst erst in %d Sekunden wieder eine AD schalten lassen!", ADCheck-Now()); SendClientMessage(playerid,ROT,string); }
    else if(GetPlayerMoney(playerid) < adkosten[playerid]) { format(string, sizeof(string), "Du hast %d Zeichen benutzt, die AD würde %d€ kosten, so viel Geld hast Du nicht!", adtextsize[playerid], adkosten[playerid]); SendClientMessage(playerid,ROT,string); }
    else if(GetPlayerMoney(playerid) >= adkosten[playerid])
    {
    for(;i < GetMaxPlayers(); i++)
    {
    format(string,sizeof(string),"AD:"); TextDrawSetString(ADTEST1,string); TextDrawShowForPlayer(i,ADTEST1);
    format(string,sizeof(string),"%s",ADtext); convert_encoding(string); TextDrawSetString(ADTEST2,string); TextDrawShowForPlayer(i,ADTEST2);
    format(string,sizeof(string),"Name: %s I ID: %d I Handynummer: %d",name,playerid,SpielerInfo[playerid][pHandyNummer]); TextDrawSetString(ADTEST3,string); TextDrawShowForPlayer(i,ADTEST3);
    format(string,sizeof(string),"Du hast %d Zeichen benutzt, die Werbung kostet %d€!", adtextsize[playerid], adkosten[playerid]); SendClientMessage(i,GRUEN,string);
    GivePlayerMoney(playerid,-adkosten[playerid]); FrakInfo[5][fGeld] += adkosten[playerid]; SaveEineFrak(5); ADCheck = Now()+60;
    }
    }
    return 1;
    }


    // EDIT:
    Mensch bin ich ein Depp, ich habe den Fehler nun selbst bemerkt.
    Ich habe die Zeile bezüglich des Abziehen und Gutschreibens des Geldes mit in die Schleife gepackt.
    Was dadurch passiert ist, kann sich ja wohl jeder selbst denken.. :D


    Trotzdem vielen, vielen Dank für die Hilfe!

    Hallo Leute,


    ich habe ein kleines Problem mit meinem /ad-Befehl.


    Pro Buchstabe/Zeichen den man für eine AD verwendet, sollen 2 Euro berechnet werden.
    Momentan wir aber ein irgendwie immer ein anderer Betrag gut geschrieben/abgerechnet.




    //Global
    new adtextsize[MAX_PLAYERS], adkosten[MAX_PLAYERS]; //Die Anzahl der Buchstaben + die Kosten für die AD.


    //Im Befehl
    new ADtext[65]; //Für den Text den der Spieler im Chat für die AD eingibt.
    adtextsize[playerid] = strlen(ADtext); //Soll die anzahl der Buchstaben/Zeichen, die für die AD verwendet wurden speichern.
    adkosten[playerid] = adtextsize[playerid]*2; //Soll die Anzahl der Buchstaben/Zeichen mit 2 multiplizieren! Für den Preis.
    GivePlayerMoney(playerid,-adkosten[playerid]); //Soll den Spieler das Geld abziehen.
    FrakInfo[5][fGeld] += adkosten[playerid]; Soll das abgezogene Geld in der Fraktionskasse der News gutschreiben.
    SaveEineFrak(5); ADCheck = Now()+60; //Speichert die Fraktion usw.


    Beispiel:
    Ein Spieler schreibt '/ad Hello World!' und eine AD mit dem Inhalt 'Hello World!' erscheint,
    'Hello World!'hat 12 Buchstaben/Zeichen, also werden dem Spieler 24 Euro berechnet (12*2=24).



    Ich hoffe ihr wisst was ich damit sagen will und könnt mir helfen!




    Gruß
    AlphaGen!

    Hallo Leute,


    ich habe gerade einen /ad-Befehl geschrieben, wo die AD jeden Spieler via Textdraw angezeigt wird.


    Die AD soll 60 Sekunden im Textdraw zu sehen sein, das ganze habe ich mit Timestamp gemacht.
    Wenn diese 60 Sekunden um sind, soll die AD automatisch durch einen anderen, festgeleten Text ersetzt werden, bis wieder jemand eine AD schreibt.


    Ich habe vor einigen Monaten mal einen Text gefunden und habe ihn grob durchgelesen, darin stand (wenn ich es richtig verstanden habe), dass Publics ständig und automatich abgerufen werden.
    Daher wollte ich eigentlich anstatt einen Timer ein Public benutzen um die AD mit den festgelegten Text abzulösen.


    So wollte ich das eigentlich machen:

    forward UpdateNow();
    public UpdateNow()
    {
    new i=0, string[128];
    if(Now()>=ADCheck) //ADCheck ist Global und beinhaltet das Datum/die Zeit, wann die letzte AD erstellt wurde (In diesem Fall 60 Sekunden bevor die AD abgelöst werden soll!).
    {
    for(;i < GetMaxPlayers(); i++)
    {
    format(string,sizeof(string),"AD:"); TextDrawSetString(ADTEST1,string); TextDrawShowForPlayer(i,ADTEST1); //Soll mit String sein, wird hinterher noch angepasst!
    format(string,sizeof(string),"Hier könnte ihre AD stehen!"); convert_encoding(string); TextDrawSetString(ADTEST2,string); TextDrawShowForPlayer(i,ADTEST2); //Soll mit String sein, wird hinterher noch angepasst!
    format(string,sizeof(string),"Ersteller: San Andreas News I ID: - I Nummer: -"); TextDrawSetString(ADTEST3,string); TextDrawShowForPlayer(i,ADTEST3); //Soll mit String sein, wird hinterher noch angepasst!
    }
    }
    return 1;
    }


    Ingame funktioniert es nicht, die AD bleibt und wird nicht durch den festgelegten Text abgelöst.


    Nun frage ich mich, habe ich mich da in etwas verrannt, bzw etwas durch das überfliegen des Textes falsch aufgeschnappt,
    oder nur etwas falsch gemacht.



    Es wäre nett, wenn mir jemand weiter helfen könnte!




    Gruß
    AlphaGen!

    Hallo Leute,


    ich würde gerne wissen, ob es möglich ist eigene Buttons zu erstellen.


    Diese sollten wenn es geht so aussehen wie die beim Connecten und Textdraws zeigen und verstecken lassen.
    Wenn das möglich sein sollte, wäre eine kleine Anleitung als Leitfaden sehr nett.




    Gruß
    AlphaGen!

    Schau dir mal TextDrawSetPreviewModel bzw. für PlayerTextDraws PlayerTextDrawSetPreviewModel an. Die Beispiele sollte dir helfen.


    Danke!
    Es funktioniert soweit, nun habe ich es so weit geschafft, dass mir via TextDraw mein derzeitiger Skin angezeit wird.


    Aber hierbei gibt es ein Problem, der Skin wird mit einem schwarzen Hintergrund angezeigt, der HIntergrund soll allerdings transparent sein, sodass auch wirklich nur der Skin zu sehen ist.
    Nun habe ich es bereits versucht via TextDrawColor zu ändern, aber denn verschwindet immer der Skin.


    Wie mach ich das nun?

    Hallo Leute,


    ich möchte den Bild vom Skin den ein Spieler trägt über einen Textdraw anzeigen lassen.


    Ich habe bisher rausgefunden, dass es hiermit gehen müsste:
    TextDrawCreate(Posi, Posi, "Datei");


    Nun weiß ich aber nicht was ich bei der Datei genau angeben muss, bzw. weiß ich nicht wo ich die einzellnen Namen der Bilder finde.
    Ich würde mich sehr freuen, wenn mir jemand weiter helfen könnte!




    Gruß
    AlphaGen!

    Sieht nett aus, etwas ähnliches wollte ich auch mal machen, allerdings habe ich noch keinen geeigneten Platz gefunden.
    Dieser Standort scheint mir nun aber Ideal, da die Area schön nah dran ist.


    8/10

    Es liegt daran, dass du keine Nachrichten sendest. Du benutzt nur format, aber kein SendClientMessage. :)


    Doch, ich benutzt SendClientMessage, musst nur weiter nach recht scrollen.
    Ich habe den Fehler derzeit selbst gefunden, trotzdem vielen Dank! :)

    Hallo Leute,


    ich würde heute gerne einmal von euch wissen, was eurer Meinung nach
    1. Ein guter Reallife-Server braucht.
    & 2. Einen guten Reallife-Server ausmacht.


    Es geht hierbei mehr um eine Interessensfrage als um eine Ideensammlung.
    Mit dieser Frage ist alles gemeint, vom Script bis zur Community an sich.
    Ihr könnt alles was euch dazu einfällt schreiben!



    Ich persönlich bin der Meinung, dass das Script im besten Fall ein Selfmade sein soll.
    Ein gut editiertes GF geht auch, wenn viel dran verändert wurde und immer wieder was verändert/verbesser/ausgearbeitet wird.
    Vom Gameplay her sollte es viel Abwechslung und Funktionen geben und ganz San Andreas genutzt werden.


    Über Vorschläge bgezüglich des Servers sollte demokratisch abgestimmt werden, der Scripter/der Owner sollte nicht sagen:
    ,,Gefällt mir, kommt rein!* oder ,,Bullshit, sowas kommt nicht aufm Server!", wenn ein Großteil der Spieler dafür sind und es umsetztbar ist.
    Das gleiche gilt für Dinge, die das Gameplay aller Spieler beeinflussen, auch über sowas sollte die gesammte Community abstimmen.



    Ich hoffe ihr wisst, was ich damit meine!
    Ich freue mich schon auf eure Antworten! :)




    Gruß
    AlphaGen!

    if(sscanf(params,"uds[100]",pID,wanteds,grund)) return SendClientMessage(playerid,GRAU,"Verwendung: /su [ID] [Wanteds] [Grund]");


    Dann hab ichs wohl doch gerafft, allerdings passiert InGame nun nichts wenn ich den Befehl eingebe.

    Wieso tust du dann nicht,was dir die Warnmeldung sagt ?


    Du sollst bei Strings ( s ) noch die Größe der Variable bzw des Strings angeben ( grund ) . Die Größe wird zwischen [ ] hinter dem Platzhalter für den String angegeben.


    [ SCRIPTING ] sscanf 2.0

    Konntest Du des nochmal etwas leichter erklären?

    Hallo Leute,


    wenn ich meinen /su-Befehl benutze, steht folgendes in der Konsole:

    SQL
    [18:48:20] sscanf warning: Strings without a length are deprecated, please add a destination size.


    Ich gehe mal davon aus, dass es an den new namens "wanteds" liegt, wenn ich dort aber eine länge angebe, funktioniert garnichts mehr.



    Hier mal die Zeilen:
    dcmd_su(playerid,params[])
    {
    new pID, wanteds, grund[48], string[164], suname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
    if(SpielerInfo[playerid][pPerso] != 1) return 1;
    if(!IsPlayerCop(playerid)) return 1;
    if(sscanf(params,"uds",pID,wanteds,grund)) return SendClientMessage(playerid,GRAU,"Verwendung: /su [ID] [Wanteds] [Grund]");
    if(IsPlayerCop(pID)) return 1;
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Dieser Spieler wurde nicht gefunden!");
    GetPlayerName(playerid,suname,sizeof(suname)); SpielerInfo[pID][pWanteds] += wanteds;
    if(SpielerInfo[pID][pWanteds] > 30)
    {
    format(string,sizeof(string),"Polizist: %s hat dir %d Wanted/s gegeben! | Grund: %s | Du hast nun 30 Wanted/s!",name,wanteds,grund); SendClientMessage(pID,ROT,string);
    format(string,sizeof(string),"Du hast %s %d Wanted/s gegeben! | Grund: %s | %s hat nun 30 Wanted/s!",suname,wanteds,grund,suname); SendClientMessage(playerid,ROT,string);
    format(string,sizeof(string),">> [WANTED] | %s hat %s %d Wanted/s gegeben! | Grund: %s | %s hat nun 30 Wanted/s!",name,suname,wanteds,grund,suname); SendDCHATMessage(DCHAT_GRUEN,string,1); SendDCHATMessage(DCHAT_GRUEN,string,2); SendDCHATMessage(DCHAT_GRUEN,string,3); SendDCHATMessage(DCHAT_GRUEN,string,4); SendDCHATMessage(DCHAT_GRUEN,string,5); SendDCHATMessage(DCHAT_GRUEN,string,6); SendDCHATMessage(DCHAT_GRUEN,string,7);
    }
    else
    {
    format(string,sizeof(string),"Polizist: %s hat dir %d Wanted/s gegeben! | Grund: %s | Du hast nun %d Wanted/s!",name,wanteds,grund,SpielerInfo[pID][pWanteds]); SendClientMessage(pID,ROT,string);
    format(string,sizeof(string),"Du hast %s %d Wanted/s gegeben! | Grund: %s | %s hat nun %d Wanted/s!",suname,wanteds,grund,suname,SpielerInfo[pID][pWanteds]); SendClientMessage(playerid,ROT,string);
    format(string,sizeof(string),">> [WANTED] | %s hat %s %d Wanted/s gegeben! | Grund: %s | %s hat nun %d Wanted/s!",name,suname,wanteds,grund,suname,SpielerInfo[pID][pWanteds]); SendDCHATMessage(DCHAT_GRUEN,string,1); SendDCHATMessage(DCHAT_GRUEN,string,2); SendDCHATMessage(DCHAT_GRUEN,string,3); SendDCHATMessage(DCHAT_GRUEN,string,4); SendDCHATMessage(DCHAT_GRUEN,string,5); SendDCHATMessage(DCHAT_GRUEN,string,6); SendDCHATMessage(DCHAT_GRUEN,string,7);
    }
    return 1;
    }



    Wäre nett, wenn mir jemand helfen würde!




    Gruß

    AplhaGen!