Beiträge von Holdont

    SetTimerEx("TimerOrten",100,1,"d",playerid,cmdtext,tmp,giveplayerid,giveplayer); //falsch
    SetTimerEx("TimerOrten",100,1,"d,s,d,d,d",playerid,cmdtext,tmp,giveplayerid,giveplayer);


    Du musst für jede Variable, die du "übergeben" willst einen Platzhalter inform von Buchstaben "geben"
    d.h. DU musst wissen ob das was du übergibst ein string oder ein integer ist ;)

    SetTimerEx("TimerOrten",100,1,"d",playerid,cmdtext,tmp,giveplayerid,giveplayer);


    KLeiner Tipp: Du hast zu wenig VariablenTypen ;)(d,s etc)

    Steht in deiner Mysql Tabelle bei jedem Namen "Nickname=blablabla"?
    Denn wenn nicht, solltest du abfragen ob in der spalte Name einfach "Name" steht ^^(Oder ich versteh nicht ganz was du da machst....)


    und übrigens kenne ich mysql abfragen eher so:
    format(String, sizeof(String), "SELECT * FROM Players WHERE Name = '%s'",PlayerName(playerid));
    mysql_query(String);

    Wenn dir das reicht, ist das natürlich gut.


    Ich biete dir ein Filterscript mit Autos/Fulgzeugen/Helikopter/Motorädern


    Autos nach Klassen sortiert usw.


    Wenn du Interesse ahst: PN an mich

    Ich habe ein Menü Carspawn Filterscript entwickelt. Da ich aber den pawn Dode nicht hergeben möchte, gibts nur die .amx bei Interesse.


    Gegen ne kleine Geld Spende hab ich auch nichts :D

    Was mir jetzt erst auffällt:


    Du Benutzt
    new Text3D:Warning[MAX_VEHICLES];

    Das ist die Deklarierung für einen Textdraw.


    Für 3DLabels reicht eigentlich eine simple Id(Integer):
    new Warning[MAX_VEHICLES];


    Ich bin mir nicht sicher, ob dir das hilft, könnte aber sein :)

    Interiors sind die Innenräume der Gebäude, die Gta hat. Nun hat jeder Innenraum eines Gebäude seine eigene Id
    ergo: Interrior Id.


    Da du so weit unter der Map gemapt hast(136 Meter) kommt das automatische Porten von GTA dir in den Weg.
    Denn wenn du unter die Map kommst(Bug oder wie auch immer) fällst du nicht unendlichweit in die Tiefe, sondern wirst wieder auf die Oberfläche gebracht.
    Das kannst du nicht verhindern, da GTA so gemacht ist.


    Lösung:
    Dicht unter der Map mappen
    oder
    Hoch über der Map
    oder
    Gegebene Interiors nutzen

    Ohne mir nun den gesamten Code anzusehen, vermute ich mal, dass es an dieser Zeile liegt:
    Warnschildmax += 1;
    versuche es mit
    Warnschildmax ++;

    Achja:
    Da ihr nur eine Variable für alle Fraktionen habt, steht nicht jeder Fraktion 20 sondern allen zusammen 20 Zu verfügung ;)
    Wenns weiterhin nicht geht schau ich mir den Code gern nochmal in Ruhe an

    Achso....

    if(dini_Int(*wo deine ini ist","Fs") == 0)
    {
    RemovePlayerFromVehicle(playerid);
    }

    Aber bevor du das machst, lerne lieber die eleganter Spieler[plyerid][spieler_daten] Variante(Das spart Ressourcen)
    Kurzform:
    Ganz Oben

    enum spieler_daten
    {
    Fs,
    andererkram,
    }
    new Spieler[MAX_PLAYERS][spieler_daten];

    unterm Login Machst du dann

    new accFormat[128];//Muss nicht 128 lang sein da der pfad unwarscheinlich 128 Zeichen lang ist,ist aber für den Anfang egal
    format(accFormat,sizeof(accFormat),*Pfad*);
    .
    .
    .
    Spieler[playerid][Fs] = dini_Int(accFormat,"FS");

    Ab dann kannst du jederzeit im Script das hier anwenden:

    if(Spieler[playerid][Fs]==0)
    {
    .
    .
    .
    }

    WICHTIG! Bei OnPlayerDisconnect solltest du Spieler[playerid][FS]= 0; setzten


    Ansonsten, solltest du dir nochmal ein Login Register System angucken

    So Leid es mir tut:
    So ganz verstehen was du von mir/uns willst tu ich nicht.


    Mir scheint du fragst nach sowas:



    if(auto == 1)
    { //Hier was machen }
    else { //Do nothing(return 1; (oder 0)} //<-- kannst du auch wegglassen da ja sonst nichts passieren soll
    return 1;(oder 0)


    Das ganze hat üverhaupt nichts mit dini zutun.

    if(IsPlayerConnected(playerid)) && PlayerInfo[playerid][pLeader] ==20)



    Da ist es falsch


    So ists richtig.. Copy Paste Fehler meinerseits, tut mir Leid
    if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pLeader] ==20)


    Und Maddin hat Recht, ich wollte es der Vollständigkeits halber nur mit rein machen.

    Guten Abend.


    Wonnach du hier fragst ist relativ umfangreich :)
    Globale Variablen etc


    hier mein Vorschlag(welcher vermutlich nicht Perfekt ist)
    Oben

    new Keys[20];


    Wichtig!: Du musst am Anfang alle Keys auf -1 setzten!


    Du musst also beim kaufen die Variable auf 1 Setzen, und in die .ini (oder was du auch verwendeest) den Key schreiben
    Beim verkauf, musst du dann den Key auf -1 setzten

    public RandomKey()
    {
    new verfugbar[20],Grind= 0,PlayerKey;
    for(new i= 0;i!=20;i++)
    {
    if(Keys[i]== -1)
    {
    verfugbar[Grind]=i;
    Grind++;
    }
    }
    new Var= random(Grind);
    PlayerKey = verfugbar[Var];
    Keys[PlayerKey]=1;
    return 1;
    }


    Dies ist nicht auf dein Script angepasst, daher musst du wissen was du davon brauchst.
    Wenn du wissen möchtest, was ich mit einer einzelnen Zeile "mache", frag :)

    ISt eigentlich relativ simpel (wie ein Command unter OnPlayerCommand)



    if(strcmp(Besitzer[Auto],name, true) == 0 )
    {
    SendClientMessage(playerid,Farbe,"Darfst rein");
    }
    else
    {
    SendClientMessage(playerid,Farbe,"Raus da");
    RemovePlayerFromVehicle(playerid);
    }


    Ob das funktioniert weiß ich nicht, da ich es nicht getestet habe, sollte aber funktionieren


    Achja:
    Wenn du weiter Hilfe brauchst schreib mir ne Pn

    Hallo,
    Hier mal eine etwas elegantere Lösung für dich(Nicht getestet!)

    if(strcmp(cmdtext,"/respawncars",true)==0)
    {
    if(IsPlayerConnected(playerid)) && PlayerInfo[playerid][pLeader] ==20)
    {
    for(new i= 0;i != 9;i++)//Dies ist eine for Schleife die die ersten 9 Autos respawnt
    {
    SetVehicleToRespawn(TerrorCar[i]);
    }
    }
    else{SendClientMessage(playerid,COLOR_GRAD1, "Du bist kein Leader.");}
    return 1;
    }

    Hallo liebes Brotfisch,
    ich habe momentan ein Problem beim Scripten, wo der Server nicht von einer .txt datei lesen kann.
    Damit ihr einen möglichst leichten Überblick über mein Problem bekommt, hänge ich ein Screenshot an, indem alles wichtige steht.


    Note: Die Funktion wird bei OngamemodeInit aufgerufen und durch den Objekt Streamer mehrmals.
    Link zum Screenshot: Link
    Wäre sehr erfreut, wenn ihr mir helfen könntet.
    Und hier nochmal der Code zur besseren Übersicht:
    stock IpBancheck()
    {
    new string[64];
    //GetPlayerIp(playerid,tIp,sizeof(tIp));
    new File:iFile =fopen("Ipbans.txt",io_read);
    while(fread(iFile, string)) //reads the file line-by-line
    {
    if(strcmp(string, "Ban", true) == 0) //if any of the lines in the file say "Ban" the system will ban the player
    {
    print("Ban Found");
    }
    else{
    print("Ban not found");
    }
    }



    fclose(iFile);
    return 1;
    //Anker2
    }

    Guten Abend


    Ich plage mich nun seit 2 Tagen mit einem Problem herrum: Textdraws, die nur für den einzelnen Spieler Angezeigt werden sollen (Nur wenn im Dm),
    und für jeden Spieler die eigenen Statistiken darstellen


    forward Textdrawkilldm(playerid);
    forward ResetTextdraw(playerid);
    forward ResetDmStats(playerid);
    new dm1[MAX_PLAYERS]=0,dm2[MAX_PLAYERS]=0,dm3[MAX_PLAYERS]=0,dm4[MAX_PLAYERS]=0,dm5[MAX_PLAYERS]=0,dm6[MAX_PLAYERS]=0,dm7[MAX_PLAYERS]=0,dm8[MAX_PLAYERS]=0,dm9[MAX_PLAYERS]=0,dm10[MAX_PLAYERS]=0,snipdm[MAX_PLAYERS]=0;
    //Dm1 Stats
    new dm1kills[MAX_PLAYERS],dm1death[MAX_PLAYERS],Float: dm1ratio[MAX_PLAYERS];
    new dm2kills[MAX_PLAYERS],dm2death[MAX_PLAYERS],Float: dm2ratio[MAX_PLAYERS];
    new dm3kills[MAX_PLAYERS],dm3death[MAX_PLAYERS],Float: dm3ratio[MAX_PLAYERS];
    new dm4kills[MAX_PLAYERS],dm4death[MAX_PLAYERS],Float: dm4ratio[MAX_PLAYERS];
    new dm5kills[MAX_PLAYERS],dm5death[MAX_PLAYERS],Float: dm5ratio[MAX_PLAYERS];
    new dm6kills[MAX_PLAYERS],dm6death[MAX_PLAYERS],Float: dm6ratio[MAX_PLAYERS];
    new dm7kills[MAX_PLAYERS],dm7death[MAX_PLAYERS],Float: dm7ratio[MAX_PLAYERS];
    new dm8kills[MAX_PLAYERS],dm8death[MAX_PLAYERS],Float: dm8ratio[MAX_PLAYERS];
    new dm9kills[MAX_PLAYERS],dm9death[MAX_PLAYERS],Float: dm9ratio[MAX_PLAYERS];
    new dm10kills[MAX_PLAYERS],dm10death[MAX_PLAYERS],Float: dm10ratio[MAX_PLAYERS];
    new snipkills[MAX_PLAYERS],snipdeath[MAX_PLAYERS],Float: snipratio[MAX_PLAYERS];
    new Text:Textdraw0[MAX_PLAYERS];
    new Text:Textdraw1[MAX_PLAYERS];
    new Text:Textdraw2[MAX_PLAYERS];
    new Text:Textdraw3[MAX_PLAYERS];
    new Text:Textdraw4[MAX_PLAYERS];
    SetTimer("DmStats",3000,1);


    public Textdrawkilldm(playerid)
    {
    ResetDmStats(playerid);
    Textdraw0 [playerid]= TextDrawCreate(507.000000, 346.000000, "Dm X Stats");
    TextDrawBackgroundColor(Textdraw0[playerid], 255);
    TextDrawFont(Textdraw0[playerid], 1);
    TextDrawLetterSize(Textdraw0[playerid], 0.500000, 1.500000);
    TextDrawColor(Textdraw0[playerid], 255);
    TextDrawSetOutline(Textdraw0[playerid], 0);
    TextDrawSetProportional(Textdraw0[playerid], 0);
    TextDrawSetShadow(Textdraw0[playerid], 1);
    TextDrawUseBox(Textdraw0[playerid], 1);
    TextDrawBoxColor(Textdraw0[playerid], -1);
    TextDrawTextSize(Textdraw0[playerid], 639.000000, -7.000000);


    Textdraw2[playerid]= TextDrawCreate(507.000000, 365.000000, "-------------");
    TextDrawBackgroundColor(Textdraw2[playerid], 255);
    TextDrawFont(Textdraw2[playerid], 1);
    TextDrawLetterSize(Textdraw2[playerid], 0.500000, 1.500000);
    TextDrawColor(Textdraw2[playerid], -1);
    TextDrawSetOutline(Textdraw2[playerid], 0);
    TextDrawSetProportional(Textdraw2[playerid], 0);
    TextDrawSetShadow(Textdraw2[playerid], 1);
    TextDrawUseBox(Textdraw2[playerid], 1);
    TextDrawBoxColor(Textdraw2[playerid], 255);
    TextDrawTextSize(Textdraw2[playerid], 656.000000, 0.000000);


    Textdraw1[playerid] = TextDrawCreate(507.000000, 378.000000, "Kills: 0");
    TextDrawBackgroundColor(Textdraw1[playerid], 255);
    TextDrawFont(Textdraw1[playerid], 1);
    TextDrawLetterSize(Textdraw1[playerid], 0.500000, 1.500000);
    TextDrawColor(Textdraw1[playerid], -1);
    TextDrawSetOutline(Textdraw1[playerid], 0);
    TextDrawSetProportional(Textdraw1[playerid], 1);
    TextDrawSetShadow(Textdraw1[playerid], 1);
    TextDrawUseBox(Textdraw1[playerid], 1);
    TextDrawBoxColor(Textdraw1[playerid], 255);
    TextDrawTextSize(Textdraw1[playerid], 656.000000, 0.000000);


    Textdraw3[playerid] = TextDrawCreate(507.000000, 393.000000, "Deaths: 0");
    TextDrawBackgroundColor(Textdraw3[playerid], 255);
    TextDrawFont(Textdraw3[playerid], 1);
    TextDrawLetterSize(Textdraw3[playerid], 0.500000, 1.500000);
    TextDrawColor(Textdraw3[playerid], -1);
    TextDrawSetOutline(Textdraw3[playerid], 0);
    TextDrawSetProportional(Textdraw3[playerid], 1);
    TextDrawSetShadow(Textdraw3[playerid], 1);
    TextDrawUseBox(Textdraw3[playerid], 1);
    TextDrawBoxColor(Textdraw3[playerid], 255);
    TextDrawTextSize(Textdraw3[playerid], 656.000000, 0.000000);


    Textdraw4[playerid] = TextDrawCreate(507.000000, 408.000000, "Ratio: 0.00");
    TextDrawBackgroundColor(Textdraw4[playerid], 255);
    TextDrawFont(Textdraw4[playerid], 1);
    TextDrawLetterSize(Textdraw4[playerid], 0.500000, 1.500000);
    TextDrawColor(Textdraw4[playerid], -1);
    TextDrawSetOutline(Textdraw4[playerid], 0);
    TextDrawSetProportional(Textdraw4[playerid], 1);
    TextDrawSetShadow(Textdraw4[playerid], 1);
    TextDrawUseBox(Textdraw4[playerid], 1);
    TextDrawBoxColor(Textdraw4[playerid], 255);
    TextDrawTextSize(Textdraw4[playerid], 656.000000, 0.000000);



    }
    public pdm1(playerid)
    {
    //Anker
    //Join Nachricht
    if(dm1 [playerid] == 0){
    new pname[MAX_PLAYERS],string[268];
    GetPlayerName(playerid,pname,sizeof pname);
    format(string, sizeof(string), " %s hat das Dm1 betreten", pname);
    SendClientMessageToAll(FARBE_ORANGE,string);
    ResetTextdraw(playerid);
    Textdrawkilldm(playerid);
    new strdmb[64];
    format(strdmb, 64, "Dm 1 Stats");
    TextDrawSetString(Textdraw0[playerid],strdmb);
    dm1[playerid]=1;
    }
    if(dm1[playerid] == 1){
    //Textdraw Stats Veränderungen
    new strdmk[64],strdmd[64],strdmr[64];
    format(strdmk, 64, "Kills: %d",dm1kills[playerid]);
    TextDrawSetString(Textdraw1[playerid],strdmk);
    format(strdmd, 64, "Deaths: %d",dm1death[playerid]);
    TextDrawSetString(Textdraw3[playerid],strdmd);
    if(dm1death[playerid] == 0)dm1ratio[playerid] = float(dm1kills[playerid]);
    else dm1ratio[playerid] = floatdiv(dm1kills[playerid], dm1death[playerid]);
    //format(dms,sizeof(dms),"~g~Kills: ~r~%d~n~~y~Deaths: ~r~%d~n~~p~Ratio: ~r~%.2f",kills[playerid],deaths[playerid],ratio[playerid]);
    //TextDrawSetString(dmstats[playerid],dms);
    format(strdmr, 64, "Ratio: %.2f",dm1ratio[playerid]);
    TextDrawSetString(Textdraw4[playerid],strdmr);
    }
    TextDrawShowForPlayer(playerid,Textdraw0[playerid]);
    TextDrawShowForPlayer(playerid,Textdraw1[playerid]);
    TextDrawShowForPlayer(playerid,Textdraw2[playerid]);
    TextDrawShowForPlayer(playerid,Textdraw3[playerid]);
    TextDrawShowForPlayer(playerid,Textdraw4[playerid]);
    }
    public pdm2(playerid)
    {
    if(dm2 [playerid] == 0){
    new pname[MAX_PLAYERS],string[268];
    GetPlayerName(playerid,pname,sizeof pname);
    format(string, sizeof(string), " %s hat das Dm2 betreten", pname);
    SendClientMessageToAll(FARBE_ORANGE,string);
    ResetTextdraw(playerid);
    Textdrawkilldm(playerid);
    new strdmb[64];
    format(strdmb, 64, "Dm 2 Stats");
    TextDrawSetString(Textdraw0[playerid],strdmb);
    dm2[playerid]=1;
    }
    if(dm2[playerid] == 1){
    new strdmk[64],strdmd[64],strdmr[64];
    format(strdmk, 64, "Kills: %d",dm2kills[playerid]);
    TextDrawSetString(Textdraw1[playerid],strdmk);
    format(strdmd, 64, "Deaths: %d",dm2death[playerid]);
    TextDrawSetString(Textdraw3[playerid],strdmd);
    if(dm2death[playerid] == 0)dm2ratio[playerid] = float(dm2kills[playerid]);
    else dm2ratio[playerid] = floatdiv(dm2kills[playerid], dm2death[playerid]);
    format(strdmr, 64, "Ratio: %.2f",dm2ratio[playerid]);
    TextDrawSetString(Textdraw4[playerid],strdmr);
    }
    public ResetDmStats(playerid)
    {
    dm1kills[playerid] = 0;
    dm1death[playerid] = 0;
    dm1ratio[playerid] = 0;
    dm2kills[playerid] = 0;
    dm2death[playerid] = 0;
    dm2ratio[playerid] = 0;
    dm3kills[playerid] = 0;
    dm3death[playerid] = 0;
    dm3ratio[playerid] = 0;
    dm4kills[playerid] = 0;
    dm4death[playerid] = 0;
    dm4ratio[playerid] = 0;
    dm5kills[playerid] = 0;
    dm5death[playerid] = 0;
    dm5ratio[playerid] = 0;
    dm6kills[playerid] = 0;
    dm6death[playerid] = 0;
    dm6ratio[playerid] = 0;
    dm7kills[playerid] = 0;
    dm7death[playerid] = 0;
    dm7ratio[playerid] = 0;
    dm8kills[playerid] = 0;
    dm8death[playerid] = 0;
    dm8ratio[playerid] = 0;
    dm9kills[playerid] = 0;
    dm9death[playerid] = 0;
    dm9ratio[playerid] = 0;
    dm10kills[playerid] = 0;
    dm10death[playerid] = 0;
    dm10ratio[playerid] = 0;
    snipkills[playerid] = 0;
    snipdeath[playerid] = 0;
    snipratio[playerid] = 0;
    }
    public ResetTextdraw(playerid)
    {
    TextDrawDestroy(Textdraw0[playerid]);
    TextDrawDestroy(Textdraw1[playerid]);
    TextDrawDestroy(Textdraw2[playerid]);
    TextDrawDestroy(Textdraw3[playerid]);
    TextDrawDestroy(Textdraw4[playerid]);
    }
    public DmStats(playerid){
    for (new i = 0; i < MAX_PLAYERS; i++){


    if(dm1[playerid] == 1 || dm2[playerid] == 1 || dm3[playerid] == 1 || dm4[playerid] == 1 || dm5[playerid] == 1 || dm6[playerid] == 1 || dm7[playerid] == 1 || dm8[playerid] == 1 || dm9[playerid] == 1 || snipdm[playerid] ==1){
    TextDrawShowForPlayer(i,Textdraw0[i]);
    TextDrawShowForPlayer(i,Textdraw1[i]);
    TextDrawShowForPlayer(i,Textdraw2[i]);
    TextDrawShowForPlayer(i,Textdraw3[i]);
    TextDrawShowForPlayer(i,Textdraw4[i]);
    }
    }
    }


    Das ist der Code der für die Textdraws zuständig ist,( Es könnten klammern etc fehlen)
    Der Code lässt sich ohne Probleme kompilieren und ist bis auf den Obersten Textraw(Der den Namen des Dm's anzeigt) voll Funktions tüchtig.


    Abgesehen davon, dass dies kein "sauberer" Code ist (Ich hätte die dm's auch in einer Variable speichern können etc.(Code kürzer))
    Aber Wenn ich mich nun aus einem Dm zu einem anderen porte wird einem anderen Spieler der noch im alten Dm ist die neue "Überschrift" in den Stats
    angezeigt, obwohl er noch im alten Dm ist.


    Bitte helft mir


    Mit freundlichen Grüßen
    Holdont