[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
  • Mein Problem besteht darin, dass mein Arrest-timer immer nur von 60 auf 59 runterzählt und dann "aufhört".



    mfg :thumbup:

    Meine Frage scheint wohl untergegangen zu sein, deswegen frage ich einfach nochmal. :)




    public CheckEntlassung()
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(pInfo[i][pJail]!=0)
    {
    pInfo[i][pJail]--;
    printf("Noch %i Sekunden.",pInfo[i][pJail]/1000);
    if(pInfo[i][pJail]==0)
    {
    pInfo[i][pJail]=0;
    SendClientMessage(i,CLR_RED,"Du hast deine Strafe abgesessen, hoffentlich hast du dazu gelernt!");
    SetPlayerArmour(i,0);
    ResetPlayerWeapons(i);
    SetPlayerPos(i,1555.0754,-1675.6427,16.1953);
    SetPlayerFacingAngle(i,90.0);
    SetPlayerInterior(i,0);
    SetPlayerVirtualWorld(i,0);
    SetPlayerHealth(i,100);
    GameTextForPlayer(i,"~p~Unjailed",10000,6);
    }
    }
    }
    return 1;
    }


    pInfo[pID][pJail]=jminuten*1000*60;


    SetTimer("CheckEntlassung",1000,true);

    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

  • Wenn wir schon beim Spekulieren sind, könnte es auch ne schnieke MySQL Injection sein, wenn das pw nicht escaped wird :P

    ast2ufdyxkb1.png


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

  • Hi, in meinem FilterScript wird OnPlayerConnect nicht aufgerufen, deswegen habe ich versucht das Problem per Hook zu lösen aber es hilft nicht.
    Weiß jemand woran das liegt oder habe ich beim hooken etwas falsch gemacht?



    public OnPlayerConnect(playerid)
    {

    SendClientMessage(playerid,-1,"Test");



    #if defined SOB_OnPlayerConnect
    return SOB_OnPlayerConnect(playerid);
    #else
    return 1;
    #endif
    }
    #if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
    #else
    #define _ALS_OnPlayerConnect
    #endif



    #define OnPlayerConnect SOB_OnPlayerConnect
    #if defined SOB_OnPlayerConnect
    forward SOB_OnPlayerConnect(playerid);
    #endif


    Mit freundlichen Grüßen
    JustMe.77 8)

  • @Jeffry Wie genau soll ich die Funktion denn nutzen?
    Ich möchte ja wissen, ob ein ATM in der Nähe ist, wenn ja, lasse ich ihn ein Dialog anzeigen.
    Das ganze klappt aber nicht wirklich mit deinem Stock.
    Oder bin ich gerade zu Doof, das zu erkennen?
    Möchte es im Befehl zu aussehen haben:



    if(ABFRAGE(playerid, NÄHE))
    {
    Zum Ausführen
    }else SendClientMessage(playerid, -1, "Kein ATM in der Nähe");

    Mit freundlichen Grüßen, BlvckAir :thumbup:

  • Kann mir jemand helfen?



    ocmd:spielerinfo(playerid,params[])
    {
    new str[145],str1[145], PName, query[128], acc[64],string[333];
    new c_hour,c_minute,c_second,c_day,c_month,c_year;
    gettime(c_hour, c_minute, c_second);
    getdate(c_year, c_month, c_day);
    if(sscanf(params, "s", PName)) return SendClientMessage(playerid,ROT,"{FFD200}Benutze:{FEFEFE}/spielerinfo [Name]");
    format(query, sizeof(query),"SELECT LastJoin AND Gebannt FROM `accounts` WHERE `Name`='%s'",PlayerInfo[playerid][PName]);
    mysql_query(query);
    format(str1, sizeof(str1), "Der Spieler %s war zuletzt am Spieler: %d:%d:%d",PName,PlayerInfo[playerid][pLastjoin]);
    SendClientMessage(playerid, 0xFFFFFFFF, str1);
    if(PlayerInfo[PName][pGebannt] ==!0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist gebannt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist nicht gebannt.");
    return 1;
    }
    return 1;
    }


    Das Datum wird nur mit 0:: angezeigt und wenn ein spieler gebannt ist sagt es das er nicht gebannt sei.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • kurze Frage, bekomme hier einen Warning...


    warning 219: local variable "hitid" shadows a variable at a preceding level


    Code:

    Code
    Function OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)


    falls ihr Function braucht:


    Code
    #define Function%0(%1) forward%0(%1); public%0(%1)


    Was ist denn da der Fehler?


  • for(new v;v< sizeof(FBIVehs);v++)
    {
    new kennzeichen[12];
    format(kennzeichen, sizeof(kennzeichen), "FBI-%d", randomEx(1000, 9999));
    SetVehicleNumberPlate(FBIVehs[v], kennzeichen);
    SetVehicleToRespawn(FBIVehs[v]);
    if(GetVehicleModel(FBIVehs[v]) == 560)
    {
    new kennzeichen123456[12];
    format(kennzeichen123456, sizeof(kennzeichen123456), "FBI-%d", randomEx(1000, 9999));
    SetVehicleNumberPlate(FBIVehs[v], kennzeichen123456);
    SetVehicleToRespawn(FBIVehs[v]);
    AddVehicleComponent(FBIVehs[v], 1010);
    }
    }



    Darf man fragen warum das Nitro nach den Respawn weg ist? :P

  • SA:MP MySQL Plugin v2.1.1

    Versuche es so:
    ocmd:spielerinfo(playerid,params[])
    {
    new str[145], name[MAX_PLAYER_NAME], lastjoin[11], gebannt;
    if(sscanf(params, "s", name)) return SendClientMessage(playerid,ROT,"{FFD200}Benutze:{FEFEFE}/spielerinfo [Name]");

    mysql_real_escape_string(name,name);
    format(str, sizeof(str),"SELECT LastJoin, Gebannt FROM `accounts` WHERE `Name`='%s'",name);
    mysql_query(str);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
    mysql_free_result();
    return SendClientMessage(playerid,ROT,"Spieler existiert nicht.");
    }
    mysql_fetch_field("LastJoin",lastjoin);
    mysql_fetch_field("Gebannt",str);
    gebannt = strval(str);
    mysql_free_result();

    format(str, sizeof(str), "Der Spieler %s war zuletzt am Spieler: %s",name,lastjoin);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    if(gebannt != 0) SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist gebannt.");
    else SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist nicht gebannt.");
    return 1;
    }

  • @Jeffry, ich benötige einen kleinen anstupser bezüglich der Altersabfrage...


    Code:



    Das Problem ist bei der Abfrage beim Dialogfenster und zwar wird nicht richtig geprüft ob der Spieler mindestens 18 - 30Jahre alt ...
    Und eins habe ich beim stock nicht verstanden, was ist das für ein stock bzw für was ist das?


    Code
    new stock g_days_m[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  • if(age > 18 && age < 30)
    zu:
    if(age >= 18 && age <= 30)
    Das wäre dann für 18 - 30.



    Und eins habe ich beim stock nicht verstanden, was ist das für ein stock bzw für was ist das?

    Das ist für die Angabe der Tage pro Monat, damit diese nicht jedes mal lokal deklariert werden, wenn GetPlayerAge ausgeführt wird.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen