[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Function OnPlayerSpawn(playerid)
    {
    TextDrawShowForPlayer(playerid,Copyright);
    TextDrawShowForPlayer(playerid,Datum);
    if(PlayerInfo[playerid][pTot] == 1)
    {
    GameTextForPlayer(playerid, "~r~Gestorben!", 5000, 3);
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "::... Krankenhaus ...:::");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Da du keine hp mehr hattest wurdest du ins. ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " Krankenhaus gebracht. ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " Du wirst etwa 30 Sekunden behandelt. ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " Pass in Zukunft besser auf dich auf! ");
    SetPlayerSpawn(playerid);
    if(IsPlayerInFrac(playerid, 1))
    {
    SetPlayerColor(playerid,NAMECOLOR_LSCOP);
    }
    else if(IsPlayerInFrac(playerid, 4))
    {
    SetPlayerColor(playerid, NAMECOLOR_MEDIC);
    }
    else
    {
    SetPlayerColor(playerid,TEAM_HIT_COLOR);
    }
    ResetPlayerWeapons(playerid);
    return 1;
    }

  • Guten Abend/Morgen,


    Ich hätte ein paar kurze Fragen:


    1. Wenn ich in meiner Datenbank eine Minute als "noch abzusitzende" Zeit angebe, also 3600ms, werde ich bereits kurz nach dem spawnen schon "befreit". Woran liegt das? Und existiert eine bessere Möglichkeit zu runden?


    innerhalb OnPlayerSpawn():

    if(pData[playerid][pJailtime] != 0) {
    if(pData[playerid][pJailid] == 1)
    {
    SetPlayerPos(playerid,3113.17,-852.35,11.24);
    knasttime = SetTimerEx("freedom", pData[playerid][pJailtime], false,"i", playerid);
    new knastzeit[128];
    new timesec,
    timemin;
    timesec = floatround(pData[playerid][pJailtime]/60,floatround_floor);
    timemin = floatround(timesec/60,floatround_floor);
    format(knastzeit,sizeof(knastzeit),"Du musst noch %i Sekunden (%i Minuten) absitzen.",timesec,timemin);
    SendClientMessage(playerid, 0xFFFFFF,knastzeit);
    } else {
    SetPlayerPos(playerid,3113.17,-852.35,11.24);
    knasttime = SetTimerEx("freedom", pData[playerid][pJailtime], false,"i", playerid);
    new knastzeit[128];
    new timesec,
    timemin;
    timesec = floatround(pData[playerid][pJailtime]/60,floatround_floor);
    timemin = floatround(timesec/60,floatround_floor);
    format(knastzeit,sizeof(knastzeit),"Du musst noch %i Sekunden (%i Minuten) absitzen.",timesec,timemin);
    SendClientMessage(playerid, 0xFFFFFF,knastzeit);
    }
    }


    2. Wie kann ich einen Command realisieren, der die verbleibende Zeit anzeigt? Einen Timer zu setzen wäre doch möglich, jedoch ists doch nicht gerade ressourcenschonend...?



    Vielen Dank schon im Vorraus!

  • 1. 1 Sekunde = 1000 Millisekunden. 1 Minute = 60 * 1000 = 60.000. - Du solltest dich bei 3600 Millisekunden noch 3.6 Sekunden im Gefängnis befinden.
    2. floatround() ist eine wunderbare Möglichkeit zum Runden, die dir verschiedene Optionen offen stellt. Ich würde dabei bleiben.
    3. Irgendwie musst du eben die Zeit runterzählen, im Timer wäre dies die beste Möglichkeit. Du könntest jede Minute einfach die Gefängniszeit heruntersetzen, somit wird nur jede Minute der Timer aufgerufen.

  • Nimm den SA:MP Colorpicker, stell auf HTLM und da hasste deine Codes. ;)


    lg :thumbup:


    #E: Natürlich Raute (#) weglassen.

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Hey Leute, habe heute mal selbst ein Problem.


    Und zwar habe ich 15 Fahrzeuge mit der Variable WheelVehs erstellt.
    Diese werden auch alle richtig erkannt, etc., wenn ich aber Abfrage, ob die
    Vehicleid (OnVehicleSpawn) gleich der Variable WheelVehs[8] (bei 8-14) ist, erkennt er das Fahrzeug nicht.


    Ich möchte also diese Fahrzeuge einzeln tunen, wenn sie spawnen und es funktioniert nur bis zur 7, die 8 - 14 bleiben ungetunt.


    MfG
    ATzeGER_

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs

  • Morgen,
    kann mir einer eventuell folgendes erklären:
    Ich möchte 2 Tore erstellen, diese sollen aber nur zwischen 6 Uhr frühs und 22 Uhr abends geöffnet sein, sprich das diese sich 22 Uhr schließen und 6 Uhr wieder öffnen. Kann man das irgendwie scripten?

    [tabmenu][tab=Signatur,'http://bit.ly/1i4RY3v']

    Wie poste ich richtig?
    Nachdem du Google, die FAQ und die Suchfunktion erfolgreich ignoriert hast, erstellst du 2 bis 5 neue Themen in den falschen Unterforen mit lustigem Titel,
    zu vielen Ausrufezeichen und undeutlichem Text, unter dem sich jeder etwas anders vorstellen kann.



    Mr.Dubstep | GFX | Scripting | Hackerplace
    If Mr.DubStep don't have it, you don't need it.

    [tab=Spieler bei,'http://bit.ly/1db2jaf'][subtab=Hackerplace,'http://bit.ly/1bswN2T']


    Welch wunderschöner Hack ist heute vollzogen worden, könntest Du mir es denn sagen? Ein wunderschönes Browsergame, auch für Kleinigkeiten unterwegs. Erschaffe deinen eigenen Computer, nutze ihn um anderen das Geld zu rauben, schließe dich einem Clan an oder gründe selbst einen. Bleibe allein oder mit vielen Freunden.

  • abfrage via gettime
    ist die Zahl unter 20 uhr dann gehts darüber error

  • Morgen,
    kann mir einer eventuell folgendes erklären:
    Ich möchte 2 Tore erstellen, diese sollen aber nur zwischen 6 Uhr frühs und 22 Uhr abends geöffnet sein, sprich das diese sich 22 Uhr schließen und 6 Uhr wieder öffnen. Kann man das irgendwie scripten?



    //muss in einem Timer sein oder Befehl
    new hour,min,sec;
    gettime(hour,min,sec);
    if(hour >= 6 && hour <= 22)
    {
    //öffne tor
    }
    else if(hour >= 22 && hour < 6) //da bin ich mir grade ncht sicher :O bissl spät
    {
    //schließe tor
    }

  • Guten Morgen.
    Ich habe eine Frage, Undzwar Lerne ich Momentan Mysql Auswendig.
    Einen teil Von Mysql kann ich Schon, Aber wenn Ich jetzt Z.b Eine Neue Tabelle machen will.
    Wie muss Ich dies dan im Script Auslesen?


    MFG
    ShiNuX

  • versuch ma das

    mysql_query("CREATE TABLE IF NOT EXISTS `ServerLog` (`id` int(11) AUTO_INCREMENT, `Name` varchar(255), `Action` varchar(255), `Date` varchar(255), `Time` varchar(255), PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");

  • @RedJoker.
    Habs schon Hinbekommen, Aber trotzdem Danke für den Tipp.


    MFG
    ShiNuX

  • Wie benutzt man strcmp mit Bezug auf dini_Get?



    if(strcmp(0,dini_Get(Playerdatei,"Eingeloggt"),true))


    Es soll so sein:


    Wenn in der Playerdatei bei "Eingeloggt" 0 steht soll der Spieler sich anmelden können.
    Wenn in der Playerdatei aber anstatt 0 1 bei Eingeloggt steht soll er das nicht können.


    Leider bekomm ich das mit strcmp nicht hin.

  • Die Funktion strcmp, wie schon die ersten drei Buchstaben aussagen, vergleicht zwei Variablen vom Typ 'String'. Daher solltest du wie folgt vorgehen:


    if(dini_Get(Playerdatei,"Eingeloggt") == 0)
    {
    // ...
    }
    Falls du trotzdem Wissen möchtest wie es möglich wäre, siehe hier:



    new str[2], val[2];
    valstr(val, "0");
    valstr(str, dini_Get(Playerdatei,"Eingeloggt"));
    if(strcmp(val, str, true))
    {
    // valstr() formt einen Integer in einen String um, wodurch es möglich wird strcmp zu verwenden.
    }