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
  • Hey Leute,


    beim Compilen von dem hier, bekomme ich immer 1 Error:



    // Medic Heal
    ocmd:heal(playerid,params[])
    {
    if(IsPlayerInVehicle(playerid,medicauto))//Zeile 435
    {
    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;
    }


    Der Error:
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(435) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.



    Was ist Falsch ?

  • Du musst "medicauto" definieren.


    //Edit : Ich glaube mal new medicauto[MAX_PLAYER_VEHICLES];
    Aber das mit den MAX_PLAYER_VEHICLES ist wahrscheinlich falsch, musst du herausfinden.
    Mir fällt die Definition grad nicht ein...

    Mit unfreundlichen Grüßen
    Buschmensch

  • Neeein
    Du musst bei deinem Command wo deine ganzen new's sind auch
    new pID, string[128], money, namepID[MAX_PLAYER_NAME], nameplayerid[MAX_PLAYER_NAME], medicauto[MAX_VEHICLES];
    machen.


    Aber mit dem [MAX_VEHICLES]; bin ich mir nicht sicher, musst raus finden.


    // Edit : Wenn du 14 Autos hast musst du bei new medicauto[14]
    anstatt 14
    new medicauto[15]
    machen.


    Weil man immer von 0 anfängt zu zählen.

    Mit unfreundlichen Grüßen
    Buschmensch

  • C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(437) : warning 219: local variable "medicauto" shadows a variable at a preceding level
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(437) : warning 204: symbol is assigned a value that is never used: "medicauto"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • ocmd:heal(playerid,params[])
    {
    new medicauto[MAX_VEHICLES];
    if(IsPlayerInVehicle(playerid,medicauto))
    {
    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;
    }



    Also so müsste es gehen, bei dir stimmt irgendwas in der if(IsPlayerInVehicle(playerid,medicauto)) nicht!

    Mit unfreundlichen Grüßen
    Buschmensch

  • Du kannst eine Variabel nicht zwei mal definieren -.-
    du hast sie ja schon global definiert das reicht auch, das ist völliger Quatsch, das du die Variable im Command nochmal definierst.


    MfG, SrBiN15

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • mach es so:


    new medicauto[ANZAHL];
    forward IsAMedicCar(carid);



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



    ocmd:heal(playerid,params[])
    {
    new carid= GetPlayerVehicleID(playerid);
    if(medicauto(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, 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;
    }

  • C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(378) : error 032: array index out of bounds (variable "medicauto")
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(469) : error 012: invalid function call, not a valid address
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(469) : warning 215: expression has no effect
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(469) : error 001: expected token: ";", but found ")"
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(469) : error 029: invalid expression, assumed zero
    C:\Users\Joshua.haus-pc\Desktop\SAMP Server\gamemodes\LV-RP.pwn(469) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    /edit


    Zeile 469
    if(medicauto(carid))

  • ups sry so :D



    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, 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;
    }


  • if(carid >= medicauto[0] && carid <= medicauto[15]) vllt so

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen