Beiträge von Haxler

    Is ja klar: Da der Spieler die Waffe bekommen hat, OnPlayerUpdate oft aufgerufen wird und du abgefragt hast, ob der Spieler die Waffe HAT wird die Message auch solange abgeschickt, bis der Spieler die Waffe nichtmehr hat. Mach doch einfach:


    stock GivePlayerWeaponEx(playerid,weaponid,ammo)
    {
    if(weaponid == 38)
    {
    new name[30];
    new str[100];
    GetPlayerName(playerid,name,sizeof(name));
    format(str, sizeof(str), "Der Spieler %s bekam eine Promo-Waffe!", name);
    SendClientMessageToAll(COLOR_WHITE,str);


    }
    GivePlayerWeapon(playerid,weaponid,ammo);
    return 1;
    }
    }


    Dann brauchst du die OnPlayerUpdate abfrage nicht. Die Nachricht bekommen alle Spieler wenn der Spieler die Waffe bekommt.

    if(dialogid == deinedialogid)
    {
    if(response)
    {
    if(!strlen(inputtext))return SendClientMessage(playerid,FARBE,"Du hast keine Stadt eingegeben...");
    if(strcmp(inputtext,"Los Santos",true)==0)
    {
    // Wenn Los Santos eingegeben wurde
    SetTimer(timer1,zeit,wdh);
    }
    else
    if(strcmp(inputtext,"Las Vernturs",true)==0)
    {
    // Wenn Las Venturas eingegeben wurde
    SetTimer(timer2,zeit,wdh);
    }
    else
    if(strcmp(inputtext,"San Fierro",true)==0)
    {
    // Wenn San Fierro eingegeben wurde
    SetTimer(timer3,zeit,wdh);
    }
    else return SendClientMessage(playerid,FARBE,"Stadtverwalter: Wiebitte?");
    }
    }

    // OnDialogResponse
    if(dialogid == deinedialogid)
    {
    if(response)
    {
    if(!strlen(inputtext))return SendClientMessage(playerid,FARBE,"Du hast keine Stadt eingegeben...");
    if(strcmp(inputtext,"Los Santos",true)==0)
    {
    // Wenn Los Santos eingegeben wurde
    SetTimer(timer1,zeit,wdh);
    }
    else
    if(strcmp(inputtext,"Las Vernturs",true)==0)
    {
    // Wenn Las Venturas eingegeben wurde
    SetTimer(timer2,zeit,wdh);
    }
    else
    if(strcmp(inputtext,"San Fierro",true)==0)
    {
    // Wenn San Fierro eingegeben wurde
    SetTimer(timer3,zeit,wdh);
    }
    }
    }

    Ist params nicht ein String?


    new stunde = params;


    Ich glaube nicht dass man so einen string übergeben kann :O



    new stunde[256]; // weiß nicht wie groß der String sein muss
    strmid(stunde,params,0,256,256);


    versuchs mal so oder ähnlich

    Hei :D
    Hab seit heute ein nerviges Problem. Immer wenn ich sterb wird der Bildschirm hell, filmmert(schwer zu erklären) und in der mitte steht "Spiel lädt...". Den Fehler kenn ich eig. nur wenn man z.B. mit einem Boot weiter runtertaucht(hack etc.). Hab schon gedacht es liegt am Script. Hab dann ein ca 2 Wochen altes Backup versucht und hatte den gleichen Fehler :( Weiß jemand an was das liegt? Achja bin davor mit einem Boot ans Ende von SA gefahren und da fings an ^^


    EDIT:
    Hat keiner ne Idee?

    new level=GetPlayerScore(playerid);


    if(level < 3)return SendClientMessage(playerid,FARBE,"Dein Level ist nicht hochgenug");


    so in der Art sollte es klappen

    Hi :D,
    Hab in einem Enum viele Daten von Spieler gespeichert(level, geld usw.). Beim login will ich die Variablen aus einer Datei laden. Da es aber soviele sind, wollte ich wissen ob es eine Möglichkeit gibt, alles in einer schleife zu laden. Hoffe ihr versteht wie ich das mein :/

    public IsACar(playerid)
    {
    new vehi = GetPlayerVehicleID(playerid);
    if(vehi==400||vehi==401||vehi==402||vehi==404||vehi==405||vehi==409||vehi==410||vehi==411||vehi==412||vehi==413||vehi==414||vehi==415||vehi==416||vehi==418||vehi==419||vehi==420||vehi==421
    ||vehi==422||vehi==423||vehi==424||vehi==426||vehi==427||vehi==428||vehi==429||vehi==431||vehi==432||vehi==434||vehi==435||vehi==436||vehi==437||vehi==438||vehi==439||vehi==440||vehi==441
    ||vehi==442||vehi==444||vehi==445||vehi==451||vehi==451||vehi==457||vehi==458||vehi==459||vehi==466||vehi==467||vehi==470||vehi==474||vehi==475||vehi==477||vehi==478||vehi==479||vehi==480
    ||vehi==482||vehi==483||vehi==485||vehi==489||vehi==490||vehi==490||vehi==491||vehi==492||vehi==494||vehi==495||vehi==496||vehi==498||vehi==499||vehi==500||vehi==502||vehi==503||vehi==504
    ||vehi==505||vehi==506||vehi==507||vehi==508||vehi==516||vehi==517||vehi==518||vehi==525||vehi==526||vehi==527||vehi==528||vehi==529||vehi==530||vehi==531||vehi==532||vehi==533||vehi==534
    ||vehi==535||vehi==536||vehi==539||vehi==540||vehi==541||vehi==542||vehi==543||vehi==545||vehi==546||vehi==547||vehi==549||vehi==550||vehi==551||vehi==552||vehi==554||vehi==555||vehi==556
    ||vehi==557||vehi==558||vehi==559||vehi==560||vehi==561||vehi==562||vehi==564||vehi==565||vehi==566||vehi==567||vehi==568||vehi==571||vehi==572||vehi==573||vehi==574||vehi==575||vehi==576
    ||vehi==579||vehi==580||vehi==582||vehi==583||vehi==585||vehi==587||vehi==588||vehi==589||vehi==596||vehi==597||vehi==598||vehi==599||vehi==600||vehi==601||vehi==602||vehi==603||vehi==604
    ||vehi==605||vehi==609)
    {
    if(Spieler[playerid][AutoSchein] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    return SendClientMessage(playerid,COLOR_RED,"Du hast keinen Auto Schein");
    }
    }
    return 1;
    }


    Schonmal so probiert?

    Edit: sry hab "immer" gelesen :). Entweder das Geld beim registrieren geben, oder in einer Datei abspeichern, ob der Spieler das Geld schon bekommen hat

    Hi,


    Gestern konnte ich problemlos Fahrzeuge erstellen(für jedes Fahrzeug wird eine Datei erstellt). Doch plötzlich spawnten die Fahrzeuge nichtmehr. Ich ging auf den FTP und hab bemerkt, dass keine Dateien mehr erstellt werden(nur beim Fahrzeug erstellen alles andere tut einwandfrei und ist so gut wie der gleiche Code). Hab schon alles probiert... ging einfach von jetzt auf nachher nichtsmehr. Das Merkwürdige ist, dass es auf meinem Lan-Server ohne probleme funktioniert, mit den gleichen Scriptfiles und dem gleichen Script...
    Hier mal der Code um ein Fahrzeug zu erstellen:
    public CreateCar(playerid,cmodel,carcolor1,carcolor2,ctank,cmaxtank)
    {
    new pfad[256];
    for(new i=1;i<MAX_CARS;i++)
    {
    format(pfad,256,"/vehicles/%i.ini",i);
    if(!fexist(pfad))
    {
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    dini_Create(pfad);
    dini_IntSet(pfad,"model",cmodel);
    dini_Set(pfad,"owner",PlayerName(playerid));
    dini_IntSet(pfad,"color1",carcolor1);
    dini_IntSet(pfad,"color2",carcolor2);
    dini_FloatSet(pfad,"x",x);
    dini_FloatSet(pfad,"y",y);
    dini_FloatSet(pfad,"z",z);
    dini_FloatSet(pfad,"a",a);
    dini_IntSet(pfad,"tank",ctank);
    dini_IntSet(pfad,"maxtank",cmaxtank);
    dini_IntSet(pfad,"team",999);
    return LoadCar(i);
    }
    }
    return 1;
    }


    Weiß jemand was ich tun kann? :)

    ocmd:movetext(playerid,params[])
    {
    if(PlayerInfo[playerid][admin] < d_movetext)return SendClientMessage(playerid,rot,"Du bist kein Admin oder hast nicht die nötigen Rechte!");
    new dtext[256],anzl;
    if(sscanf(params, "ds",anzahl,text))return SendClientMessage(playerid,rot,"Verwendung: /movetext [durchläufe][textäufe]");
    if(linerun == true)return 0;
    KillTimer(linetimer);
    ttext = 148.000000;
    linetimer = SetTimerEx("MoveLineText",30,1,"dsd",playerid,dtext,anzl);
    linerun = true;
    return 1;
    }


    Edit: So habs jetzt geschafft. Hatte unter OnPlayerCommandText ne Abfrage die den Fehler i-wie verursacht hat. Jetzt schon ein neues Problem: Sobald ein Spieler auf den Server kommt crasht dieser solange der Text läuft...

    Es geht ja darum, dass sich das Textdraw bewegt. Damit es sich flüssig bewegt muss der Interval so niedrig sein :).
    Der Timer wird in einem Befehl gestartet(mit OCMD gescriptet! könnte das was damit zu tun haben?)

    public MoveLineText(playerid,tcaption[],anzahl)
    {
    if(lineanzahl >= anzahl)
    {
    ttext = 148.000000;
    KillTimer(linetimer);
    linerun = false;
    lineanzahl=0;
    }
    if(ttext >= 640.000000) // ttext ist ein Float^^
    {
    ttext = 148.000000;
    lineanzahl++;
    }
    format(linestring,sizeof(linestring),"%s",tcaption); // wenn ich tcaption direkt verwende crasht der server
    TextDrawHideForAll(linetext);
    TextDrawDestroy(linetext);
    ttext+=1;
    linetext = TextDrawCreate(ttext,431.000000,linestring);
    TextDrawAlignment(linetext,0);
    TextDrawBackgroundColor(linetext,0x000000ff);
    TextDrawFont(linetext,3);
    TextDrawLetterSize(linetext,0.399999,1.600000);
    TextDrawColor(linetext,0xffffffff);
    TextDrawSetOutline(linetext,1);
    TextDrawSetProportional(linetext,1);
    TextDrawSetShadow(linetext,1);
    TextDrawShowForAll(linetext);
    return 1;
    }