Beiträge von Beavis

    while(mysql_fetch_row(str))//Übergibt das was vorher aus der Tabelle geladen wurde an einen string. { sscanf(str, "e<p<|>{i}s[16]s[24]s[130]iiifff>",SpielerInfo[playerid]);//teilt den string in seine bestandteile so wie wir es wollen und gibt es an das enum weiter }


    maddin änder das doch mal bei gelegenheit
    die while funktion würd ich nicht anwenden, da bei mir gerne der Server verreckt wenn ich das mit ner while funktion mache^^


    So geht es auch:
    mysql_fetch_row(str);
    sscanf(str, "e<p<|>{i}s[16]s[24]s[130]iiifff>",SpielerInfo[playerid]);

    Mal was zum lachen^^


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Hat einer von euch eine Idee wie ich den Timer etwas schonender machen kann?
    Wenn kein User auf den Server ist brauch der zwischen 10 und 20 Millisekunden und das ist mir etwas zu hoch
    Ich habe schon einiges geändert aber die Zeit will nicht runtergehen

    Spoiler anzeigen
    DT_Public OnSecond()
    {
    new minute,sec,hour,query[128], Kosten[2];
    gettime(hour,minute,sec);
    new t1 = GetTickCount();
    if(minute%15==0&&sec==0)
    {
    Wetter[0] = WetterRandomLS[random(sizeof(WetterRandomLS))];
    Wetter[1] = WetterRandomSF[random(sizeof(WetterRandomSF))];
    Wetter[2] = WetterRandomLV[random(sizeof(WetterRandomLV))];
    for(new i; i < MAX_PLAYERS; i++){
    if(!IsPlayerConnected(i))continue;
    SetPlayerWetter(i);}
    if(Werbung==0)
    {
    SendClientMessageToAll(cGrey,"====================[Dark-Trigardon]====================");
    SendClientMessageToAll(cWhite,"Schon gewusst?");
    SendClientMessageToAll(cWhite,"Bei uns gibt es die DT-Sterne.");
    SendClientMessageToAll(cWhite,"Mit diesen Sternen, kannst du dir einige schöne Dinge holen.");
    SendClientMessageToAll(cWhite,"Gebe dafür /shop ein.");
    SendClientMessageToAll(cGrey,"====================["ForenURL"]====================");
    Werbung=1;
    }
    else if(Werbung==1)
    {
    SendClientMessageToAll(cGrey,"====================[Dark-Trigardon]====================");
    SendClientMessageToAll(cWhite,"Du hast nichts zu tun?");
    SendClientMessageToAll(cWhite,"Dann such dir einen Job.");
    SendClientMessageToAll(cWhite,"Es gibt verschiedene Jobs, die einen Spaß machen können");
    SendClientMessageToAll(cWhite,"und mit den man schnelles Geld machen kann.");
    SendClientMessageToAll(cWhite,"Jobs findest du in unseren Arbeitsamt.");
    SendClientMessageToAll(cGrey,"====================["ForenURL"]====================");
    Werbung=2;
    }
    else if(Werbung==2)
    {
    SendClientMessageToAll(cGrey,"====================[Dark-Trigardon]====================");
    SendClientMessageToAll(cWhite,"Schon gewusst?");
    SendClientMessageToAll(cWhite,"Um Gebäude zu betreten,");
    SendClientMessageToAll(cWhite,"musst du nicht immer Commands eingeben.");
    SendClientMessageToAll(cWhite,"Drücke einfach die Enter Taste.");
    SendClientMessageToAll(cGrey,"====================["ForenURL"]====================");
    Werbung=0;
    }
    }
    if(minute == 0 && sec == 0)
    {
    for(new i = 0; i < MAX_HAUS; i++)
    {
    if(strcmp(Haus[i][HOwner],"Niemand",true))
    {
    if(Biz[WasserBiz][bProds]>4)
    {
    Kosten[0] = Biz[WasserBiz][bProdpreis]*5;
    if(Haus[i][HKasse] > Kosten[0])
    {
    Biz[WasserBiz][bProds] -= 5;
    Biz[WasserBiz][bKasse] += Kosten[0];
    Haus[i][HKasse] -= Kosten[0];
    UpdateHaus(i);
    UpdateBiz(WasserBiz);
    }
    }
    else
    {
    SendClientMessageToAll(cYellow,">> Das Wasserwerk benötigt dringed Waren!");
    SendClientMessageToAll(cYellow,">> Es steht ein Wassermangel bevor!");
    }
    if(Biz[StromBiz][bProds]>4)
    {
    Kosten[1] = Biz[StromBiz][bProdpreis]*5;
    if(Haus[i][HKasse] > Kosten[1])
    {
    Biz[StromBiz][bProds] -= 5;
    Biz[StromBiz][bKasse] += Kosten[1];
    Haus[i][HKasse] -= Kosten[1];
    UpdateHaus(i);
    UpdateBiz(StromBiz);
    }
    }
    else
    {
    SendClientMessageToAll(cYellow,">> Das Stromwerk benötigt dringed Waren!");
    SendClientMessageToAll(cYellow,">> Es steht ein Stromausfall bevor!");
    }
    }
    }
    SaveGame();
    }
    if(hour > 7 && hour < 23)
    {
    if(minute==0&&sec==0)
    {
    Server[ServerLotto]+=random(5000);
    format(query,128,">> In 3 Minuten beginnt das Lottospiel! Es sind %d$ im Jackpot!",Server[ServerLotto]);
    SendClientMessageToAll(cGrey,query);
    format(query,128,">> Nutze /lotto [1-%d] um mitzumachen",MAX_PLAYERS);
    SendClientMessageToAll(cGrey,query);
    }
    else if(minute==1&&sec==0)
    {
    format(query,128,">> In 2 Minuten beginnt das Lottospiel! Es sind %d$ im Jackpot!",Server[ServerLotto]);
    SendClientMessageToAll(cGrey,query);
    format(query,128,">> Nutze /lotto [1-%d] um mitzumachen",MAX_PLAYERS);
    SendClientMessageToAll(cGrey,query);
    }
    else if(minute==2&&sec==0)
    {
    format(query,128,">> In 1 Minute beginnt das Lottospiel! Es sind %d$ im Jackpot!",Server[ServerLotto]);
    SendClientMessageToAll(cGrey,query);
    format(query,128,">> Nutze /lotto [1-%d] um mitzumachen",MAX_PLAYERS);
    SendClientMessageToAll(cGrey,query);
    }
    else if(minute==3&&sec==0)
    {
    new Number = 1+random(MAX_PLAYERS);
    format(query,128,">> Die heutige Zahl im Lottospiel lautet %d!",Number);
    SendClientMessageToAll(cGrey,query);
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(PlayerInfo[i][Logged]==0) continue;
    if(Number==PlayerInfo[i][Lotto])
    {
    format(query,128,">> %s hat den Jackpot geknackt und bekam %d$!",PlayerInfo[i][Name],Server[ServerLotto]);
    SendClientMessageToAll(cGrey,query);
    Server[ServerKasse]-=Server[ServerLotto];
    GivePlayerMoney(i,Server[ServerLotto]);
    Server[ServerLotto]=0;
    Server[ServerLotto]+=random(5000);
    }
    PlayerInfo[i][Lotto]=0;
    }
    }
    }
    switch(TimeUhr)
    {
    case 0:{format(query,20,"%02d %02d",hour,minute),TimeUhr=0;}
    case 1:{format(query,20,"%02d:%02d",hour,minute),TimeUhr=1;}
    }
    TextDrawSetString(Clock,query);
    TextDrawShowForAll(Clock);
    SetWorldTime(hour);
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(PlayerInfo[i][Logged]==1)
    {
    if(GetPlayerMoney(i) > PlayerInfo[i][Geld])
    {
    SetPlayerMoney(i,PlayerInfo[i][Geld]);
    }
    if(GetTickCount()-PlayerInfo[i][AFK] > 1999)
    {
    format(query,sizeof query,"AFK seit %d Sekunden",((GetTickCount()-PlayerInfo[i][AFK])/1000));
    SetPlayerChatBubble(i,query,cRed,15.0,1500);
    continue;
    }
    else
    {
    if(PlayerInfo[i][PayDay]!=0)
    PlayerInfo[i][PayDay]--;
    else if(PlayerInfo[i][PayDay]==0)
    PlayerPayDay(i);
    if(PlayerInfo[i][Jailtime] > 0)
    PlayerInfo[i][Jailtime]--;
    else if(PlayerInfo[i][Jailtime]==0)
    PlayerInfo[i][Jailtime]=-2,SpawnPlayer(i);
    if(PlayerInfo[i][FuckBlitzer]> 0)
    PlayerInfo[i][FuckBlitzer]--;
    else if(PlayerInfo[i][FuckBlitzer]==0)
    PlayerInfo[i][FuckBlitzer] = -1;
    if(PlayerInfo[i][Gemutet]!=0)
    PlayerInfo[i][Gemutet]--;
    else if(PlayerInfo[i][Gemutet]==0)
    PlayerInfo[i][Gemutet]=0;
    if(IsUserInFillStation(i))
    GameTextForPlayer(i,"Willkommen an der~n~Tankstelle~n~/tanken",1200,6);
    if(GetNearATM(i))
    GameTextForPlayer(i,"~y~Willkommen am ATM~n~~w~Druecke Enter",1200,6);
    UpdateAdminTicket(i);
    if(PlayerInfo[i][MedicTot]>0)
    {
    PlayerInfo[i][MedicTot]--;
    if(PlayerInfo[i][MedicTot]<11)
    PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0);
    format(query,128,"~w~Noch ~r~%d ~w~Sekunden",PlayerInfo[i][MedicTot]);
    GameTextForPlayer(i,query,1200,6);
    ApplyAnimation(i, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 1000*60*3);
    format(query,128,"Überlebt noch %d Sekunden",PlayerInfo[i][MedicTot]);
    SetPlayerChatBubble(i, query, cGrey, 10.0, 1500);
    }
    else if(PlayerInfo[i][MedicTot]==0)
    {
    PlayerInfo[i][MedicTot]=-1;
    if(PlayerInfo[i][Mediccall]!=0)
    {
    PlayerInfo[i][Tot]=1;
    PlayerInfo[i][Mediccall]=0;
    DestroyPickup(PlayerInfo[i][TotPickup]);
    PlayerInfo[i][TotPickup]=-1;
    PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
    format(query,128,">> %s ist an seinen Verletzungen verstorben!",PlayerInfo[i][Name]);
    SendTeamMessage(tMedic,query);
    GameTextForPlayer(i,"Du bist an deinen Verletzungen gestorben",1200,6);
    SpawnPlayer(i);
    }
    else
    {
    PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
    PlayerInfo[i][Tot]=3;
    SpawnPlayer(i);
    }
    }
    format(query,100,"~g~%d ] "ForenURL"",PlayerInfo[i][Star]);
    TextDrawSetString(PlayerInfo[i][StarInfo],query);
    TextDrawShowForPlayer(i,PlayerInfo[i][StarInfo]);
    //FuckBlitzer
    for(new Blitz=0; Blitz<sizeof(ServerBlitzer); Blitz++)
    {
    if(IsPlayerInRangeOfPoint(i, 40.0, ServerBlitzer[Blitz][SBx], ServerBlitzer[Blitz][SBy], ServerBlitzer[Blitz][SBz]))
    {
    if(GetPlayerState(i)==PLAYER_STATE_DRIVER)
    {
    new speed = sm_GetVehicleSpeed(GetPlayerVehicleID(i));
    if(speed > ServerBlitzer[Blitz][SBSpeed])
    {
    if(PlayerInfo[i][FuckBlitzer] == -1)
    {
    PlayerInfo[i][FuckBlitzer] = 10;
    new strafe = (speed*3)-ServerBlitzer[Blitz][SBSpeed];
    PlayerPlaySound(i, 1132, 0.0, 0.0, 0.0);
    GivePlayerMoney(i, -strafe);
    Server[ServerKasse]+=strafe;
    format(query,sizeof(query), "[BLITZER] Du bist %d km/h zu schnell gefahren!", speed - ServerBlitzer[Blitz][SBSpeed]);
    SendClientMessage(i, cYellow, query);
    format(query,sizeof(query), "[BLITZER] Erlaubte Geschwindigkeit: %d km/h. Du musst %d$ Strafe bezahlen.", ServerBlitzer[Blitz][SBSpeed], strafe);
    SendClientMessage(i, cYellow, query);
    TextDrawShowForPlayer(i,PlayerInfo[i][LadeACC][0]);
    SetTimerEx("HideBlitzer",1000,0,"d",i);
    }
    }
    }
    }
    }
    if(GetPlayerState(i)==PLAYER_STATE_SPECTATING)
    {
    new Float:OpferHealth, Float:OpferVehHealth;
    GetPlayerHealth(PlayerInfo[i][Opfer],OpferHealth);
    GetVehicleHealth(GetPlayerVehicleID(PlayerInfo[i][Opfer]),OpferVehHealth);
    new sh=floatround(OpferHealth,floatround_round);
    new vh=floatround(OpferVehHealth,floatround_round);
    format(query,sizeof(query),"~n~~n~~n~~n~~n~~n~~n~~r~HP: %d~n~~r~Vehicle-HP: %d~n~~r~",sh,vh);
    GameTextForPlayer(i,query,1500,4);
    }
    new weg = sm_GetVehicleSpeed(GetPlayerVehicleID(i)),tachostring[128];
    if(GetPlayerState(i)==PLAYER_STATE_DRIVER)
    {
    new vid=GetPlayerVehicleID(i);
    format(tachostring,sizeof tachostring,"Tank: %d/%d~n~~w~~n~Km: %.2f",Car[vid][Tank]/10,((Car[vid][Tank]/10 > 100)?(1000):(100)),((Car[vid][Kilometers] > 0)?(Car[vid][Kilometers]):(0.0)));
    TextDrawSetString(PlayerInfo[i][Tacho][1],tachostring);
    if(Car[vid][Kilometers] > 0)Car[vid][Kilometers]+=floatdiv(float(weg),3600);
    format(tachostring,sizeof tachostring,"%d Km/h",weg);
    TextDrawSetString(PlayerInfo[i][Tacho][0],tachostring);
    TextDrawShowForPlayer(i,PlayerInfo[i][Tacho][0]);
    TextDrawShowForPlayer(i,PlayerInfo[i][Tacho][1]);
    if(weg > 350)
    {
    format(query, sizeof(query), "%d kmh (%s)",weg,CarName[GetVehicleModel(vid)-400]);
    CartmanMelder(i,query,"~y~");
    shit_Cartman(i,"Speedhack");
    }
    //Motorzeug etc
    new Float:vHP,Float:x,Float:y,Float:z,Float:a,engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleHealth(vid,vHP);
    if(vHP >= 300.0) continue;
    if(vHP <= 250.0)
    {
    SetVehicleHealth(vid,260.0);
    GetVehiclePos(vid,x,y,z);
    GetVehicleZAngle(vid,a);
    SetVehiclePos(vid,x,y,z);
    SetVehicleZAngle(vid,a);
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    if(Car[vid][PuttPutt]==0)
    {
    Car[vid][Motor]=0;
    Car[vid][PuttPutt]=1;
    SendDriverMessage(vid,"[Motorschaden] Um einen Mechaniker zu rufen gebe /mechaniker ein");
    if(IsVehicleAFraktionsCar(vid)!=0)
    {
    format(query, sizeof(query),"[Fraktions-Info] Das Fahrzeug mit den Kennzeichen %s hat einen Totalschaden", Car[vid][Numplate]);
    SendTeamMessage(IsVehicleAFraktionsCar(vid),query);
    }
    if(CheckUserFromTeam(tFeuer) >= 2)
    {
    for(new pID; pID < MAX_PLAYERS; pID++)
    {
    if(!IsPlayerConnected(pID)) continue;
    if(GetPlayerVehicleID(pID) == vid)
    {
    TogglePlayerControllable(pID, 0);
    SendClientMessage(pID, cRed, "Durch den Unfall bist du eingeklemmt! Rufe mit /feuerwehr die Feuerwehr");
    SendClientMessage(pID, cRed, "--- Bitte einigt euch, wer von euch die Feuerwehr ruft! (wenn mehrere in einem Auto sitzen!) ---");
    SetPlayerHealth(pID, 1);
    }
    }
    }
    }
    }
    }
    else
    {
    TextDrawHideForPlayer(i,PlayerInfo[i][Tacho][0]);
    TextDrawHideForPlayer(i,PlayerInfo[i][Tacho][1]);
    }
    }
    }
    }
    for(new i = 0; i < sizeof(Geschenk); i++)
    {
    if(Geschenk[i][G_Erstellt]==0) continue;
    if(Geschenk[i][G_Erstellt]==1)
    {
    if(Geschenk[i][G_Timeout]!=0)Geschenk[i][G_Timeout]--;
    else if(Geschenk[i][G_Timeout]==0)Geschenk[i][G_Timeout]=0;
    }
    }
    for(new vid; vid < MAX_VEHICLES; vid++)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(IsAFly(vid) || IsAHeli(vid) || IsABoot(vid)) continue;
    if(Car[vid][Motor]!=1) continue;
    if(Car[vid][Motor]==1)
    {
    switch(Car[vid][Tank])
    {
    case 0:
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Car[vid][Motor]=0;
    Car[vid][Tank]=0;
    SendDriverMessage(vid,"[Tank leer] Um einen Mechaniker zu rufen gebe /mechaniker ein");
    if(IsVehicleAFraktionsCar(vid)!=0)
    {
    format(query,128,"[Fraktions-Info] Der Tank von den Wagen mit dem Kennzeichen %s ist leer",Car[vid][Numplate]);
    SendTeamMessage(IsVehicleAFraktionsCar(vid),query);
    }
    }
    default:
    {
    Car[vid][Tank]--;
    }
    }
    }
    }
    new t2 = GetTickCount();
    printf("%d ms",t2-t1);
    return 1;
    }


    Dir ist bewusst das deine Codes kein Bisschen Funktionieren?

    Ich würde es so machen
    #define Leader(%0,%1) PlayerInfo[%0][pLeader] == %1
    #define Member(%0,%1) PlayerInfo[%0][pMember] == %1


    Eine abfrage währe dann diese:
    if(Leader(playerid,TeamID))return print("Is er");
    if(Member(playerid,TeamID))return print("Is er");

    in wirklichkeit wird er aber nur 5x"Stimmt nicht" ausgeben

    Hast recht ich sag nichts


    Laut meinen Testerein ist das richtig
    if(time > 19 || time < 6)


    so hab ich es getestet:
    stock Hund(time)
    {
    if(time > 19 || time < 6)return printf("%d Ok",time);
    return printf("%d fehler",time);
    }


    public OnGameModeInit()(time)
    {
    for(new i;i<24;i++)
    {
    Hund(i);
    }
    ergebnis:

    Code
    [02:42:12] 0 Ok[02:42:12] 1 Ok[02:42:12] 2 Ok[02:42:12] 3 Ok[02:42:12] 4 Ok[02:42:12] 5 Ok[02:42:12] 6 fehler[02:42:12] 7 fehler[02:42:12] 8 fehler[02:42:12] 9 fehler[02:42:12] 10 fehler[02:42:12] 11 fehler[02:42:12] 12 fehler[02:42:12] 13 fehler[02:42:12] 14 fehler[02:42:12] 15 fehler[02:42:12] 16 fehler[02:42:12] 17 fehler[02:42:12] 18 fehler[02:42:12] 19 fehler[02:42:12] 20 Ok[02:42:12] 21 Ok[02:42:12] 22 Ok[02:42:12] 23 Ok

    aber auch schwerer zu lernen

    Schwer ist es nicht am anfang hängt man zwar etwas fest aber das geht schnell weg

    aber auch auf Youtube

    Das vergess mal gabz schnell, denn YouTube Tutorials sind der größte Müll

    und sollte ich das ganze Script MySQL machen?

    Wenn MySQl dann würd ich alles machen
    Hab ich auch bei mir wird nichts in einer textdatei geschrieben etc.


    Bei MySQl ist es vorteilhaft, da man es sogesehen fast überall mit intregieren kann und da es deutlich schneller ist als z.B. dini

    das hier

    new MySQL:SQL;//Global
    SQL = mysql_init(LOG_ONLY_ERRORS, 1);
    mysql_connect(HostIP,HostUser,HostPasswort,HostDatabase,SQL,1);


    @Pocket das Strickenkid plugin ist dafür besser man muss es nur richtig anwenden