Beiträge von Meisternuke

    ich habs jetzt so:
    MEDICCars[0] = AddStaticVehicle(563,1607.4973,1804.1997,31.1757,358.7224,3,1);
    MEDICCars[1] = AddStaticVehicle(416,1604.8182,1838.4856,10.9064,268.8970,1,3);
    MEDICCars[2] = AddStaticVehicle(416,1615.3304,1838.5038,10.9708,269.1812,1,3);
    MEDICCars[3] = AddStaticVehicle(416,1615.3219,1832.3921,10.9711,270.1326,1,3);
    MEDICCars[4] = AddStaticVehicle(416,1604.7510,1832.3698,10.9711,269.6634,1,3);
    MEDICCars[5] = AddStaticVehicle(598,1633.1672,1840.6040,10.5638,90.3097,3,1);
    MEDICCars[6] = AddStaticVehicle(598,1633.3455,1825.5991,10.5666,89.1082,3,1);

    for(new v=0;v<sizeof(MEDICCars);v++)
    {
    SetVehicleNumberPlate(v,"LVMD");
    }
    aber trotzdem ist ingame das nummernschild noch gleich:


    MEDICCars[0] = AddStaticVehicle(563,1607.4973,1804.1997,31.1757,358.7224,3,1);
    MEDICCars[1] = AddStaticVehicle(416,1604.8182,1838.4856,10.9064,268.8970,1,3);
    MEDICCars[2] = AddStaticVehicle(416,1615.3304,1838.5038,10.9708,269.1812,1,3);
    MEDICCars[3] = AddStaticVehicle(416,1615.3219,1832.3921,10.9711,270.1326,1,3);
    MEDICCars[4] = AddStaticVehicle(416,1604.7510,1832.3698,10.9711,269.6634,1,3);
    MEDICCars[5] = AddStaticVehicle(598,1633.1672,1840.6040,10.5638,90.3097,3,1);
    MEDICCars[6] = AddStaticVehicle(598,1633.3455,1825.5991,10.5666,89.1082,3,1);



    wie mache ich das die obenstehenden autos ein nummernschild erhalten mit LVMD

    Habe hier einen "GiveWanted" befehl:


    ocmd:gw(playerid,params[])
    {
    if(!Fraktion(playerid,1||2))return SendClientMessage(playerid,ROT,"Du bist kein Mitglied des LVPD!");
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,0xFFFF00FF,"/gw [ID] [Grund]");
    if(Wanteds(pID,10))return SendClientMessage(playerid,ROT,"Der Spieler kann keine Wanteds mehr erhalten");
    format(string,sizeof(string),"Du hast %s Wanteds gegeben. Grund: %s",Spielername(pID),reason);
    SendClientMessage(playerid,0xFF9000FF,string);
    format(string,sizeof(string),"Du hast von %s Wanteds bekommen. Grund: %s",Spielername(playerid),reason);
    SendClientMessage(pID,0xFF9000FF,string);
    SetPVarInt(playerid,"Wanteds",GetPVarInt(pID,"Wanteds")+1);


    Wantedstern = TextDrawCreate(587.000000, 104.000000, "]");
    TextDrawBackgroundColor(Wantedstern, 255);
    TextDrawFont(Wantedstern, 2);
    TextDrawLetterSize(Wantedstern, 0.589999, 2.200000);
    TextDrawColor(Wantedstern, -65281);
    TextDrawSetOutline(Wantedstern, 1);
    TextDrawSetProportional(Wantedstern, 1);


    Wantedzahl = TextDrawCreate(573.000000, 103.000000, GetPVarInt(playerid,"Wanteds");
    TextDrawBackgroundColor(Wantedzahl, -65281);
    TextDrawFont(Wantedzahl, 1);
    TextDrawLetterSize(Wantedzahl, 0.559999, 2.499999);
    TextDrawColor(Wantedzahl, 65535);
    TextDrawSetOutline(Wantedzahl, 1);
    TextDrawSetProportional(Wantedzahl, 1);
    return 1;
    }


    Textdraw Wantedstern ist der Stern
    und Wantedzahl ist die Anzahl von Wanteds[maximal 10]
    aber irgendwie funktioniert das nicht...
    der stern soll nur da sein, wenn der spieler 1-10 wanteds hat, bei 0 keine...
    und die zahl bei 0 weg und bei 1-10 halt die wantedanzahl aus der Datei auslesen, kann mir wer da weiterhelfen

    habe nun hier meinen /pay befehl:


    ocmd:pay(playerid,params[])
    {
    new pID, gID, string[128];
    if(gID > 0 && GetPlayerMoney(playerid) >= gID)
    {
    SendClientMessage(playerid,0xffffff,"Du hast nicht genügend Geld auf der Hand!");
    return 1;
    }
    if(gID < 0 || gID > 100000) return SendClientMessage(playerid,ROT,"Du kannst nur maximal 100.000$ übergeben!");
    if(sscanf(params, "ud",pID,gID))return SendClientMessage(playerid,ROT,"/pay [ID/Name] [money]");
    if (!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online");
    if (pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dir selber kein Geld geben!");
    if (ProxDetectorS(5.0, playerid, pID))
    {
    format(string,sizeof(string), "%s hat dir %d$ gegeben",Spielername(playerid), gID);
    format(string,sizeof(string), "Du hast %s %d$ gegeben",Spielername(pID),gID);
    SendClientMessage(pID,ORANGE, string);
    SendClientMessage(playerid,ORANGE,string);
    GivePlayerMoney(pID,gID);
    GivePlayerMoney(playerid,-gID);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du musst näher ran!");
    }
    return 1;
    }



    alles funktioniert, nur 1 nicht...
    wenn ich 10k auf der hand hab, und einem anderen 20k gebe, komme ich ins minus..
    kann mir wer helfen?
    ansonsten einfach befehl aus euerm script schicken, wo es funktioniert, wäre auch nett, danke schonmal

    hier mein heal [ID] befehl für medics... alles ist gut, der Spieler wird geheilt usw...
    doch entweder startet der timer nicht, oder der timer ruft den public nicht auf, kann wer helfen?


    ocmd:heal(playerid,params[])
    {
    if(!Fraktion(playerid,3))return SendClientMessage(playerid,ROT,"Du bist kein Medic!");
    new pID, string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid, ROT, "Benutze: /heal [ID]");
    if(Heal[playerid] == 1)return SendClientMessage(playerid, ROT, "Du kannst erst wieder nach 60 Sekunden heilen!");
    if(pID == playerid) return SendClientMessage(playerid, ROT, "Du kannst dich nicht selbst heilen!");
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health < 100)
    if (pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Spieler nicht gefunden");
    if (ProxDetectorS(3.0, playerid, pID))
    {
    SetPlayerHealth(pID, 100);
    GivePlayerMoney(pID, -500);
    GivePlayerMoney(playerid, 500);
    Heal[playerid] = 1;
    SetTimer("Healfrei", 60000,false);
    format(string,sizeof (string),"Du wurdest von %s für 500$ geheilt!",Spielername(playerid));
    SendClientMessage(pID,ORANGE,string);
    format(string,sizeof (string),"Du hast %s für 500$ geheilt!",Spielername(pID));
    SendClientMessage(playerid, ORANGE,string);
    SendClientMessage(playerid, ORANGE,"Du kannst erst in 60 Sekunden jemanden heilen!");
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du musst näher ran!");
    }
    return 1;
    }


    forward Healfrei(playerid);
    public Healfrei(playerid)
    {
    Heal[playerid] = 0;
    return true;
    }

    alles funktioinert sehr gut... bis auf das, das ich so viel geld geben kann, das ich auch ins minus gehe...
    wie umgehe ich das, da


    if(GetPlayerMoney(playerid) <= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");
    nicht geht...


    ocmd:pay(playerid,params[])
    {
    new pID, gID, string[128];
    if(GetPlayerMoney(playerid) <= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");
    if(sscanf(params, "ud",pID,gID))return SendClientMessage(playerid,ROT,"/pay [ID/Name] [money]");
    if (!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online");
    if (pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dir selber kein Geld geben!");
    format(string,sizeof(string), "%s hat dir %d$ gegeben",Spielername(playerid), gID);
    format(string,sizeof(string), "Du hast %s %d$ gegeben",Spielername(pID),gID);
    SendClientMessage(pID,ORANGE, string);
    SendClientMessage(playerid,ORANGE,string);
    GivePlayerMoney(pID,gID);
    GivePlayerMoney(playerid,-gID);
    return 1;
    }

    wie mache ich es das zb bei cp 10/20 eine meldung kommt, fast geschaft und zb bei 18... noch 2 Checkpoints?
    oder wie kann ich eine bustour machen, wobei bei jedem checkpoint eine andere haltestelle angezeigt wird...bsp. SendClientMessage(playerid,ORANGE,"Haltestelle: XYZ LS");
    hier aus meinem script:
    public OnPlayerEnterCheckpoint(playerid)
    {
    if(Praxis[playerid][pmi_bAktiv])
    {
    Praxis[playerid][pmi_Checkpoint]++;
    DisablePlayerCheckpoint(playerid);
    new playercp = Praxis[playerid][pmi_Checkpoint];
    if(playercp == sizeof(Praxis_Punkte))
    {
    Praxis[playerid][pmi_bAktiv]=false;
    SendClientMessage(playerid,GELB,"Bestanden!!!");
    RemovePlayerFromVehicle(FSAutos[playerid]);
    DestroyVehicle(FSAutos[playerid]);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,1174.3204,1350.9961,10.9219);
    SetPlayerWorldBounds(playerid,20000,-20000,20000,-20000);
    SetPVarInt(playerid,"Fuehrerschein",1);
    SpielerSpeichern(playerid);
    }
    else
    {



    SetPlayerCheckpoint(playerid,Praxis_Punkte[playercp][P_fX],Praxis_Punkte[playercp][P_fY],Praxis_Punkte[playercp][P_fZ],Praxis_Punkte[playercp][P_fRad]);
    }
    return 1;
    }
    return 1;
    }

    habe hier 2 befehle:



    ocmd:gethere(playerid,params[])
    {
    if(!Admin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin [2]");
    new pID, string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /gethere [ID]");
    SetPlayerInterior(pID, GetPlayerInterior(playerid));
    SetPlayerVirtualWorld(pID, GetPlayerVirtualWorld(playerid));
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    SetPlayerPos(pID,X,Y,Z);
    format(string,sizeof string,"Admin: %s dich zu sich geportet!",Spielername(playerid));
    SendClientMessage(pID,BLAU,string);
    format(string, sizeof string,"Du hast %s zu dir geportet!",Spielername(pID));
    SendClientMessage(playerid,BLAU,string);
    return 1;
    }


    ocmd:goto(playerid,params[])
    {
    if(!Admin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin [1]");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /goto [ID]");
    SetPlayerInterior(playerid, GetPlayerInterior(pID));
    SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(pID));
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerPos(playerid,X,Y,Z);
    return 1;
    }


    aber egal ob ich /goto oder /gethere mache.. mein interior/virtuelle welt, bzw, des spielers wird nicht geändert.
    Woran liegt es?

    ocmd:spawnc(playerid,params[])
    {
    if(!Admin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin [1]");
    {
    new cID, string[128];
    if(sscanf(params,"u",cID))return SendClientMessage(playerid,GELB,"Benutze /spawnc [Carid]");
    {
    format(string,sizeof string,"Auto %s wurde neu gespawnt!",cID);
    SendClientMessage(playerid,BLAU,string);
    SetVehicleToRespawn(cID);
    }
    }
    return 1;
    }
    Ich möchte das das auto mit der eingegebenen id respawnt wird...
    ingame kommt aber nur: Auto y wurde neu gespawnt!
    wo hab ich hier einen fehler?



    hab jetzt aus dem if(sscanf(params,"u",cID))
    if(sscanf(params,"i",cID))
    gemacht... jetzt respawnt alles einwandfrei...
    aber der text ist nun so:
    Auto wurde neu gespawnt!

    ganz oben:
    //gates
    new LVPDGate[1],LVPDGateH[1],SWATGate[2];


    Unter OnGameModeInit:
    LVPDGate[0] = CreateObject(971,2335.15014648,2444.10009766,7.17587233,0.00000000,0.00000000,60.00000000); //object(subwaygate) (1)
    LVPDGateH[0] = CreateObject(971,2293.88623047,2499.27758789,5.74178362,0.00000000,0.00000000,270.00000000); //object(subwaygate) (3)
    SWATGate[0] = CreateObject(988,2251.19140625,2500.58471680,3.21131253,0.00000000,0.00000000,270.00000000); //object(ws_apgate) (1)
    SWATGate[1] = CreateObject(988,2251.19140625,2495.16357422,3.21131253,0.00000000,0.00000000,270.00000000); //object(ws_apgate) (2)


    unter OnPlayerCommandText:
    if(strcmp("auf", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20, 2335.15014648,2444.10009766,7.17587233))
    {
    if(Fraktion(playerid,1)||Fraktion(playerid,2))
    {
    MoveObject(LVPDGate[0],2335.14941406,2444.09960938,0.20571980,4);
    SendClientMessage(playerid,BLAU,"Tor zur LVPD-Garage geöffnet");
    SetTimer("LVPDGatezuruck", 8000, false);
    return true;
    }
    }
    if(IsPlayerInRangeOfPoint(playerid, 20, 2293.88623047,2499.27758789,5.74178362))
    {
    if(Fraktion(playerid,1)||Fraktion(playerid,2))
    {
    MoveObject(LVPDGateH[0],2293.88574219,2499.27734375,11.05909061,4);
    SendClientMessage(playerid,BLAU,"Hintertor zur LVPD-Garage geöffnet");
    SetTimer("LVPDGateHzuruck", 8000, false);
    return true;
    }
    }
    if(IsPlayerInRangeOfPoint(playerid, 20, 2251.19140625,2497.87414551,3.21131253))
    {
    if(Fraktion(playerid,2))
    {
    MoveObject(SWATGate[0],2251.19140625,2506.16308594,3.21131253,4);
    MoveObject(SWATGate[1],2251.19140625,2511.58398438,3.21131253,4);
    SendClientMessage(playerid,BLAU,"Tor zur SWAT-Garage geöffnet");
    SetTimer("SWATGatezuruck", 8000, false);
    return true;
    }
    }


    und dann i-wo unten:
    forward LVPDGatezuruck();
    public LVPDGatezuruck()
    {
    MoveObject(LVPDGate[0],2335.15014648,2444.10009766,7.17587233, 4);
    return true;
    }
    forward LVPDGateHzuruck();
    public LVPDGateHzuruck()
    {
    MoveObject(LVPDGateH[0],2293.88623047,2499.27758789,5.74178362, 4);
    return true;
    }
    forward SWATGatezuruck();
    public SWATGatezuruck()
    {
    MoveObject(SWATGate[0],2251.19140625,2500.58471680,3.21131253, 4);
    MoveObject(SWATGate[1],2251.19140625,2495.16357422,3.21131253, 4);
    return true;
    }



    Egal ob ich Fraktion 1 oder Fraktion 2 bin... es passiert bei /auf nix... keine nachricht, keine bewegung, bitte um Hilfe...
    ps: hab es auch schon mit else if(IsPlayerInRangeOfPoint... versucht...
    bitte um schnelle hilfe



    //e
    ohhgott bin ich blöd..
    bei [pwn]if(strcmp("auf", cmdtext, true) == 0)
    / vergessen...