[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
  • an was kann das liegen

    Dein SA:MP-Server bezieht seine Uhrzeit von deinem Server (der dahinter steht).


    Scheint so, als ob die Uhrzeit da falsch gehen würde, also einfach mal die synchronisieren :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Achso, dann geht auf deren Servern die Uhr falsch.


    3 Möglichkeiten das jetzt zu beheben:


    • Schauen, ob du irgendwo im Control Panel die Uhrzeit einstellen kannst.
    • Jemanden dort anschreiben und denen das mitteilen, dann können die das syncen :)
    • Ein quick&dirty fix du addierst einfach 5 Minuten bei deiner Zeit (Aber natürlich nicht einfach +5 sondern am besten mit einem Time Include/Plugin). (Ist aber nicht so zu empfehlen, probiere eine der ersten Beiden Möglichkeiten)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • idk. ob ich das Ganze hier jetzt richtig verstanden habe, aber müsste denke ich so gehen ->
    Du fragst zuerst ab ob die Zeichenlänge der Kontonummer genau 5 ist.
    Danach wenn die gültige Kontonummer allgemein eine Zahl von 10000 bis 99999 ist.


    Siehe:



    Code
    if (strLen(Kontonummer[playerid]) == 5) 
    {
    	if (strval(Kontonummer[playerid]) <= 10000 && strval(Kontonummer[playerid]) >= 99999)
    	{
    		// [...]
    	}
    }

    @Alva.


    Um hier auch was bei zu lernen, lies einfach folgendes durch: http://wiki.sa-mp.com/wiki/Strlen

  • ob ich das Ganze hier jetzt richtig verstanden habe, aber müsste denke ich so gehen

    Das ist so aus mehreren Gründen falsch:

    • strlen kannst du nur auf Strings anwenden und nicht auf Integer.
    • <=10000 && >= 99999 das ist ein Widerspruch in sich, ich hoffe das ist klar.
    • Selbst wenn strlen funktionieren würde...wäre dann das mit der Abfrage ein doppel gemoppel.
    • Und strval auf einen Integer macht auch nicht soviel Sinn, da das ja schon ein Integer ist :)

    Das Thema war (hoffentlich) schon erledigt, hatte ihm das eigentlich versucht ausführlich zu erklären in mehreren Posts.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Guten Morgen Leute


    Ich habe ein Problem. Bei meinem Verbrecher Kill System ist es so dass der Täter im Knast landet nicht nur wenn er durch einen Cop gekillt wird sondern auch wenn er durch einen Normalen User
    gekillt wird. Also wenn der Spieler Wanteds hat und egal von wen er gekillt wird landet er im Knast. Ich habe die If(IsaCop) Anfrage ja drin aber da passt trotzdem was nicht.


    Was mache ich falsch :/ ???


    Ich freue mich auf eure Hilfe ;)



    if(newstate == PLAYER_STATE_WASTED)
    {
    if(WantedLevel[playerid] >= 1)
    {
    new price = WantedLevel[playerid] * 150;
    new count;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i) && CrimInRange(70.0, playerid,i)) //Hier habe ich es ja geschrieben :/
    {
    count = 1;
    format(string, sizeof(string), "COPKILL", price);
    GameTextForPlayer(i, string, 2000, 1);
    ConsumingMoney[i] = 1;
    FraktionsKasse[0] += price/2;
    FraktionsKasse[1] += price/2;
    FraktionsKasse[2] += price/2;
    PlayerPlaySound(i, 1058, 0.0, 0.0, 0.0);
    }
    }
    }
    if(count == 1)
    {
    if(WantedLevel[playerid] >= 1)
    {
    GivePlayerMoney(playerid, -price);
    PlayerInfo[playerid][pWantedDeaths] += 1;
    PlayerInfo[playerid][pJailed] = 1;
    SpawnPlayer(playerid);
    PlayerInfo[playerid][pJailTime] = (WantedLevel[playerid] * 120);
    format(string, sizeof(string), "Du musst für %d Sekunden ins Gefängnis-[Strafe: $%d]", PlayerInfo[playerid][pJailTime], price);
    GameTextForPlayer(playerid, "~r~BUSTED", 2300,5);
    SendClientMessage(playerid,rot, string);
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    SetPlayerVirtualWorld(playerid, 0);
    }
    }
    }
    }



    Mit freundlichen Grüßen


  • Function IsACop(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new leader = PlayerInfo[playerid][pLeader];
    new member = PlayerInfo[playerid][pMember];
    if(member==2)
    {
    return 1;
    }
    else if(leader==2 )
    {
    return 1;
    }
    }
    return 0;
    }

  • xD Nein da gehört das nicht rein. Baller es in "OnPlayerDeath" ->


    Hab dafür alles soweit angepasst. Der for Loop ist auch komplett überflüssig, da du nur abfragst ob ein Cop online ist.
    Er geht demnach alle Cops durch die online sind und sobald bei einem Spieler der Status "WASTED" ist und ein Cop online ist -> geht der down und ins jail.


    Ah und verwend die Funktion mal so;



    Einmal editiert, zuletzt von Janes ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Bei Function OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) wird IsACop nach gefragt


    und Wasted System bei OnPlayerStateChange


    Killerid hab ich auch nachgefragt das der Cop halt der Killer ist. Wahrscheinlich lag es an der Anzahl von den Cops oder ka was


    Ich danke dir viel mals ;)

    Einmal editiert, zuletzt von HandsUper ()

  • Guten Abend,


    Mir sind grade paar Fehler aufgefallen undzwar wenn ich mir mit /givegun oder /sellgun eine Waffe gebe geht diese einfach komplett weg.
    Ich kann nur "Hand-Waffen" wie Golfschläger, Messer & Co halten der Rest geht einfach weg und löscht sich sozusagen vom Spieler..


    Weiß jemand woran es liegen kann?


    LG

  • Niemand kann dir helfen, wenn du nicht dein Code postest :D

  • Streamer wird nicht richtig geladen. Habe den neusten, alles richtig compiled etc.

    Code
    [20:35:37]    Error: Function not registered: 'CreateDynamicObject'
    [20:35:37]    Error: Function not registered: 'SetDynamicObjectMaterial'


  • Da du ja schon crashdetect geladen hast, zeig uns mal den server.log, da steht eine genauere Fehlerbeschreibung drinnen :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Streamer wird nicht richtig geladen. Habe den neusten, alles richtig compiled etc.

    Code
    [20:35:37]    Error: Function not registered: 'CreateDynamicObject'
    [20:35:37]    Error: Function not registered: 'SetDynamicObjectMaterial'


    Code
    IMPORTANT: In order to make it work correcly you must put it in the end of the plugins line of your server.cfg so it will be the last one, e.g. plugins sscanf streamer nativechecker.


    Lad nativechecker mal als letztes.

  • Da du ja schon crashdetect geladen hast, zeig uns mal den server.log, da steht eine genauere Fehlerbeschreibung drinnen :)

    Gesamte Server Log eines Starts.