Fraktionsautohaus

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
  • Hiho,


    habe mir das ganze mal vorgenommen im Dialog zu schreiben!


    Kriege dauernt Fehler!


    if(dialogid == DIALOG_FBUYCAR)
    {
    if(response)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast eine Hydra für 5000 $ gekauft!");
    SendClientMessage(playerid,COLOR_RED,"Park das Fahrzeug mit /fpark sonst wird es abgeschleppt...");
    FactionCars[fc][fTuning][slot] = 0;
    FactionCars[fc][520] = CreateVehicle(520,X,Y,Z,0,0,1,-1);
    GetPlayerPos(playerid,X,Y,Z);
    return 1;
    }
    if(listitem == 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast ein Hunter für 50000 $ gekauft!");
    SendClientMessage(playerid,COLOR_RED,"Park das Fahrzeug mit /fpark sonst wird es abgeschleppt...");
    FactionCars[fc][fTuning][slot] = 0;
    FactionCars[fc][522] = CreateVehicle(522,X,Y,Z,0,0,1,-1);
    GetPlayerPos(playerid,X,Y,Z);
    return 1;
    }
    }
    return 1;
    }


    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71793) : error 010: invalid function or declaration
    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71795) : error 010: invalid function or declaration
    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71797) : error 010: invalid function or declaration
    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71804) : error 010: invalid function or declaration
    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71806) : error 010: invalid function or declaration
    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71813) : error 010: invalid function or declaration
    C:\Users\Moritz\Desktop\LoD Script\gamemodes\Release.pwn(71816) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.


    Hoffe es kann einer helfen ^^


    LG


    Moritz

    Einmal editiert, zuletzt von SenTiZz ()

  • Zitat


    FactionCars[fc][522] = CreateVehicle(522,X,Y,Z,0,0,1,-1);
    GetPlayerPos(playerid,X,Y,Z);


    Du Spawnst zuerst das Fahrzeug und fragst dann erst die Pos x,y,z vom Player ab?
    Müsste nicht zuerst die posi gespeichert werden und dann car spawnen ? ;)
    und wenn mich nicht alles täuscht fehen die "new" für die posis



    if(dialogid == DIALOG_FBUYCAR)
    {
    if(response)
    {
    if(listitem == 0)
    {
    new Float:X, Float:Y, Float:Z; //Die New für die Posis zum speichern
    GetPlayerPos(playerid,X,Y,Z); //Fragt die Posi für den Player ab
    FactionCars[fc][fTuning][slot] = 0;
    FactionCars[fc][520] = CreateVehicle(520,X,Y,Z,0,0,1,-1); //Fahrzeug wird gespawnt auf die Posi vom Player
    //bei bedarf dann viel. noch nen PutPlayerInVehicle damit der Spieler gleich im Fahrzeug sitzt
    GivePlayerMoney(playerid, -5000); //Zieht auch gleich das Geld ab vom Spieler
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast eine Hydra für 5000 $ gekauft!");
    SendClientMessage(playerid,COLOR_RED,"Park das Fahrzeug mit /fpark sonst wird es abgeschleppt...");
    return 1;
    }



    Ich hoffe mal das ich das so richtig erklärt hab ^^ und das auch klappt :D
    da ich selber erst vor nen paar Tagen auf Myql angefangen hab zu scripten ;)
    also seit net zu streng wenn es falsch sein sollte ^^

    Scripter Gesucht
    Wir suchen einen Scripter auf den Verlass ist.
    Dieser sollte auch MySQL können.


    TS3 / Page und Server vorhanden!


    Einfach melden ;)

  • Ist jetzt sinnlos das zu Posten weil man hierbei eh keine hilfe kriegt aber trotzdem...


    So soll es beim Dialog geakuft werden das Frakcar:


    if(dialogid == DIALOG_FBUYCAR)
    {
    if(response)
    {
    if(listitem == 0)
    {
    new Float:X, Float:Y, Float:Z;
    new fc;while(fc<sizeof(FactionCars))
    FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid); //Die New für die Posis zum speichern
    GetPlayerPos(playerid,X,Y,Z); //Fragt die Posi für den Player ab
    FactionCars[fc][fCarid] = CreateVehicle(520,X,Y,Z,0,0,1,-1); //Fahrzeug wird gespawnt auf die Posi vom Player
    GivePlayerMoney(playerid, -5000);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast eine Hydra für 5000 $ gekauft!");
    SendClientMessage(playerid,COLOR_RED,"Park das Fahrzeug mit /fpark sonst wird es abgeschleppt...");
    return 1;
    }
    if(listitem == 1)
    {
    new Float:X, Float:Y, Float:Z;
    new fc;while(fc<sizeof(FactionCars))
    FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid); //Die New für die Posis zum speichern
    GetPlayerPos(playerid,X,Y,Z); //Fragt die Posi für den Player ab
    FactionCars[fc][fCarid] = CreateVehicle(522,X,Y,Z,0,0,1,-1); //Fahrzeug wird gespawnt auf die Posi vom Player
    GivePlayerMoney(playerid, -5000);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast eine Hydra für 5000 $ gekauft!");
    SendClientMessage(playerid,COLOR_RED,"Park das Fahrzeug mit /fpark sonst wird es abgeschleppt...");
    return 1;
    }
    }
    return 1;
    }


    Und so beim Public:


    forward FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
    public FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
    if(dialogid == DIALOG_FACTION_CAR_BUY){
    if(response){
    new Float:pPos[3];
    GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
    SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
    TogglePlayerControllable(playerid,true);
    }
    if(!response){
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
    if(IsAllowedFactionToBuy(GetPlayerLeader(playerid))){
    if(GetFactioncarsOfFaction(GetPlayerLeader(playerid)) < MAX_BUY){
    new Carid1 = GetPlayerVehicleID(playerid);
    for(new fbl;fbl<sizeof(FactionBuylist);fbl++){
    if(Carid1 == FactionBuylist[fbl][fbCarid]){
    if(GetPlayerMoney(playerid) >= FactionBuylist[fbl][fbPrice]){
    //if(CallRemoteFunction("Script_GetPlayerMoney","i",playerid) >= FactionBuylist[fbl][fbPrice]){
    for(new fc;fc<sizeof(FactionCars);fc++){
    if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
    FactionCars[fc][fVehid] = FactionBuylist[fbl][fbVehid];
    FactionCars[fc][fPos][0] = FactionBuySpawn[0];
    FactionCars[fc][fPos][1] = FactionBuySpawn[1];
    FactionCars[fc][fPos][2] = FactionBuySpawn[2];
    FactionCars[fc][fPos][3] = FactionBuySpawn[3];
    new Color[2];
    GetDefaultCarColorOfFaction(GetPlayerLeader(playerid),Color[0],Color[1]);
    FactionCars[fc][fCol][0] = Color[0];
    FactionCars[fc][fCol][1] = Color[1];


    FactionCars[fc][fPrice] = FactionBuylist[fbl][fbPrice];
    for(new slot;slot<14;slot++)
    FactionCars[fc][fTuning][slot] = 0;
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    print(">>> Nach dem Autoerstellen!");
    #if defined FACTION_CARS_LOCKABLE
    fLockCar(FactionCars[fc][fCarid]);
    FactionCars[fc][fLocked] = true;
    #endif
    for(new f;f<5;f++)
    {
    FactionCars[fc][fFaction][f] = -255;
    }
    FactionCars[fc][fFaction][0] = GetPlayerLeader(playerid);
    PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
    GivePlayerMoney(playerid, -FactionBuylist[fbl][fbPrice]);
    //CallRemoteFunction("Script_SetPlayerMoney","id",playerid,(CallRemoteFunction("Script_GetPlayerMoney","i",playerid)-FactionBuylist[fbl][fbPrice]));
    new Float:pPos[3];
    GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
    SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
    TogglePlayerControllable(playerid,true);
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Glückwunsch zum neuen Fahrzeug.");
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Bitte vergesse nicht das Fahrzeug mit: '/fpark' umzuparken.");
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Das Fahrzeug steht am Ausgabepunkt bereit!");
    return 1;
    }
    }SendClientMessage(playerid,FACTION_COL_GREY,"Die maximale Anzahl von Fraktionsfahrzeugen ist bereits erreicht.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du hast nicht genügend Geld bei dir!");
    break;
    }
    }
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Deine Fraktion hat das Limit von Fahrzeugen bereits erreicht.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht brechtigt Fraktionsfahrzeuge zu kaufen!");
    new Float:pPos[3];
    GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
    SetPlayerPos(playerid,pPos[0]+2.5,pPos[1]+2.5,pPos[2]);
    TogglePlayerControllable(playerid,true);
    }
    }return 1;
    }return 0;
    }


    Was mach ich falsch?


    Hoffe es kann keiner helfen


    LG


    Moritz

  • Ist jetzt sinnlos das zu Posten weil man hierbei eh keine hilfe kriegt aber trotzdem...


    Entweder du verwehrst Hilfe, oder du lässt dir helfen.
    Da gibt's kein Mittelding....


    Ohne uns zu sagen, welche Zeilen die Error's rauswerfen, kann man kaum helfen(sofern nicht schon gelöst).


    Ich frage mich allerdings, wie du FRAC_OnDialogResponse() aufrufen willst, wenn in dem 1. Code-Abschnitt die public nicht aufrufst.
    Du musst ja irgendwie von der OnDialogResponse() zur FRAC_OnDialogResponse() kommen.
    Nochdazu handelt es sich wohl nicht um die selbe DialogID, da du einmal "dialogid == DIALOG_FBUYCAR" und einmal "dialogid == DIALOG_FACTION_CAR_BUY" hast.
    Das sind doch 2 nicht zusammengehörende Skriptteile, oder?
    Du musst schon genauer erörtern, was du gelöst haben willst.

    Recommended server:

  • Sofern ich dich richtig verstanden habe, musst du die beiden Skriptteile - logischwer Weise - ein Verbindung miteinander bringen.
    Ich empfehle dir, dass du alle Abfragen etc. in FRAC_OnDialogResponse abwickelst, so hast du alles kompakt zusammen.


    Also in OnDialogResponse:
    if(dialogid == DIALOG_FBUYCAR)
    {
    FRAC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
    return 1;
    }


    Darauf hin kannst du alles in FRAC_OnDialogResponse abwickeln.
    Somit kannst du die Abfrage "dialogid == DIALOG_FACTION_CAR_BUY" löschen, da diese public eh nur aufgerufen wird, wenn es sich um den Dialog DIALOG_FBUYCAR handelt.
    Vergiss jedoch nicht, dass du dort halt noch die Zeilen von (listitem == 0){...} und if(listitem == 1){...} ebenfalls in die FRAC_OnDialogResponse packen musst.

    Recommended server:

  • Habe das alte wieder rein gemacht, scripte bald ein eigenes,


    aber nun noch ein Problem, wie mache ich ein /ofpark befehl?


    so is mein befehl bis jetzt:


    if (strcmp("/ofpark", cmd, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24 || PlayerInfo[playerid][pMember] == 1 ||PlayerInfo[playerid][pLeader] == 1)
    {
    if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
    return 1;
    }
    new fc;while(fc<sizeof(FactionCars))
    GetVehiclePos(FactionCars[fc][fCarid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2]);
    GetVehicleZAngle(FactionCars[fc][fCarid],FactionCars[fc][fPos][3]);
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fahrzeug Erfolgreich abgeschleppt...");
    }
    }
    return 1;
    }


    Das der /fpark


    if(strcmp(cmdtext,"/fpark",true)==0){
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
    new fc;while(fc<sizeof(FactionCars)){
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611){
    if(GetPlayerVehicleID(playerid) == FactionCars[fc][fCarid]){
    if(GetPlayerAdmin(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[fc][fFaction][0]){
    GetVehiclePos(FactionCars[fc][fCarid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2]);
    GetVehicleZAngle(FactionCars[fc][fCarid],FactionCars[fc][fPos][3]);
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich umgeparkt.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist dazu nicht berechtigt.");
    return true;
    }
    }fc++;
    }SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fraktionsfahrzeug.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du sitzt in keinem Fahrzeug oder bist nicht der Fahrer.");
    return true;
    }


    Es geht irgendwie nicht kriege keine Message garnix...


    LG


    Moritz

    Einmal editiert, zuletzt von SenTiZz ()