Beiträge von Kayer


    // Unter OnPlayerConnect
    new AccountZahl;
    new name[MAX_PLAYER_NAME];
    new form[100];
    GetPlayerName(playerid,name,sizeof name);
    format(form,sizeof form,"%s.ini",name);
    if(AccountZahl == 300) //einsetzen
    {
    SendClientMessage(playerid,COLOR_RED,"Es gibt zu viele Accounts!");
    // was geschehen soll
    }
    if(dini_Exists(form))
    {
    SendClientMessage(playerid,COLOR_RED,"Welcome Back");
    }
    else
    {
    AccountZahl++;
    dini_Create(form);
    }

    ungetestet !

    AddStaticVehicle(567,2507.4846,-1676.4034,13.3283,328.3891,16,16); //
    Die letzen beiden Ziffern geben die Farben an.
    http://www.wiki.sa-mp.com/wiki…ripting_Documentation</a> ( Falls der Link nicht geht, geh auf http://www.sa-mp.com /help /Script Ressoruces)
    http:// http://www.forum.sa-mp.de/wbb/san-andreas-multiplayer/scripting-base/1075-farben/</a>']Farben?</a> (falls dieser Link auch nicht geht, auf http://www.sa-mp.de /Scripting Base /Farben? Oben )


    Bitte benutzt die Suchfunktion und erstellt nicht wegen jeder Kleinigkeit einen Thread,da es meist in nichteinmal 1 Minute zu finden ist :thumbdown: .

    Hallo Allerseits.
    Ich freue mich,wie immer, über jeden konstruktiven und aufklärenden Post von euch und hoffe auf eine schnelle Antwort . :)


    Zunächst einmal möchte ich wissen,wie ich ein Race-System erstelle, d.h. ich fahre in einen RCP (=RaceCheckPoint ) und ein anderer bzw. der nächste RCP erscheint.
    Ich kann beim Befehl "/startrace" natürlich: SetPlayerRaceCheckPoint(..) und bei OnPlayerEnterRaceCheckPoint(..) den RCP verschwinden lassen und einen neuen erstellen.Doch dies geht nur bei 2 RCP´s gut. Ein Rennen hat meist aber etwas mehr ;) .Nun ist meine Frage, wie ich möglichst einfach (!) abfrage, in welchem RCP der Spieler sich befinet, um den nächsten RCP setzen zu können. Eine Variante wäre,mit if und else if und CP[playerid] (was sich bei jedem Checkpoint erhöht) abzufragen,wie hoch CP[playerid] ist und dem entsprechend den Neuen zu setzen.
    Oder per Timer und IsPlayerToPoint abzufragen,ob er da ist. Doch dies ist wahrscheinlich nicht die beste Lösung.
    Bin offen für jeden Vorschlag oder Link !
    ( ---- Suchfunktio benutzt ---- )
    MfG Kayer

    oder besser du verwendest dcmd ;) .

    // Unter OnPlayerComamnd
    dcmd(zahl,4,cmdtext);


    // Außerhalb eines CallBacks
    dcmd_zahl(playerid,params[])
    {
    new Float:Zahl;
    if(sscanf(params,"f",Zahl))
    {
    SendClientMessage(playerid,COLOR_RED,"Verwende: /zahl [FLOAT] ");
    return 1;
    }
    dini_FloatSet("File.ini","Zahl",Zahl);
    new form[100];
    format(form,sizeof form,"Die Zahl %f wurde gespeichert",Zahl);
    SendClientMessage(playerid,COLOR_RED,Zahl);
    return 1;
    }
    Mehr dazu Commands mit Parametern '] [ SCRIPTING ] Commands mit Parametern[/url]


    <ungetestet>


    Wer Fehler findet darf sie behalten

    Kleiner Fehler :rolleyes: .
    Und zwar:

    // ****Der erste Teil kommt zwar unter "OnPlayerCommandText" , aber der 2. Teil nicht, sprich:


    dcmd(kick,4,cmdtext); // Unter "OnPlayerCommandText",doch (!)
    // --- weitere dcmd Codes oder andere Codes ---





    // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



    dcmd_kick(playerid, params[]) // doch dies kommt AUßERHALB eines CallBacks,d.h. außerhalb von "public .... " , z.B. ganz unten im Script anfügen
    {
    // +++++++++++ CMD ++++++++++++

    Kommt das bei jedem Server?
    Du kannst probieren:
    (* auf anderen Servern testen )
    * Alle Mods raus
    * anderen Clienten besorgen,installieren und testen
    * SA:MP deinstallieren + GTA San Andreas deinstallieren und beides neu installieren


    - Versuch ist es wert ! Hoffe,dass es bald wieder geht :) und meine Tipps dir weitergeholfen haben 8) .

    Teste es mal so
    if (strcmp(cmd, "/admins", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Admins Online:");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pAdmin] >= 1 && PlayerInfo[i][pAdmin] < 1338)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "Admin: %s - PhNr.: %d", sendername,PlayerInfo[i][pPnumber]);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }
    }
    }
    }
    return 1;
    }

    ein Beispiel:
    CreateObject( 2587, 2001.195679, 1547.113892, 14.283400, 0, 0, 96 );
    CreateObject = Funktion(Objekt erstellen)
    2587 = ModelID , d.h. was du eig. für ein Objekt erstellst (z.B.: Rampe,Straße,Brunnen,etc.)
    2001.195679 = X-Koordinate
    1547.113892 = Y-Koordinate
    4.283400 = Z-Koordinate (= Höhe )
    0 = X-Rotation
    0 = Y-Rotation
    96 = Z-Rotation

    1. Entschuldigung , habe leider nichts gefunden ^^
    2. Böses ThreadPushing
    :thumbdown:
    3. So etwas zu machen ist nicht wenig Arbeit.Was würde man denn erhalten ? :?:

    Ich hab den Befehl von Grex mal eingefügt.Doch es traten einige Probleme auf.
    Sobald ich /carheal eingegeben habe,konnte ich nicht mehr schreiben,keine Befehle eingeben,alles laggte sehr stark und nach ca. 2 Minuten trat jeweils ein Servercrash ein?
    Liegt meiner Meinung nach den dem "do" und "while" , da es mit einem Timer prim a klappt. ;) Hat einer eine Lösung?

    Ich denke,dass damit eher gemeint ,dass wenn der User nicht durch einen anderen User starb,sprich explodierte,verbrannte,ertrank, "/kill" , etc.

    Kommt drauf an, ob du lesen oder schreiben möchtest


    Lesen/Laden:

    new inistr = dini_Int("Autohaus.ini", "newcar");
    // D.h. du hättest inetwa sowas gespeichert: newcar=3 und dann gelesen/geladen


    Speichern:

    new inistr = dini_IntSet("Autohaus.ini","newcar",newcar);
    // Du hättest dann "newcar=4" zB gespeichert


    // Unter OnPlayerCommandText
    if(strcmp(cmdtext,"/dm1",true) ==0)
    {
    new name[MAX_PLAYER_NAME];
    new form[100];
    format(form,sizeof form,"%s hat sich zu DM1 geportet",name);
    SendClientMessageToAll(COLOR_RED,form);
    SetPlayerPos(playerid,X,Y,Z);//Deine Koordinaten einfügen
    GivePlayerWeapon(playerid, WAFFE,AMMO);//Ersetzen durch beliebige Waffe + Ammozahl
    SendClientMessage(playerid,COLOR_RED,"Du hast dich zu DM1 geportet!");
    DM[playerid] = 1;
    // Dies brauchst du,wenn Befehle ,wie "/heal" nicht in DM gehen sollen.Du frägst dann einfach mit "if(Dm[playerid] == 0) { >tue dies< } else { >sagen,dass es nicht geht< }" ab.
    return 1;



    // ==== günstige/beliebte DM-Ports(koordinaten) ====
    1959.1235,1356.1288,9.2578
    1966.4578,1361.6976,9.2578
    1966.6033,1372.1691,9.2578
    1329.3507,2126.3574,11.0156
    -1038.8242,-670.6358,32.0126
    224.7720,-123.4672,1.5703
    -1385.2949,454.5766,7.1875

    Das solltest du eig. mit dieser Hilfe schaffen.Einfach das hier berücksichtigen und "tada" ein Port mit Nachricht an User + Alle,beliebige Waffen und Munitionszahl und Bool zur späteren Abfrage erstellt.

    Gebe FatJoe Recht !
    Viele,die gut Scripten könnne und es wollen,sind meist irgendwo Admins (auch mit FTP Zugang), da sie es ja gut können ;)
    Daher ist oft Geld oder ein "Gegensponsoring" gefragt.
    Würd mich jedoch melden :) .
    Schick mir deine ICQ-Nr. per PM