Beiträge von BMGP

    Hi!
    Hab ne Frage...
    Also ich habe einen TDM server gemacht und man kann sehr viel mit Geld kaufen/aktivieren... (Spezialwaffen)
    Es ist USA vs. IRAK(Ach ne, hat ja noch keeiner xDD) und es spielt in dedr country gegen nördlich von LS.
    Hat jemand eine Idee, womit man auf dem Server außer andere zu killen noch Geld verdienen könnte???
    Ich dachte schon an Transporter oder so für soldaten aber ich glaub das geht nicht gut/wirkt nicht gut bzw wüsste ich es nicht wie ich es umsetzen sollte...


    Also wüsste jemand eine coole Methode?? (Sollte schon zum "Krieg" passen - also keine Taxi fahrer xDD

    Hi!
    Ich möchte diese x[playerid] = yz wenn man sich registriert(Ich verwende GAdmin(Da ist ein Register Login System dabei) das das immer wenn man das spiel verlasst gespeichert wird und wenn man wieder connectet das es dann eben wieder da ist^^
    Es soll nämlich ein Art Levelsystem entstehen(Gehts leichter zum machen? Bitte sagen xD), und da soll ja nicht immer jeder von vorne beginnen :D :D


    HILFE! PLS! Kann doch net so schwer sein!(-> Ich würds ja machen aber ich versteh nicht mal das SPeichern + Lesen Tutorial!!!)

    ALso bekomme jetzt zwei Fehler beim Filterscript(einmal Error expected token + einmal Warning symbol is never used(immer letzte(leere) Zeile als fehlerzeile angegeben...))
    Das ist das Filterscript:
    #include <a_samp>


    //----------------------------------------------------------------


    #define COLOR_RED 0xFF0000AA
    #define COLOR_GREEN 0x33AA33AA33AA


    new weedobject;
    new WEEDGramm[MAX_PLAYERS];
    new Float:XWeed, Float:YWeed, Float:ZWeed;
    new WEEDgepflanzt[MAX_PLAYERS] = 0;
    new WEEDgegossen[MAX_PLAYERS] = 0;
    new WEEDhaben[MAX_PLAYERS] = 0;


    enum AcceptInfo
    {
    gewicht,
    preis,
    dealer
    }


    new Accept[MAX_PLAYERS][AcceptInfo];
    new WEEDgramm[MAX_PLAYERS];


    //----------------------------------------------------------------


    #define FILTERSCRIPT


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n-------------------------------------------------------");
    print(" Weed - System by BMGP alias NWC Daniel...... 100% loaded");
    print("-------------------------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }





    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }





    public OnPlayerCommandText(playerid, cmdtext[])
    {


    new cmd[128];
    new tmp[128];
    new giveplayerid, moneys, idx;


    //--------------------------------------------------------------------

    if(!strcmp(cmd, "/weedpflanzen", true))
    {
    if(WEEDgepflanzt[playerid] == 0)
    {

    GetPlayerPos(playerid,XWeed,YWeed,ZWeed);
    weedobject = CreateObject(823, XWeed, YWeed, ZWeed - 3, 0, 0, 0);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast Weed erfolgreich angebaut!");
    WEEDgepflanzt[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast schon Weed angebaut.");
    }
    return 1;
    }

    if(!strcmp(cmd, "/weedgiessen", true))
    {
    if(WEEDgepflanzt[playerid] == 1)
    {
    WEEDgegossen[playerid] = 1;
    MoveObject(weedobject, XWeed, YWeed, ZWeed , 0.05);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast das Weed erfolgreich gegossen. Es wächst nun.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst zuerst WeedSamen pflanzen um das Weed zu giessen!");
    }
    return 1;
    }

    if(!strcmp(cmd, "/weedernten", true))
    {
    if(WEEDgepflanzt[playerid] == 1)
    {
    if(WEEDgegossen[playerid] == 1)
    {
    WEEDGramm[playerid]++;
    SendClientMessage(playerid,COLOR_GREEN,"Weed erfolgreich geerntet!");
    WEEDgepflanzt[playerid] = 0;
    DestroyObject(weedobject);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst das Weed zuerst giessen damit es wächst!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst das Weed zuerst pflanzen und dann giessen!");
    }


    return 1;
    }




    if(!strcmp(cmd,"/accept",true))
    {
    if(Accept[playerid][gewicht] <= 0 || Accept[playerid][preis] <= 0) return SendClientMessage(playerid,COLOR_GREEN,"*** Du hast kein Angebot!");
    if(GetPlayerMoney(playerid) < Accept[playerid][preis]) return SendClientMessage(playerid,COLOR_GREEN,"*** Du hast kein Geld dafür im Moment!");
    WEEDgramm[playerid] += Accept[playerid][gewicht];
    GivePlayerMoney(playerid, -Accept[playerid][preis]);
    SendClientMessage(playerid,COLOR_GREEN,"*** Weed angenommen. Viel Spaß damit !");
    GivePlayerMoney(Accept[playerid][dealer],Accept[playerid][preis]);
    Accept[playerid][gewicht] = 0;
    Accept[playerid][preis] = 0;
    Accept[playerid][dealer] = 0;
    // Was auch immer
    return 1;
    }

    if(!strcmp(cmd,"/weedsell",true))
    {
    if(WEEDgramm[playerid] == 0) return SendClientMessage(playerid,COLOR_GREEN,"*** Du hast kein Weed (0 Gramm)");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"USE: /weedsell [ID] [GRAMM] [PREIS]!");
    giveplayerid = ReturnUser(tmp);
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid,COLOR_GREEN,"*** Angegebener User nicht online!");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"USE: /weedsell [ID] [GRAMM] [PREIS]!");
    new gramm = strval(tmp);
    if(gramm <= 0 || gramm >= 1000) return SendClientMessage(playerid,COLOR_GREEN,"*** Gramm muss zwischen 1 und 999 sein!");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"USE: /weedsell [ID] [GRAMM] [PREIS]!");
    moneys = strval(tmp);
    if(moneys <= 0) return SendClientMessage(playerid,COLOR_GREEN,"*** Preis muss über 0 sein!");
    SendClientMessage(playerid,COLOR_GREEN,"*** Weedangebot abgegeben!");
    Accept[giveplayerid][gewicht] = gramm;
    Accept[giveplayerid][preis] = moneys;
    Accept[giveplayerid][dealer] = playerid;
    return 1;
    }
    //--------------------------------------------------------------------

    return 0;
    }


    stock ReturnUser(strings[])
    {
    new count = 0;
    new len = strlen(strings);
    if(len > 3)
    {
    for(new i = 0; i < MAX_PLAYERS;i++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(i,name,sizeof(name));
    if(!strcmp(name,strings,false,MAX_PLAYER_NAME))
    {
    return i;
    }
    else
    {
    count = 1;
    }
    }
    }
    else
    {
    return strval(strings);
    }
    return (count == 1) ? (INVALID_PLAYER_ID) : (strval(strings));
    }





    HIIIIIIIIIIIIILFE... PLS


    Danke mal für deine Hilfe, doch etwas funktioniert bei deinem Script nicht.
    Also selbst wenn ich Weed haben kommt trotzdem immer "Du hast kein Weed" und zwar immer^^
    Was tun?


    muss es zwar erst testen aber DANKE! so ne gute hilfe hab ich noch nie bekommen :thumbup::thumbup::thumbup:


    EDIT:


    Jetzt vversteh ich das endlich mit den Unterschied zwischen zB.: WEEDgepflanzt = 0; oder halt mit [Maxplayers].....
    WUsste das eben nie was das bringt^^


    EDIT 2:
    Hab eienn error:
    symbol is never used...
    aber der is irgendwo also keine zeile angegeben könnte man sagen^^

    Also habe heute mein eigenes Weedsystem begonnen. Hier mal der "Grundcode":
    if(!strcmp(cmd, "/weedpflanzen", true))
    {
    if(WEEDgepflanzt == 0)
    {
    WEEDgepflanzt = 1;
    GetPlayerPos(playerid,XWeed,YWeed,ZWeed);
    weedobject = CreateObject(823, XWeed, YWeed, ZWeed - 3, 0, 0, 0);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast Weed erfolgreich angebaut!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast schon Weed angebaut.");
    }
    return 1;
    }

    if(!strcmp(cmd, "/weedgiessen", true))
    {
    if(WEEDgepflanzt == 1)
    {
    WEEDgegossen = 1;
    MoveObject(weedobject, XWeed, YWeed, ZWeed , 0.05);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast das Weed erfolgreich gegossen. Es wächst nun.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst zuerst WeedSamen pflanzen um das Weed zu giessen!");
    }
    return 1;
    }

    if(!strcmp(cmd, "/weedernten", true))
    {
    if(WEEDgepflanzt == 0)
    {
    if(WEEDgegossen == 1)
    {
    //IRgendwas hier -> man bekommt 10 Gramm oder so^^
    SendClientMessage(playerid,COLOR_GREEN,"Weed erfolgreich geerntet!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst das Weed zuerst giessen!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst das Weed zuerst pflanzen und dann giessen!");
    }
    return 1;
    }


    Jetzt möchte ich es irgendwie machen das man eben dann Weed hat(WICHTIG: Wenn man das selbe nochmal macht also pflanzen ernten etc. dann erhält man "2 Weed"(xD -> in Gramm dann oder so..^^)
    Und man kann die dann verkaufen mit /giveweed ID(des spielers der es bekommt) Gramm(also von der Menge her wieviel du hergibst) PREIS(und dann der Preis den du verlangst(nur zwischen zB. 200 und 5000 möglich)


    BITTE HELFT MIR!

    ... solchen Sachen wie /skin -skinid-!
    also die commands wo man danach was "eingeben" kann/muss eben solche /kick id /ban id /givemoney id.
    Ich hab im englischen Wiki ne "naleitung(glaub^^) gefunden doch verstehen tu ich das noch lange nicht^^
    bräuchte so ne Schritt für Schritt erklärung xD


    Hätte da jemand eine anleitung bitte?!


    MFG. BMGP

    habs gerade selbst rausgefunden^^
    und wie geht das mit dem anti command?!


    Aja hab gerade was probiert.
    also:


    new inDM = 0;


    Unter dem deathmatch command dann halt
    inDm = 1;
    und unter OnPlayerSpawn das:

    if(imDM == 1)
    {
    new iRandom = random(sizeof(DMSpawn));
    SetPlayerPos(playerid, DMSpawn[iRandom][0], DMSpawn[iRandom][1],DMSpawn[iRandom][2]);
    }
    Nur wenn ich im dm bin und ich getötet werde werde ich trotzdem normal und nicht im DM gespawnt...


    PLS HILFE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    habe eine deathmatcharena. möchte da random spawns. also man gibt /deathmatch ein und teleportiert sich zu einem dieser folgenden punkten:


    {555.017395, 2876.487304, 2.827838},
    {556.508056, 2932.969482, 3.213321},
    {583.509826, 2956.563232, 10.022232},
    {583.248596, 2956.373535, 18.422161},
    {613.906372, 2966.900634, 7.801957},
    {635.815551, 3020.493164, 2.087232},
    {593.451171, 3056.166503, 2.230519},
    {620.233947, 2918.290527, 2.558469},
    {609.661682, 2898.529052, 2.376594},
    {582.865478, 2864.914062, 2.281667},


    aja und wie mache ich es das in der arena keine Commands verwendet werden können(außer /back)

    also hi!



    Ichbegreife nun die Grundlagen des scripten so ziemlich xD
    Nun möchte ich mit "Variablen" versuchen(also mit diesem % + zeichen) und wie das ganze aufgebaut ist.
    Kann mir jemand einen link schicken wo genau ich das in SAMP wiki sehen kann(habe es mal irgendwo gefunden) bzw. ob es Tutorials zu diesem Thema gibt?


    Gruß BMGP


    EDIT:
    Aja und diese string sache versteh ich nicht -> Tutorial etc.?!

    kann ich auch optionen für bestimmte checkpoints (also nicht letzten sondern 2. 5. etc..) machen???
    Also statt new lastcheckpoint....


    Will nämlich das man bei bestimmten CHeckpoints gefreezed wird und stehn bleiben muss(nicht das es als "rennen" gesehen wird xDDD)

    Also, habe vor kurzem versucht ein Coordinatenspeicherscript.
    habe bei public OnPlayerCommandText(playerid, cmdtext[]) das eingefügt:


    if(!strcmp(cmd, "/ssave", true))
    {
    if(IsPlayerAdmin(playerid))
    {
    //Position
    new string1[128];
    new Float:XCoordsSave, Float:YCoordsSave, Float:ZCoordsSave;
    GetPlayerPos(playerid, XCoordsSave, YCoordsSave, ZCoordsSave);

    //Sound
    new Float:XCoordsSaveSound, Float:ZCoordsSaveSound, Float:YCoordsSaveSound
    GetPlayerPos(playerid, XCoordsSaveSound, YCoordsSaveSound, ZCoordsSaveSound);
    PlayerPlaySound(playerid,1150,XCoordsSaveSound, YCoordsSaveSound, ZCoordsSaveSound);

    //Position
    new File:pos=fopen("CoordonatesSaves.txt", io_append);
    format(string1, 256, "%s\r\n {%f, %f, %f}", XCoordsSave, YCoordsSave, ZCoordsSave);
    fwrite(pos, string1);
    fclose(pos);
    SendClientMessage(playerid,COLOR_RED,"Racepoint gespeichert!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst Admin sein um das machen zu können!");
    }
    return 1;
    }


    Es geht auch nur es sind dann zwei "Fehler" . Also in dem CoordonatesSaves.txt steht das dann so da:




    {-1655.850708, 13.881608, 0.000000}
    {-1654.343261, 13.994992, 0.000000}÷
    {-1657.223510, 13.926807, 0.000000}
    {-1580.377563, 24.313919, 0.000000}ë
    {-1668.388549, 13.343750, 0.000000}


    {-1670.535888, 13.335947, 0.000000}


    einmal diese "seltsamen" zeichen(ë,÷,) und die Z Koordinaten funktionieren anscheinend nicht.


    ok meine Frage zu den umlauten:
    habe auf vielen Servern ein ÖÄÜ normal gesehen -> nur auf meinem Server geht es nicht da wird irgendwas angezeigt^^ weiß grad net was(wenn es wichtig is schaue ich halt nochmal nach *gg*)
    Wie mache iche s das die angezeigt werden?

    Also mein Server stürzt seit gestern mmer ab sobald ich ihn starte.
    Hier die Crashinfo:




    und hier meine server.cfg:


    andere frage wie kann ich die IP von der die NPC's connecten ändern?! Hab es mal irgendwo gesehen nur vergessen wo..

    juhu, keine fehlermeldung mehr!


    nur leider passiert nichts wenn ich dann in der nähe von dem punkt bin!
    also keine Gametextforplayer meldung...-


    liegt es vielleicht am isplayerinrangeofpoint?!
    muss man da irgendein Define machen?!
    hab nämlich im englischen SAMP forum sowas gelesen..
    der hat glaub ich sowas geschrieben:



    Code
    A macro for PlayerToPoint users which want to use the new IsPlayerInRangeOfPoint function.
    
    
    
    
    PAWN Code:
    #define PlayerToPoint(%1,%2,%3,%4,%5) \
      IsPlayerInRangeOfPoint(%2,%1,%3,%4,%5)

    Also habe nun auf meinem 0.3 server nen fly npc erstellt(flugzeug shamal -> hab ein script das man in shamal als passenger einsteigen kann)
    Nun wenn man einsteigt ist man in nem interior und man sieht ja nicht das man da ist^^
    Jetzt wollte ich dazu was erstellen:



    forward lvairport();
    public lvairport()
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if (GetVehicleModel(vehicleid) == 519 && ispassenger)
    {
    if(IsPlayerInRangeOfPoint(playerid, 10.0, 1477.654541, 1367.563964, 10.398267))
    {
    GameTextForPlayer(playerid,"Wir sind nun in ~n~~r~Las Venturas ~n~gelandet.",3000,3);
    }
    }
    }
    return 1;
    }


    habe natürlich auch timer erstellt^^:

    SetTimer("lvairport", 500, true);


    Nun wenn ich das compile erhalte ich 4 Error:
    3x undefined Symbol "playerid"
    1x undefined Symbol "vehicleid"


    Nun wie kann ich das richten bzw. viell könnte ich es ja irgendwie anders machen?!


    Weil in "public OnPlayerVehicle" wird es ja nur überprüft wenn du einsteigst und nicht dauerhaft wenn du drinn bist..