[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
  • C
    if(Spieler[playerid][pLastLogin] < (gettime()-86400))
    			{
    				if(Spieler[playerid][pLastLogin] > 0)
    				{
    					SendClientMessage(playerid, COLOR_YELLOW, "Dir wurde "COLOR_HEX_DARKORANGE"1 Respektpunkt"COLOR_HEX_YELLOW" gutgeschrieben da du mindestens 1 Tag nicht online warst.");
    					Spieler[playerid][pExp]++;
    				}
    			}

    Mir wird dauerhaft angezeigt, dass Ich 1 Tag nicht online war sobald ich mich einlogge.
    Beim Speichern vom Spieler wird in die DB "gettime()" eingetragen, und beim Laden wird es ganz normal von der DB bezogen.


    Nur die Abfrage spinnt irgendwie..


    @Jeffry @Kaliber


    sollte so gehen



    if(Spieler[playerid][pLastLogin] > 0 && Spieler[playerid][pLastLogin] < gettime()-86400)
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Dir wurde "COLOR_HEX_DARKORANGE"1 Respektpunkt"COLOR_HEX_YELLOW" gutgeschrieben da du mindestens 1 Tag nicht online warst.");
    Spieler[playerid][pExp]++;
    }

  • Hey wollte mal fragen wie ich am besten eine If-Abfrage mache ob der Spieler in einer Menge verschiedenen Posis ist, statt da jetzt 300x IfIsPlayerInRange.. XYZ hinzuschreiben, würde ich mir vorstellen, dass es eine Funktion gibt wo man abfragt ob der Spieler in eigener Range ist die per rand (?) oder urand(?) oder so ähnlich eingetragen wurde, allerdings kenne ich mich damit nicht aus, wäre gut falls mir da jemand kurz hilft ^^.

    SA:MP in 2020?

  • Naja...am einfachsten wäre sowas:



    Das wäre ein Beispiel...da kannst du dann einfach alle Positionen oben eintragen & fertig ^^

    ast2ufdyxkb1.png


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

  • Hey wollte mal fragen wie ich besseres class select machen kann
    derzeitiges (code unten) ist etwa so: Login Screen > drückt man irgendwas außer beim Dialog = passiert nix.
    Nach login > drückt man next oder spawn, spawnt man irgendwie mit den ersten (oder random skin, ka) ohne dass man überhaupt auf "Spawn" drücken muss oder zur "Skinauswahl" kommt.


    Wie ich das haben will:
    | Login Screen | > drückt man irgendwas außer Dialog, passiert nix
    | Nach Login | > soll man in class select freie auswahl der Skins haben, halt unverbuggt.


    SA:MP in 2020?


  • [list=1][*]stock mysql_GetStringByString(Table[], Field[], Where[],Where2[])
    [*]{
    [*] #pragma unused Where2
    [*] #pragma unused Where
    [*] #pragma unused Table
    [*] new str[512];
    [*] format(query, 512, "%s", Field);
    [*] mysql_fetch_field(query,str);// hier ist der fehler!
    [*] return str;
    [*]}
    [/list]



    C:\Users\Administrator\Desktop\test-server
    server\gamemodes\test-server.pwn(3371) : error 035: argument type
    mismatch (argument 1)

  • Guten Morgen,
    kann mir einer sagen wie ich in MySQL R41 einen Namen auslesen lassen kann?
    Dachte so, aber Funktionieren tut es leider nicht.


    cache_get_value_name_int(0, "fr_name", format(name, sizeof(name), i));


    Auch so Funktioniert es leider nicht.
    cache_get_value_name(0, "fr_name", name);


    Wie kann/muss ich ihn nun auslesen ?


    Mit freundlichen Grüßen,


    //e
    Falls es helfen sollte, hier der ganze Befehl:



    ocmd@2:freunde,friends(playerid, params[])
    {
    new query[256], name[128], string[512], string2[512], rows;
    mysql_format(Handle, query, sizeof(query), "SELECT * FROM `freundesliste` WHERE `username` = '%e'", sInfo[playerid][sName]);
    mysql_pquery(Handle, query);

    cache_get_field_count(rows);
    if(rows != 0)
    {
    FriendInfo[playerid][TotalFriends] ++;
    cache_get_value_name(0, "friendname", name);
    printf("fr_name: %s", name);
    if(IsFriendOnline(name))
    {
    format(string, sizeof(string), ""#FARBE_WEISS"%s - "#FARBE_GRUEN"Online\n", name);
    strcat(string2, string);
    }
    else
    {
    format(string, sizeof(string), ""#FARBE_WEISS"%s - "#FARBE_ROT"Offline\n", name);
    strcat(string2, string);
    }
    ShowPlayerDialog(playerid, DIALOG_FRIENDS, DIALOG_STYLE_MSGBOX, "Deine Freunde", string, "Schliessen", "");
    }
    return 1;
    }


    2 Mal editiert, zuletzt von Kisa ()

  • Suche immernoch

    Benutz doch meine Funktion und schau ingame nach:
    So finde ich immer recht schnell jede Animation die ich suche / brauche.

    SA:MP in 2020?

  • kann mir jemand helfen wenn ich diesen befehl eingebe kommt immer server:unknow command und dann passiert nichts

    if(strcmp(cmd,"/gangwaffenbox",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAGang(playerid) || GetPlayerFaction(playerid) == 20)
    {
    if(IsPlayerAtWaffenBox(playerid))
    {
    new i = GetPlayerGWB(playerid);
    format(string,256,"Gangwaffenbox - Mats: %d | Drugs: %d",GWB[i][gwbmats],GWB[i][gwbdrugs]);
    ShowPlayerDialog(playerid,DIALOG_GWB,DIALOG_STYLE_LIST,string,"Materialien einzahlen\nWaffe zusammen bauen\nDrogen einzahlen\nDrogen auszahlen","Weiter","Schließen");
    }
    else SendClientMessage(playerid,COLOR_RED,"Du bist nicht bei der Gangwaffenbox!");
    }
    else SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Gang!");
    }
    return 1;
    }

    Einmal editiert, zuletzt von TimeLine ()

  • Der Code ist aber nicht schön...besonders das sizeof(str) ist da fehl am Platz..es reicht hier folgendes zu machen:
    cache_get_value_name(0, "sName", sData[sName]);

    Da hat Kaliber recht, so würde ich es ja eigentlich machen.
    ABER: Ich brauche den Namen ja "nur" einmal, daher ist es eigentlich "unnötig" dafür ein Enum zu machen.


    Kaliber? Hast du eine Idee wie ich das Problem gelöst bekomme?


    Mit freundlichen Grüßen,

  • Hey hab irgendwie nen weird bugg der mir zuvor nie passiert ist.


    Undzwar spawnen bei mir keine Fahrzeuge mehr.. Nicht mehr standardmäßig bei OnGameModeInit und auch nicht per Befehl..

    SA:MP in 2020?

  • Undzwar spawnen bei mir keine Fahrzeuge mehr.. Nicht mehr standardmäßig bei OnGameModeInit und auch nicht per Befehl..

    Dann schau mal in deinen Server Log..bzw Poste diesen mal bitte hier ^^


    Lade am besten crashdetect ^^

    ast2ufdyxkb1.png


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

  • Dann schau mal in deinen Server Log..bzw Poste diesen mal bitte hier ^^
    Lade am besten crashdetect ^^

    Omg ich werde von pawn immer getrollt, geht nach server restart irgendwie wieder. Danke trotzdem lol


    Edit: Gibts ne public wo man abfrag was für ne klasse der spieler ausgewählt hat? (AddPlayerClass - Klasse)

    SA:MP in 2020?

  • Kann es zu einer Endlos-Schleife führen wenn man sowas hat?
    Wenn es z.B. nix paasendes findet und somit nicht zum return kommt und dann ewig continue macht, sodass es in einer endlosen Schleife ist?


    Code
    for (new i=0; i < MAX_PLAYERS; i++)
    {
        if(XYZ[playerid] != i)continue;
    	if(XYZ[i] != playerid)continue;
    	- Irgendeine Aktion
    	return 1;
    }

    SA:MP in 2020?

  • Danke, hab heute irgendwie viele Fragen...
    Aber hier hab ich wahrscheinlich einen Tunnelblick, kann mir jemand sagen wieso ein Cop (Team 1) keine XP für kills bei verbrechern mit wanteds kriegt?


    Funktion:


    OnPlayerDeath

    SA:MP in 2020?