OCMD wieder in strcmp?

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
  • Hi Leute,
    Ich habe leider keine Ahnung wie ich meine 4 ocmd commands in strcmp umwandle,
    kann mir wer helfen?


    ocmd:erstellen(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateHaus(x,y,z,150000,"Keiner",strval(params));
    return 1;
    }


    ocmd:exit(playerid,params[])
    {
    if(inHaus[playerid] == -1)return SendClientMessage(playerid,0x00FF00,"Du bist in keinem Haus!");
    new haus = inHaus[playerid];
    new innenraum = HausInfo[haus][haus_innenraum];
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]))return SendClientMessage(playerid,0x00FF00,"Du bist nicht am Ausgang!");
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,0x00FF00,"Du hast das Haus verlassen!");
    inHaus[playerid] = -1;
    return 1;
    }


    ocmd:kaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,0x00FF00,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Keiner",false))return SendClientMessage(playerid,0x00FF00,"Dieses Haus steht nicht zum Verkauf!");
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,0x00FF00,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]);
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus);
    dini_Set(pfad,"besitzer",name);
    KillHaus(haus);
    LoadHaus(haus);
    }
    }
    return 1;
    }



    ocmd:enter(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]);
    SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
    inHaus[playerid] = haus;
    }
    else SendClientMessage(playerid,0x00FF00,"You are not allow to enter this house!");
    }
    }
    return 1;
    }


    lg

  • Was gibt man denn ein? /erstellen [Haus-ID] [Hausname]?
    Musst schon dazusagen^^


    //edit: Außerdem, was ist dein Stock für CreateHaus?
    Das was ich kenne hat nur 5 Parameter, deins 6

  • Und wofür ist dann hier
    CreateHaus(x,y,z,150000,"Keiner",strval(params));
    das strval(params) ?


    //edit: Oben nicht
    if(strcmp(cmdtext,"/befehl",true) == 0))
    sondern
    if(strcmp(cmd,"/befehl",true) == 0)) oder if(!strcmp(cmd,"/befehl",true)))


    Denn mit cmdtext arbeitet strcmp case sensitive, sprich wenn du im script den cmd so schreibst "/befehl" und ingame so: "/beFehl" dann steht unknown command

  • SObald ich bei dem Command /erstellen strcmp mache bekomme ich
    diese Error's :


    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(71) : error 010: invalid function or declaration
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(74) : error 021: symbol already defined: "GetPlayerPos"
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(75) : error 010: invalid function or declaration
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(75 -- 76) : error 010: invalid function or declaration
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(156) : warning 219: local variable "x" shadows a variable at a preceding level
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(156) : error 025: function heading differs from prototype
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(157) : error 021: symbol already defined: "CreateHaus"
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(178) : warning 203: symbol is never used: "x"
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(178) : warning 203: symbol is never used: "y"
    C:\Users\Vitalij\Desktop\Games\GTA-SA\filterscripts\house.pwn(178) : warning 203: symbol is never used: "z"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.

  • Ok,


    if(strcmp(cmd,"/erstellen",true) == 0)) //error 010: invalid function or declaration
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);//error 021: symbol already defined: "GetPlayerPos"
    CreateHaus(x,y,z,150000,"Keiner",strval(params));//error 010: invalid function or declaration
    return 1;
    }


    stock CreateHaus(Float:x,Float:y,Float:z,preis,besitzer[32],innenraum) // Zeile 156
    { // Zeile 157
    new pfad[50];
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    format(pfad,50,"/haus/%d.txt",haus);
    if(!fexist(pfad))
    {
    dini_Create(pfad);
    dini_FloatSet(pfad,"x",x);
    dini_FloatSet(pfad,"y",y);
    dini_FloatSet(pfad,"z",z);
    dini_IntSet(pfad,"preis",preis);
    dini_Set(pfad,"besitzer",besitzer);
    dini_IntSet(pfad,"preis",preis);
    dini_Set(pfad,"besitzer",besitzer);
    dini_IntSet(pfad,"innenraum",innenraum);
    return LoadHaus(haus);
    }
    }
    return 1;
    }


    Zeile 178 ist gar nicht mit bei, bei 177 endet's ...


    lg

  • Du mussst das:
    if(strcmp(cmd,"/erstellen",true) == 0)) //error 010: invalid function or declaration
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);//error 021: symbol already defined: "GetPlayerPos"
    CreateHaus(x,y,z,150000,"Keiner",strval(params));//error 010: invalid function or declaration
    return 1;
    }
    Bei OnPlayerCommandText reintun