Beiträge von Simon

    if (strcmp(cmdtext, "/lv", true) == 0)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
    SetVehicleZAngle(GetPlayerVehicleID(playerid),kameraa;
    LinkVehicleToInterior(GetPlayerVehicleID(playerid), 0);
    }
    if (!IsPlayerInAnyVehicle(playerid))
    {
    SetPlayerPos(playerid,x,y,z);
    SetPlayerFacingAngle(playerid, kamera;
    SetPlayerInterior(playerid, 0);
    }
    SendClientMessage(playerid,0x00FF0096, " Du befindest dich auf LV!");
    }
    }


    Das sollte klappen, du wirst sobald du /lv bist dahin geportet, egal ob du im auto sitzt oder zu fuß.

    Guten Abend


    Ich versuche nun schon länger verschiedenen teams autos zuzuweisen, indem ich die, die nicht zum Teamgehören, aus den Auto geschmissen:


    new auto1;


    public OnGameModeInit()
    {
    auto1 = AddStaticVehicle(596,1602.9822,-1683.9576,5.6117,270.1100,53,1); // lspdcar 1
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(vehicleid == auto1)
    {
    if((gTeam[playerid] == Team_Cops_LS) || (gTeam[playerid] == Team_Cops_SF) || (gTeam[playerid] == Team_Cops_LV) || (gTeam[playerid] ==Team_Army))
    {
    SendClientMessage(playerid,GREEN,"Willkommen in einem Auto!");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du besitzt keinen Schlüssel für dieses Auto!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }


    das problem : C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(992) : error 017: undefined symbol "vehicleid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    das problem:

    guten tag


    ich habe hier versucht, leute die in ein bestimmtes auto steigen und nicht zu dem jeweiligen team gehören rauszuwerfen:


    new auto1;


    public OnGameModeInit()
    {
    auto1 = AddStaticVehicle(596,1602.9822,-1683.9576,5.6117,270.1100,53,1); // lspdcar 1
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(vehicleid == auto1)
    {
    if((gTeam[playerid] == Team_Cops_LS) || (gTeam[playerid] == Team_Cops_SF) || (gTeam[playerid] == Team_Cops_LV) || (gTeam[playerid] ==Team_Army))
    {
    SendClientMessage(playerid,GREEN,"Willkommen in einem Auto!");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du besitzt keinen Schlüssel für dieses Auto!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    return 1;
    }


    C:\Users\Simon Siggelkow\Desktop\Pawno\gamemodes\Dm.pwn(995) : error 017: undefined symbol "vehicleid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    wenn ich es definiere mit #define kommen 4 errors, da vehicleid zum teil schon definiert ist: OnVehicleSpawn(VEHICLEID)
    bei einem "new" kackt pawn compiler ab


    bitte um hilfe

    guten tag


    ich habe ein pickup vor einem graffiti gemacht. wenn man im graffiti steht, kommt ein gametext: /graffiti.
    wenn man nun im umkreis dieses pickups ist, kann man /graffiti eingeben und man bekommt 1000$.
    man übersprüht das graffitie net wirklich, es ist sogedacht, wenn man ein graffiti findet und dann /graffiti macht (singleplayer >> übersprühen) das man dann geld als belohnunh bekommt.
    durch hilfen aus diesen forum, habe ich es geschaft ein timer zu erstellen, das man nur alle 15 minuten den befehl eingeben kann.
    nun habe ich folgendes problem: die voraussetzung ist, dass der befehl an ist,also auf true. sobald man den befehel eingiebt, wird er abgeschlatet, also false.
    und durch den timer nach 15 minuten wieder an gemacht, also true.
    Ich habe nun folgendes problem: ich kann nicht /graffiti eingeben, da die voraussetzung ist, das der befehl an ist (true). der geht aber erst an, wenn ich das graffiti übersprüht habe und 15 minuten warte.


    script:


    new pickup;//graffiti 1
    new bool:pickupcan[MAX_PLAYERS];


    forward pickupwiederaufnehmbar(playerid);


    pickup = CreatePickup(1239,1,2422.5283,-1682.1741,13.8021,-1);


    //OnPlayercmdtextblablabla
    if (strcmp(cmdtext, "/graffiti", true) == 0)
    {
    if(pickupcan[playerid] == true)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,2422.5283,-1682.1741,13.8021))
    {
    SendClientMessage(playerid,GREEN,"Du hast das Grafitti übersprüht und bekommst nun 1000$");
    SendClientMessage(playerid,GREEN,"Das Graffiti kann in 15 minuten wieder übersprüht werden!");
    GivePlayerMoney(playerid,1000);//
    SetTimer("pickupwiederaufnehmbar",900000,0);//900000 = Zeit bis Variable auf true gesetzt wird und der Spieler wieder /grafitti machen kann
    pickupcan[playerid] = false; // Variable = false; Spieler kann nichtmehr /grafitti machen
    }
    }
    return 1;
    }
    return 1;
    }
    public pickupwiederaufnehmbar(playerid)
    {
    pickupcan[playerid] = true;
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    //andere pickups
    else if(pickupid == pickup)
    {
    GameTextForPlayer(playerid,"~r~/graffiti",3000,6);
    return 1;
    }
    reutrn 1:
    }


    ich habe nun folgende lösung erstmal testweise gemacht.
    ich habe es so gemacht, das wenn jemand connected, das der befehl an gemacht wird, also auf true:


    public OnPlayerConnect(playerid)
    {
    pickupcan[playerid] = true;
    return 1;
    }


    Das problem: egal ob timer an oder aus, jedesmal wenn sich jemand connected, wird der timer bedeutungslos und der befehl ist wieder an,auf true


    er soll aber an sein, und nach dem /graffiti ausgehen und nach 15 minuten wieder angehen, was soweit auch klappt bisauf den 1. schritt: das er zu anfang an ist.


    //edit habs schon: false und true tauschen

    jop danke ich probiere es


    //edit: du hast dich einmal verschrieben, das habe ich gelöst. dann haste geschrieben: mit dem true. das das n sein muss,sonst geht der cmd nicht. aber wie soll de angehen?
    ich habe das jetzt si gemacht, dass wenn sich jemand einlogg, das das auf true gesetzt wird und wenn man/graffiti macht auf false. doch jedesmal wenn sich ein neuer einloggt, ist de timereffekt verschwunden.

    doch ihr versteht mich nicht richtig ^^
    ich möchte kein graffiti wie im singleplayer übersprühen, ich will einfach wenn ich vor einem graffiti stehe und /graffiti eingebe, das ich geld bekomme.
    und damit man nicht dauerhaft /graffiti eingiebt wenn man vor dem graffiti steht, und nicht ständig geld verdient, soll es so sein, das wenn einer /graffiti eingegeben hat, das die anderen erst wieder nach 10 minuten den cmd benutzen können.


    ich hoffe es ist jez verständlicher ^^ ich mach mal ein screenshot

    ne ^^
    also:
    da ist das graffiti an der wand(schon übersprüht) ich setze nun vor jedem graffiti in ls ein pickup. wenn man in einem der pickups ist, kann man /graffiti eingeben und man bekommt geld.das graffiti wird nicht verändert. es kommt auch kein objekt dazu bzw es wird kein objekt zerstört. die graffities ist einfach nur eine weitere einnahmequelle.
    wer viel sucht, findet viele und bekommt viel geld. ich kanns euch am besten zeigen. also ich möchte hir nicht werben, schickt mir ne pn wenn ihr wissen wollt was ich meine um mir zu helfen ^^


    sinn: geldverdiehnen.

    ihr macht das viel zu kompliziert!!!


    ich möchte kein objekt erstellen!
    das graffiti ist dort schon übersprüht an der wand/mauer. da setze ich einfach ein pickup vor und sobald man im pickup ist kann man /graffiti eingeben.
    das graffiti wird "eigentlich" nich übersprüht, man kriegt halt geld. soll ich euch das gleich zeigen? dann schickt mir ne PN und ich sende euch die ip.
    ist eig simple aber schwer zuu erlären

    jaja ich weiß also:
    ich mache ein pickup vors graffiti. dann laufe ich ins pickup und dann erscheint ein GameText: /graffiti.
    wenn man dann im pickup steht und /graffiti eingiebt, kommt die nachricht im chat: Graffiti erfolgreich übersprüht, sie erhalten GELD$
    der spieler erhält dann das geld.


    soweit kann ich alles selber. doch man kann in einer tour /graffiti benutzen und sich 999999999999999999$ machen ^^


    nun soll das graffiti, wenns übersprüht wurde, erst nach ZEIT minuten wieder "frei" sein,so dass man es erst nach einer gewissen zeit wieder übersprühen kann und man nicht dauerhaft sich Geld macht.


    und da komme ich nicht weiter...

    wir können dir hier was hinklatschen, ist aber nicht immer sinn der sache.
    man sollte schon ein paar kenntnisse mitbringen.
    ich glaube nicht das dir jetzt mal eben einer ein fs macht, aber im showroom kanste mal gucken

    guten tag


    ich möchte gerne graffities übersprühen, und der spieler erhält dann geld.
    dies ist nicht schwer, doch ich möchte das ein graffiti nur alle 10 minuten übersprüht werden kann.
    den timer zu setzen ist auch nicht schwer
    if(blablabla
    {
    SetTimer


    public...


    aber wärend der timer läuft, kann keiner das graffiti übersprühen. könnte mir da einer helfen?
    mfg

    ich glaub nicht alle, nur einige.
    zuminedest kenne ich server wo mehr sind.
    aufjedenfall haste da ne vorlage und kannst die befehle/farben und alles ändern.

    LOL ^^
    wollte es nur ausfürlich erklären ^^ damit nicht wieder irgentwelche sinnlosen fragen entstehen
    UND!
    es giebt da kein code ^^ ich habs hingekriegt indem ich diesen Filterscript, der das verursacht, rausgenommen habe.
    wie gesagt es könnte die Ursache sein, und da das meist von einem Filterscript kommt, der sowieso von anfang an drinne ist, benötigt man den nicht unbedingt.

    hm also ich hatte das problem auchma und habs selber hinbekommen, aber wie ich das gemacht habe..^^
    also aufjedenfall liegt es daran das du irgent ein filterscript vom paket hast
    paket = die filterscripts/gamemodes die von anfang an beim download dabei waren.
    dort ist das glaube ich so eingestellt, das wenn du ein befehl eingiebts, der nicht gescriptet wurde "Server: Unknow Command" kommt.
    gleichzeitig funktioniert das script aber, weil:
    fs1(vom paket): kennt den befehl nicht und es kommt die meldung
    fs2(dein filterscript mit dem cmd): kennt den command und führt ihn aus.
    es passiert beides gleichzeitig. vllt könntest du mir mal sagen wie deine filterscripts heißen.


    ich könnte mich auch irren doch ich meine das das auch das problem bei mir war.
    das selbe problem hatte ich auch.


    mfg