Beiträge von Excursius

    Hallo Commuity.


    Wie die Überschrift schon sagt will ich einen befehl haben wie z.B. /test und dann sollen ein string ausgelesen werden und danach ein interger also eine zahl (ich meine das hieß so ;) )
    Auf jeden Fall habe ich jetzt das Problem das die Zahl mit in den string aufgenommen wird (ungestestet)
    Hier der Befehl in dem ich das anwenden möchte


    //edit
    Code deleted

    Oh man ;) Kling logisch xD Danke ^^


    //Edit
    ocmd:materials(playerid, params[])
    {
    if(Eingeloggt[playerid] != 1) { return 1; }
    if(Spieler[playerid][Beruf] != JOB_Waffendealer) { return SendInfoMsg(playerid, "Du bist kein Waffendealer!"); }
    new auswahl[7], tmpstr[128], anzahl;
    if(sscanf(params,"si",anzahl)) {
    return SendNutzMsg(playerid, "/materials [get/deliver] [Anzahl]");
    }
    if(!strcmp(auswahl, "get", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, -90.8883,-1576.5775,2.6172)) return SendInfoMsg(playerid, "Du bist nicht am Materials Get Punkt! (/navi)");
    if(SpielerVariablen[playerid][PaketeDabei] >= 10) return SendInfoMsg(playerid, "Du kannst höchstens 10 Materials Pakete holen!");
    if(anzahl+SpielerVariablen[playerid][PaketeDabei] > 10) {
    format(tmpstr, sizeof tmpstr, "Soviele Pakete kannst du nicht tragen! (Maximal 10 Du hast: %d.)",SpielerVariablen[playerid][PaketeDabei]);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    if(anzahl*400 > Spieler[playerid][Geld]) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld. Du brauchst: $%d und hast $%d.",anzahl*400,Spieler[playerid][Geld]);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][PaketeDabei] += anzahl;
    Spieler[playerid][Geld] -= anzahl*400;
    format(tmpstr, sizeof tmpstr, " Du hast dir %d Pakete für $%d gekauft! Du musst sie nun ausliefern!",anzahl, anzahl*400);
    SendClientMessage(playerid, FARBE_Hellblau, tmpstr);
    return 1;
    }


    wird nun immer der nutzungstext angegeben...

    Hallo Community.


    ich arbeite grade an dem Job "Waffendealer". Ich möchte das die Spieler z.b. "/materials get 10" eingeben und sie dann 10 mats pakete bekommen. Da ich mit sscanf und ocmd arbeite nimmt er aber jetzt (denke ich) get 10 als einen string. Wie kann ich den quasi splitten ? das es funktioniert?


    Code:
    ocmd:materials(playerid, params[])
    {
    if(Eingeloggt[playerid] != 1) { return 1; }
    if(Spieler[playerid][Beruf] != JOB_Waffendealer) { return SendInfoMsg(playerid, "Du bist kein Waffendealer!"); }
    new auswahl[10], tmpstr[128], anzahl;
    if(sscanf(params,"s",auswahl)) {
    return SendNutzMsg(playerid, "/materials [get/deliver]");
    }
    if(!strcmp(auswahl, "get", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, -90.8883,-1576.5775,2.6172)) return SendInfoMsg(playerid, "Du bist nicht am Materials Get Punkt! (/navi)");
    if(SpielerVariablen[playerid][PaketeDabei] >= 10) return SendInfoMsg(playerid, "Du kannst höchstens 10 Materials Pakete holen!");
    if(sscanf(params,"i",anzahl)) {
    return SendNutzMsg(playerid, "/materials get [Anzahl]");
    }
    if(anzahl+SpielerVariablen[playerid][PaketeDabei] > 10) {
    format(tmpstr, sizeof tmpstr, "Soviele Pakete kannst du nicht tragen! (Maximal 10 Du hast: %d.)",SpielerVariablen[playerid][PaketeDabei]);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    if(anzahl*400 > Spieler[playerid][Geld]) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld. Du brauchst: $%d und hast $%d.",anzahl*400,Spieler[playerid][Geld]);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][PaketeDabei] += anzahl;
    Spieler[playerid][Geld] -= anzahl*400;
    format(tmpstr, sizeof tmpstr, " Du hast dir %d Pakete für $%d gekauft! Du musst sie nun ausliefern!",anzahl, anzahl*400);
    SendClientMessage(playerid, FARBE_Hellblau, tmpstr);
    return 1;
    } [ ... ]

    Also so wie ich es gemacht habe mit


    if(getTank(vehicleid) == 1) // evtl. Flugzeige also wenn bei return 2 zurück gegeben wird
    {
    maxtank = 100; // wieviel halt in meinem Fall die Flugzeuge haben sollen (sind keine Flugzeuge nurn beispiel)
    }
    if(getTank(vehicleid) == 2) // evtl. Flugzeige also wenn bei return 2 zurück gegeben wird
    {
    maxtank = 130; //alle die beim stock getTank 2 zurückgeben in meinem fall 402 und 403
    }



    stock getTank(vid)
    {
    new model = GetVehicleModel(vid);
    switch(model)
    {
    case 400,400: return 1;
    case 402,403: return 2;
    }
    }


    Hoffe das hilft dir weiter ;)

    Kürzer geht es nicht
    du musst einfach nur alle Car IDS die du in einer Gruppe haben willst darein tun und dann einfach nurnoch


    angenommen du tust es in "stock GetTank"


    if(getTank(vehicleid) == 2) // evtl. Flugzeige also wenn bei return 2 zurück gegeben wird
    {
    bla bla
    }


    usw

    Hallo Community.


    Also ich arbeite gerade an einem kleinen no dm script für mein selfmade. Jetzt folgendes Problem Soweit wird die Gangzone erstellt und man sieht sie ingame auch. Wenn man aber jetzt dadrin ist, wird einem der No DM Text nicht angezeigt...


    Dazugehöriges Scripting:
    #define NoDMCount 1
    new NoDMZone[NoDMCount];
    enum NoDMEnum
    {
    Float:nMinX,
    Float:nMinY,
    Float:nMaxX,
    Float:nMaxY,
    };
    new NoDMZones[NoDMCount][NoDMEnum] = {
    {1160.0469,-876.4908,1239.0612,-949.3686}
    };


    for(new n = 0; n < NoDMCount; n++) {
    GangZoneShowForPlayer(playerid, NoDMZone[n], 0xFEFEFEAA);
    }



    Sekundentimer:
    if(IstInNoDMZone(p) == 1) {
    TextDrawShowForPlayer(p, NoDMText);
    }
    else {
    TextDrawHideForPlayer(p, NoDMText);
    }


    stock CreateNoDMZones()
    {
    for(new i = 0; i < NoDMCount; i++) {
    NoDMZone[i] = GangZoneCreate(NoDMZones[i][nMinX],NoDMZones[i][nMinY],NoDMZones[i][nMaxX],NoDMZones[i][nMaxY]);
    }
    for(new i = 0; i < MAX_PLAYERS; i++) {
    for(new n = 0; n < NoDMCount; n++) {
    GangZoneShowForPlayer(i, NoDMZone[n], FARBE_Weiss);
    }
    }
    print(" - Gangzonen wurden erstellt");
    }


    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    else return 0;
    }


    stock IstInNoDMZone(playerid)
    {
    for(new i = 0; i < NoDMCount; i++) {
    if(IsPlayerInArea(playerid,NoDMZones[i][nMinX],NoDMZones[i][nMinY],NoDMZones[i][nMaxX],NoDMZones[i][nMaxY])) {
    return 1;
    }
    }
    return 0;
    }

    Also sagen wir es so -> Ich kenne mich schon ziemlich gut mit vernetzung und all sowas aus. Hab mir auch einen dhcp server umprogrammiert damit er ohne internet funktiontiert und in meinem "Lan" Zimmer funktioniert ;) Habe da auch einen kleinen Server stehen


    Muss man einfach einen DNS Server auf dem Server selber machen? Und kann man dann von dem aus aus quasi die DNS also seite.de eingeben und dann von der main domain den dns server auf die einzelnen domains umleiten lassen?


    Wenn ja gibt es da auch freeware? Ich hatte vorher parallels confix mal bei einem anbieter. Dort war dann die main Domain "installiert" und dann konnte ich eigene erstellen


    MfG

    Hallo Community


    Ich bestelle mir in der nächsten Zeit einen vServer mit vorraussichtlich Windows Server 2008.


    Kann mir einer quasi ein Tutorial schreiben wie ich eine Domain die ich mir kaufen werde am besten verwalte? Und wo ich sie für die zwecke am besten kaufe oder ob dasegal ist.


    Also meine Idee war
    1. Domain bei lima-city.de zu kaufen
    2. Wenn man auf diese doman geht z.b. seite.de das er dann DIREKT weiterleitet zu forum.seite.de
    3. Wenn man im SAMP Fenster srv.seite.de das dann server kommt aber nicht wenn man forum.seite.de oder seite.de eingibt.
    4. Wenn man im TS ts.seite.de eingibt auch der TS Server kommt und halt das er bei seite.de nicht kommt


    Wenn das nur möglich ist mit mehreren Server dann egal


    Aber noch eine Frage wäre, Wie mache ich das überhaupt? :D Also bei Limacity bieten die einen A REcord an das ihre Domain auf dann später meine IP umleitet. Wie kann ich aber am vServer erkennen wenn die eingeben wurde und wie mach ich dann z.b. subdomains wie forum.seite.de undsowas


    Wenn mir das jemand eklären könnte wäre ich sehr dankbar


    Danke im Vorraus

    Hallo Community


    Ich suche eine Möglichkeit, wie ich mit ocmd 2 Befehle mache aber beide nur 1 Funkion haben.
    Natürlich könnte ich den befehl auch 2 mal machen aber das wäre dann wieder dumm denn wenn ich bei der einen was veränder darf ich nicht vergessen, die andere auch zu ändern


    Also hier ein Beispiel /hangup es sollte mit /h (wie jetzt) und /hangup gehen
    ocmd:h(playerid)
    {
    if(Eingeloggt[playerid] != 1) { return 1; }
    if(TelefoniertMit[playerid] != INVALID_PLAYER_ID || WillMitIDTelefonieren[playerid] != INVALID_PLAYER_ID) {
    SendClientMessage(playerid, FARBE_Grau, "Du hast aufgelegt...");
    SendClientMessage(TelefoniertMit[playerid], FARBE_Grau, "Dein Gesprächspartner hat aufgelegt...");
    KillTimer(KlingeltonTimer[WillMitIDTelefonieren[playerid]]);
    TelefoniertMit[TelefoniertMit[playerid]] = INVALID_PLAYER_ID;
    TelefoniertMit[playerid] = INVALID_PLAYER_ID;
    return 1;
    }
    else {
    SendClientMessage(playerid, FARBE_Grau, "Du bist nicht am telefonieren!");
    return 1;
    }
    }

    Hallo Community.


    Ich bekomme einen Tag Missmatch bei dem Plugin von G-Styylez oder so :)
    Habe es aus dem Tutorial von Maddin und verstehe es auch so weit.
    Aber warum bekomme ich ein Tag Missmatch? Anscheindend funktioniert das Laden auch nicht, z.B. bei meinem Car System da lädt der irgendein Dreck.


    Hier d "error"

    Code
    C:\Dokumente und Einstellungen\Marci\Eigene Dateien\Server\SA-MP\Selfmade\gamemodes\0.1.6.pwn(6703) : warning 213: tag mismatch


    Und die Funktion
    stock mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat; <- Problemzeile
    }

    Hallo COmmunity


    Also mein Car system speichert richtig aber es lädt irgendeinen Müll :D


    Das Car enum
    enum Ainfo //Autoinfo
    {
    a_Name[35],
    a_modelid,
    a_Preis,
    Float:a_HP,
    a_Nummernschild[20],
    Float:a_posx,
    Float:a_posy,
    Float:a_posz,
    Float:a_posa,
    a_Farbe1,
    a_Farbe2,
    a_Paintjob,
    a_Spoiler,
    a_Hood,
    a_Roof,
    a_Sideskirt,
    a_Lamps,
    a_Nitro,
    a_Exhaust,
    a_Wheels,
    a_Stereo,
    a_Hydraulics,
    a_FrontBumper,
    a_RearBumper,
    a_VentRight,
    a_VentLeft,
    a_Abgeschlossen
    }


    new Autos[MAX_PLAYERS][Ainfo];


    hier mein Loadplayer_car
    Function LoadPlayer_Car(playerid)
    {
    SendInfoMsg(playerid, "Test1");
    if(CheckPlayerCar(playerid) == 1)
    {
    SendInfoMsg(playerid, "Test2");
    Autos[playerid][a_modelid] = mysql_GetInt("autos", "modelid", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_HP] = mysql_GetFloat("autos", "HP", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Farbe1] = mysql_GetInt("autos", "Farbe1", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Farbe2] = mysql_GetInt("autos", "Farbe2", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Paintjob] = mysql_GetInt("autos", "PaintJob", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Nummernschild] = mysql_GetInt("autos", "Nummernschild", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_posx] = mysql_GetFloat("autos", "posx", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_posy] = mysql_GetFloat("autos", "posy", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_posz] = mysql_GetFloat("autos", "posz", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_posa] = mysql_GetFloat("autos", "posa", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Spoiler] = mysql_GetInt("autos", "Spoiler", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Wheels] = mysql_GetInt("autos", "Wheels", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Nitro] = mysql_GetInt("autos", "Nitro", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Roof] = mysql_GetInt("autos", "Roof", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Hood] = mysql_GetInt("autos", "Hood", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Sideskirt] = mysql_GetInt("autos", "Sideskirt", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Lamps] = mysql_GetInt("autos", "Lamps", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Exhaust] = mysql_GetInt("autos", "Exhaust", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Stereo] = mysql_GetInt("autos", "Stereo", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Hydraulics] = mysql_GetInt("autos", "Hydraulics", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_VentRight] = mysql_GetInt("autos", "VentRight", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_VentLeft] = mysql_GetInt("autos", "VentLeft", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_FrontBumper] = mysql_GetInt("autos", "FrontBumper", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_RearBumper] = mysql_GetInt("autos", "RearBumper", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Abgeschlossen] = mysql_GetInt("autos", "Abgeschlossen", "SpielerName", SpielerName(playerid));
    Autos[playerid][a_Preis] = mysql_GetInt("autos", "Preis", "SpielerName", SpielerName(playerid));
    SendInfoMsg(playerid, "Test3");
    printf("PosX, PosY, PosZ, PosA : '%f - Soll: %f, %f, %f, %f'",Autos[playerid][a_posx],mysql_GetFloat("autos", "posx", "SpielerName", SpielerName(playerid)),Autos[playerid][a_posy],Autos[playerid][a_posz]+1.5,Autos[playerid][a_posa]);
    Spielercar[playerid] = CreateVehicle(Autos[playerid][a_modelid],Autos[playerid][a_posx],Autos[playerid][a_posy],Autos[playerid][a_posz]+1.5,Autos[playerid][a_posa],-1,-1,-1);
    SendInfoMsg(playerid, "Test4");
    SetVehicleNumberPlate(Spielercar[playerid],Autos[playerid][a_Nummernschild]);
    SendInfoMsg(playerid, "Test5");
    SetVehicleToRespawn(Spielercar[playerid]);
    SendInfoMsg(playerid, "Test6");
    SetVehicleParamsForPlayer(Spielercar[playerid],playerid,0,0);
    if(Autos[playerid][a_HP] > 250)
    {
    SetVehicleHealth(Spielercar[playerid],Autos[playerid][a_HP]);
    } [...]


    So und in der Konsole kommt dann

    Code
    [09:09:43] PosX, PosY, PosZ, PosA : '1142477568.000000 - Soll: 611.299987, -994510464.000000, 1097125120.000000, 1129879936.000000'


    Also 1 mal habe ich ja "Soll:" gemacht so sollte es geladen werden, wird es aber nicht....