ocmd: Medic Heal-Befehl fail !

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • alles falsch



    ocmd:heal(playerid,params[])
    {
    for(new i = 0; i < sizeof(MedicCars); i++) //Statt MedicCars die Variable nehmen die du für die Krankenhaus Fahrzeuge genommen hast
    {
    if(!IsAMedicCar(i) && i == sizeof(MedicCars)-1) //Ungetestet!
    return SendClientMessage(playerid,rot,"Du bist in keinem Krankenhaus-Fahrzeug!");
    new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME];
    if(!isPlayerInFrakt(playerid,2))return 0;
    if(sscanf(params,"ui", pID, money))return SendClientMessage(playerid, Hellblau, "Benutze: /heal [Spieler-ID] [Preis]");
    if(GetPlayerMoney(pID) < money)return SendClientMessage(playerid, Gruen, "Der Spieler hat nicht genügend Geld");
    SetPlayerHealth(pID, 100);
    GivePlayerMoney(playerid, money);
    GivePlayerMoney(pID, -money);
    GetPlayerName(pID, namepID, MAX_PLAYER_NAME);
    GetPlayerName(playerid, nameplayerid, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast %s für $%d geheilt.", namepID, money);
    SendClientMessage(playerid, Orange, string);
    format(string, sizeof(string), "Du wurdest von Medic %s für %d$ geheilt.", nameplayerid, money);
    SendClientMessage(pID, Orange, string);
    return 1;
    }
    return 1;
    }


  • Dies Frisst aber mehr Resourcen da du ja die variable durch gehst.
    Bei mir nimmt er die die er grade Benutz.


    Schick mal dein new medicar da.

  • Nico, deins is TOTAL FAIL !!!
    Millionen Errors...


    Die Version von Moped:

    // Medic Heal
    ocmd:heal(playerid,params[])
    {
    new carid=GetPlayerVehicleID(playerid);
    if(IsAMedicCar(carid))
    {
    new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME];
    if(!isPlayerInFrakt(playerid,2))return 0;
    if(sscanf(params,"ui", pID, money))return SendClientMessage(playerid, HellBlau, "Benutze: /heal [Spieler-ID] [Preis]");
    if(GetPlayerMoney(pID) < money)return SendClientMessage(playerid, Grün, "Der Spieler hat nicht genügend Geld");
    SetPlayerHealth(pID, 100);
    GivePlayerMoney(playerid, money);
    GivePlayerMoney(pID, -money);
    GetPlayerName(pID, namepID, MAX_PLAYER_NAME);
    GetPlayerName(playerid, nameplayerid, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast %s für %d$ geheilt.", namepID, money);
    SendClientMessage(playerid, Orange, string);
    format(string, sizeof(string), "Du wurdest von Medic %s für %d$ geheilt.", nameplayerid, money);
    SendClientMessage(pID, Orange, string);
    return 1;
    }
    return 1;
    }


    und hier die public-variable:

    public IsAMedicCar(carid)
    {
    if(carid >= medicauto[0] && carid <= medicauto[15])
    {
    return 1;
    }
    return 0;
    }



    schenkt mir diesen WUNDERBAREN Error:


    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(380) : error 032: array index out of bounds (variable "medicauto")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Steht irgendwo im Script new medicar[ANZAHL]; und auch unter Ongamemodeinit mediccar[0] = Add.... ?

  • new medicauto[14];


    &



    medicauto[0]=AddStaticVehicleEx(416,1616.59960938,1831.00000000,11.10000038,180.00000000,1,3,999999999); //Ambulance
    medicauto[1]=AddStaticVehicleEx(416,1610.89941406,1830.69921875,11.10000038,180.00000000,1,3,999999999); //Ambulance
    medicauto[2]=AddStaticVehicleEx(416,1605.40002441,1831.00000000,11.10000038,180.00000000,1,3,999999999); //Ambulance


    natürlich hab ich mehr !

  • Dann muss das so


    new medicauto[2];


    public IsAMedicCar(carid)
    {
    if(carid >= medicauto[0] && carid <= medicauto[2])
    {
    return 1;
    }
    return 0;
    }


    oder so bin mir nicht Sicher.


    new medicauto[3];


    public IsAMedicCar(carid)
    {
    if(carid >= medicauto[0] && carid <= medicauto[2])
    {
    return 1;
    }
    return 0;
    }

  • ich hab insgesamt 15 Mediccars.
    So muss er new medicauto[14];


    definen !


    Hast nur 3 Angezeigt also hab ich es nicht gedacht X(


    new medicauto[14];


    public IsAMedicCar(carid)
    {
    if(carid >= medicauto[0] && carid <= medicauto[13])
    {
    return 1;
    }
    return 0;
    }
    oder


    new medicauto[15];


    public IsAMedicCar(carid)
    {
    if(carid >= medicauto[0] && carid <= medicauto[14])
    {
    return 1;
    }
    return 0;
    }