Beiträge von Pille

    Hallo,


    also erstmal danke euch allen.
    Ich weiß nicht wo der Fehler lag, wahrscheinlich habe ich das Programm falsch benutzt oder irgendwelche falschen Einstellungen getätigt.
    Ist nicht besonders benutzerfreundlich dieses Microsoft Visual C++ Express-Programm....


    Auf jeden Fall funktioniert es jetzt, dankeschön :)


    :)

    Hi Kaliber,


    das mit der Rand-Funktion ist mir schon bekannt,
    Die Variable Question funktioniert bei mir auch.


    Nur die Multidimensionalen Variablen nicht - in diesem Fall die Antworten.


    Ich hab es so probiert (beim Compillen kommen Fehler)

    C
    string Answer[4][4]={
     {{"Falsch 11"},{"Falsch 12"},{"Falsch 13"},{"Richtig 14"}},
     {{"Falsch 21"},{"Falsch 22"},{"Richtig 23"},{"Falsch 24"}},
     {{"Richtig 31"},{"Falsch 32"},{"Falsch 33"},{"Falsch 34"}},
     {{"Falsch 41"},{"Falsch 42"},{"Falsch 43"},{"Richtig 44"}}
     };


    Und ich hab es so probiert (ich kann die strings nachher nicht benutzen - aber keine Fehler beim compillen):

    Code
    string Answer[FRAGEN][4];
     Answer[0][0]="Falsch 11"; Answer[0][1]="Falsch 12"; Answer[0][2]="Falsch 13"; Answer[0][3]="Richtig 14";
     Answer[1][0]="Falsch 21"; Answer[1][1]="Falsch 22"; Answer[1][2]="Richtig 23"; Answer[1][3]="Falsch 24";
     Answer[2][0]="Richtig 31"; Answer[2][1]="Falsch 32"; Answer[2][2]="Falsch 33"; Answer[2][3]="Falsch 34";
     Answer[3][0]="Falsch 41"; Answer[3][1]="Falsch 42"; Answer[3][2]="Falsch 43"; Answer[3][3]="Richtig 44";


    Ich habe auch versucht zu googeln, aber hinbekommen habe ich es leider nicht..


    LG
    Pille

    Hallo,


    ich kenne mich in PAWN gut aus, und möchte folgenden Code in die Sprache C++ übersetzen.
    Leider scheitere ich an Multidimensionalen Zeichenketten und brauche deshalb Hilfe.


    Folgenden Pawn-Code möchte ich übersetzen:


    Vielen Dank im Vorraus!


    LG
    Pille

    Ich muss aber die obere Zeile aufteilen die in gänsefüßchen ist , und das geht leider nicht


    Eher so:
    format(AllString,sizeof(AllString),"{00AFFF}Account \n{D9CCD9}Name: %s Geschlecht: Platzhalter Alter: Platzhalter Level: %i \n\
    Status: Platzhalter Respektpunkte: %i/%i Zeit bis PayDay: %i Spielzeit: Platzhalter\nWarns: %i PrisonTime: %i Sekunden\
    Adminlevel: %s \n\n\n{00AFFF}Fraktion \n{D9CCD9}Fraktion: %s Rang: %s Leader: %s Gehalt: %i",
    SpielerName(playerid),SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pPoints],SpielerInfo[playerid][pLevel]+1,
    SpielerInfo[playerid][pZeit],SpielerInfo[playerid][pWarn],SpielerInfo[playerid][pPrisonTime],AdminName(playerid),
    FraktionName(playerid),GetRang(playerid),LeaderName(playerid),GetRangLohn(playerid));

    Probier mal die lange Zeile in mehrere Zeilen aufzuteilen:


    format(AllString,sizeof(AllString),"{00AFFF}Account \n{D9CCD9}Name: %s Geschlecht: Platzhalter Alter: Platzhalter Level: %i \nStatus: Platzhalter Respektpunkte: %i/%i Zeit bis PayDay: %i Spielzeit: Platzhalter\nWarns: %i PrisonTime: %i Sekunden Adminlevel: %s \n\n\n{00AFFF}Fraktion \n{D9CCD9}Fraktion: %s Rang: %s Leader: %s Gehalt: %i",
    SpielerName(playerid),SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pPoints],SpielerInfo[playerid][pLevel]+1,SpielerInfo[playerid][pZeit],SpielerInfo[playerid][pWarn],SpielerInfo[playerid][pPrisonTime],AdminName(playerid),FraktionName(playerid),GetRang(playerid),LeaderName(playerid),GetRangLohn(playerid));

    Das ganze muss man statistisch sehen.
    Folgende Zahlen sind nur angenommen:


    5% der Deutschen sind kriminell.
    5% der Ausländer sind kriminell.


    Wir haben um Deutschland herum nur Ausländer.
    Deswegen ist es logisch, dass es mehr ausländische Kriminelle als Deutsche Kriminelle gibt.


    Folglich denkt jeder, dass Ausländer sehr kriminell sind.
    Das ist aber falsch.

    Hi HydranT_,



    ich möchte dir einen Verbesserungsvorschlag machen:
    In deinem Code, der keinesfalls falsch ist, und perfekt funktionieren würde, wird unnötige Rechenarbeit durchgeführt.
    Das stört zwar bei so einem kleinen Teil des Codes nicht, aber wenn du größere Mengen Text schreibst,
    könnte sich das negativ auf deinen Server auswirken.


    Zur Erklärung:
    In der Schleife wird geprüft ob playerid = -1 ist, also ob die leere Nachricht an alle oder nur an einen Spieler geschickt wird.
    Wenn die Schleife 20x durchgeführt wird (default), wird es also 20x geprüft - obwohl man es nur einmal prüfen müsste.


    Beispiel:
    stock clearChat(lines=20, playerid=-1)
    {
    new i=0;
    if(playerid==-1)
    {
    for(; i < lines; i++)
    {
    SendClientMessageToAll(-1," ");
    }
    }
    else
    {
    for(; i < lines; i++)
    {
    SendClientMessage(playerid-1," ");
    }
    }
    return 1;
    }


    Ich habe es etwas ausführlich geschrieben (mit den Klammern), damit es jeder versteht.
    Kann dann jeder so wie er will hinschreiben.


    Ich hoffe es ist erlaubt dir diesen Vorschlag zu machen, ebenso hoffe ich,
    dass ich dir ein bisschen weiterhelfen konnte.



    Liebe Grüße,
    Pille


    Ich würde es anders machen....


    new string[10];
    format(string,sizeof(string),"Skin %i",classid+1);
    GameTextForPlayer(playerid,string, 5000, 4);
    gTeam[playerid] = TEAM_IRGDNWAS;

    Die Bewegung der Maus ist leider nicht per Code zu erkennen. Du müsstest das über die Tasten (zum Beispiel die Pfeiltasten) machen.


    Ich muss dich korrigieren, Jeffry, es ist möglich (wenn auch kompliziert).


    In der Theorie funktioniert das folgendermaßen:
    Du setzt die Kamera hinter den Spieler und nach 5ms kannst du mit GetPlayerCameraFrontVector, GetPlayerCameraPos und GetPlayerPos
    berechnen, in welche Richtung der Spieler die Maus bewegt hat. Nachdem du das 1x berechnet hast, musst du die Kamera wieder zurücksetzen.

    Quelle

    Hallo,


    gibt es Jetpack-Sound (wenn man Leertaste drückt und das Gas aus den Düsen strömt)?
    Oder einen vergleichbaren (Feuerwerfer, Nitro etc.)?


    Danke schonmal!

    Die Funktion gettime gibt den Timestamp zurück ^^


    Also das mit der Variable hochzählen halte ich eigentlich auch für keine gute Idee, da die Timer sehr ungenau sind.
    Timerfix will ich aber eher nicht benutzen, weil ich nicht verstehe, wie das funktioniert und auch sonst
    relativ unabhängig von fremden Plugins und Includes sein will.


    Bei mir im Script werden die Sekunden nicht angezeigt, deswegen ist die Synchronisierung mit gettime 1x pro Sekunde
    eine gute Idee, denn so weicht die Anzeige um maximal einer Sekunde ab.


    Mit einer Ungenauigkeit wie dieser kann man keine ordentliche Uhr basteln.


    Meinst du, dass mit der oben beschriebenen Methode (1x pro Sekunde mit gettime abgleichen) es trotzdem sehr ungenau sein kann?

    Hallo,


    ich bin gerade am überlegen, wie man die perfekte Uhr scripted.
    Beim Godfather-Script ist es ja so, dass ein Timer jede Minute die Uhrzeit mit gettime aktualisiert.
    Leider führt das zu Bugs, da Timer nicht genau sind. Das führt dann dazu,
    dass manchmal Minuten "übersprungen" werden.


    Was ist dazu die beste Alternative, v.a. im Hinblick auf Performance und Sicherheit, dass keine Fehler auftreten?
    - jede Sekunde mit gettime synchronisieren
    - jede Sekunde mit UNIX_TIMESTAMP synchronisieren
    - jede Sekunde eine Variable hochzählen und jede Nacht mit gettime synchronisieren
    - jede Minute eine Variable hochzählen und jede Nacht mit gettime synchronisieren
    - Anderer Vorschlag?


    Danke für die Antworten :)

    Ich bin mir nicht sicher, aber probier mal folgendes:


    enum enum_musiclist
    {
    music_dbid,
    music_spielername[MAX_PLAYER_NAME],
    music_titel[5][30],//maxlänge 30 max 5xtitel
    music_link[5][60]//maxlänge 60 max 5xlinks
    };


    BTW:
    Du benötigst doch nur den Titel und den Link, richtig?
    Und wenn nicht, erklär mal was das Script macht und wozu dbid bzw. Spielername in der Tabelle aufgeführt ist.