Beiträge von ENEF

    Okey also es kommt


    PHP
    [00:39:38] Vor GetFrakVehicleIdx: 0
    [00:39:38] i: -1
    [00:39:44] Vor GetFrakVehicleIdx: 0
    [00:39:44] i: -1
    [00:39:59] Vor GetFrakVehicleIdx: 0
    [00:39:59] i: -1


    Und komischerweise spawnt mein Auto immer mega schief obwohl doch R gespeichert wird :/

    Leider wird keine Fraktion rausgeworfen :/


    Und ps:
    new i = GetFrakVehicleIdx(GetPlayerVehicleID(playerid));
    if(i != -1)
    {
    if(VehInfo[i][Abgeschleppt] == 1)
    {
    new string[145];
    format(string, sizeof(string),"Preis %i€ \nGrund: %s",VehInfo[i][Preis],VehInfo[i][Grund]);
    ShowPlayerDialog(playerid,DIALOG_aPARK,DIALOG_STYLE_MSGBOX,"Strafzettel",string,"Freikaufen","Abbrechen") ;
    }
    }


    Es funktioniert irgendwie nicht :/
    Auch als ich SendClientMessage drin hatte ging nichts :/

    Perfekt :)


    Ja hab es noch gemerkt :)
    Danke :)


    Problem 2/4 hab ich dann doch noch alleine geschafft :)


    ich teste mal alles :)


    Kurze frage, irgendwie geht mein Fraksystem nicht also jeder kann fast mit jedem auto fahren..
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(IsPlayerInAllowedFrakVeh(playerid, 1))
    if(SpielerInfo[playerid][pTeam] != 1 && isinADAC[playerid] != 1) {
    SendClientMessage(playerid,hinweis1,"Du hast keinen Schlüssel!");
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true); }


    und zweites
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    //____Polizei(1)___//
    if(newstate == PLAYER_STATE_DRIVER) {
    if(IsPlayerInAllowedFrakVeh(playerid, 1))
    if(SpielerInfo[playerid][pTeam] != 1 && isinADAC[playerid] != 1)
    {
    SendClientMessage(playerid, hinweis1, "Du bist kein Polizist!");
    return RemovePlayerFromVehicle(playerid);
    }
    }
    //____Sanitäter(2)___//
    else if(newstate == PLAYER_STATE_DRIVER) {
    if(IsPlayerInAllowedFrakVeh(playerid, 2))
    if(SpielerInfo[playerid][pTeam] != 2 && isinADAC[playerid] != 1)
    {
    SendClientMessage(playerid, hinweis1, "Du bist kein Sanitäter/Arzt!");
    return RemovePlayerFromVehicle(playerid);
    }
    }



    /Edit


    Ich steige in das Auto und bekomme leider keine Nachricht :/

    Natürlich, nur findet er die AMX von deinem Gamemode nicht(Falls ich falsch liege bitte verbessern)


    [23:01:08] Script[gamemodes/GeTmyselfmade.amx]: Run time error 19: "File or function is not found"

    Also kleiner Bericht :)
    Die oPark funktion funktioniert teilweise, undzwar wird die neue Position nicht in der Datenbank gespeichert, du hast nämlich ne kleinigkeit vergessen aber ich glaube meins ist etwas Falsch :D
    Schau
    ocmd:opark(playerid, params[])
    {
    new preis, grund[34], string[128];
    new Float:NeuX,Float:NeuY,Float:NeuZ,Float:NeuR;
    if(sscanf(params,"is",preis,grund))return SendClientMessage(playerid, Color_Green,"Benutzung: /opark [Preis][Grund]");
    if(SpielerInfo[playerid][pTeam] != 5) return SendClientMessage(playerid, hinweis1,"Du bist kein Mitglied des ADAC's!");
    if(isinADAC[playerid] != 1) return SendClientMessage(playerid, hinweis1, "Du bist nicht in der ADAC Zone!");
    else if(preis < 0 || preis > 1000) return SendClientMessage(playerid, hinweis1,"Du kannst das Bußgeld nicht weniger als 0 und mehr als 1000 kosten lassen!");
    {
    new i = GetFrakVehicleIdx(GetPlayerVehicleID(playerid));
    if(i == -1) return SendClientMessage(playerid, hinweis1, "Du bist nicht in einem abschleppbaren Auto!");
    format(VehInfo[i][Grund], 32, grund);
    GetPlayerPos(playerid,NeuX,NeuY,NeuZ,NeuR);//1 warning 202: number of arguments does not match definition
    VehInfo[i][Preis] = preis;
    VehInfo[i][Abgeschleppt] = 1;
    VehInfo[i][NewX] = NeuX;//Von hier
    VehInfo[i][NewY] = NeuY;
    VehInfo[i][NewZ] = NeuZ;
    VehInfo[i][NewR] = NeuR;//Bis hier vergessen
    format(string, sizeof(string),"|Strafzettel| Preis %i€ Grund: %s",preis,grund);
    SendClientMessage(playerid, Color_Green, string);
    SaveVehicle(i);
    }
    return 1;
    }


    So, jetzt hab ich ne kleine Frage undzwar, weiß das System dass wenn Abgeschleppt auf 1 ist, dass auto auch bei New spawnen soll?


    Und wäre das richtig?(nur ein kleiner test) Weil ich bekomme keine Nachricht im auto..
    new i = GetFrakVehicleIdx(GetPlayerVehicleID(playerid));
    new grund = VehInfo[i][Grund], preis = VehInfo[i][Preis], string[128];
    if(i == 1)
    if(VehInfo[i][Abgeschleppt] == 1) {
    format(string, sizeof(string),"|Strafzettel| Preis %i€ Grund: %s",preis,grund);
    SendClientMessage(playerid, Color_Green, string);
    }
    //EDIT
    Kleiner bericht, die Warning geht weg wenn ich es ohne "NeuR" mache, aber es wird in der datenbank sonst alles jetzt gespeichert.
    Wie mach ich das jetzt am besten? achja hab ne kleine abfrage gemacht ist die richtig?
    if(VehInfo[i][Abgeschleppt] != 1){
    return VehInfo[i][veh_ID] = CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20
    }
    else
    {
    VehInfo[i][veh_ID] = CreateVehicle(VehInfo[i][ModellID],VehInfo[i][NewX],VehInfo[i][NewY],VehInfo[i][NewZ],VehInfo[i][NewR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20
    }
    }


    PS: Wenn ich in ein Abgeschlepptes auto steige kommt immer noch keine Meldung -.-


    MfG

    Okey nur eine Warning und zwar beim Laden stock


    if(added) SaveVehicles(i);


    Wenn mit "i" ist es nicht definiert und wenn ohne
    warning 202: number of arguments does not match definition


    Und wie frag ich dann ab, wenn ein spieler das auto betritt ob es einen strafzettel hat?
    und wie viel er zahlen muss und so

    Der soll in dem Auto sein, da er in seiner Zone ja alle Fahrzeuge fahren darf.
    ich nutze den Stock :)


    Hier
    stock SaveVehicles()
    {
    new string[34];
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    mysql_SetInt("Auto", "ModellID", VehInfo[i][ModellID], "ID", string);
    mysql_SetInt("Auto", "Fraktion", VehInfo[i][Fraktion], "ID", string);
    mysql_SetFloat("Auto", "PosX", VehInfo[i][PosX], "ID", string);
    mysql_SetFloat("Auto", "PosY", VehInfo[i][PosY], "ID", string);
    mysql_SetFloat("Auto", "PosZ", VehInfo[i][PosZ], "ID", string);
    mysql_SetFloat("Auto", "PosR", VehInfo[i][PosR], "ID", string);
    mysql_SetInt("Auto", "Abgeschleppt", VehInfo[i][Abgeschleppt], "ID", string);
    mysql_SetInt("Auto", "inADAC", VehInfo[i][inADAC], "ID", string);
    mysql_SetInt("Auto", "Preis", VehInfo[i][Preis], "ID", string);
    mysql_SetString("Auto", "Grund", VehInfo[i][Grund], "ID", string);
    mysql_SetFloat("Auto", "NewX", VehInfo[i][NewX], "ID", string);
    mysql_SetFloat("Auto", "NewY", VehInfo[i][NewY], "ID", string);
    mysql_SetFloat("Auto", "NewZ", VehInfo[i][NewZ], "ID", string);
    mysql_SetFloat("Auto", "NewR", VehInfo[i][NewR], "ID", string);
    mysql_SetInt("Auto", "Farbe1", VehInfo[i][Farbe1], "ID", string);
    mysql_SetInt("Auto", "Farbe2", VehInfo[i][Farbe2], "ID", string);


    }
    return 1;
    }

    Okey also gut, ich hab jetzt mal da "Grundgerüst" erstellt.


    ocmd:opark(playerid, params[])
    {
    new preis, grund[34];
    if(sscanf(params,"is",preis,grund))return SendClientMessage(playerid, Color_Green,"Benutzung: /opark [Preis][Grund]");
    if(SpielerInfo[playerid][pTeam] != 5) return SendClientMessage(playerid, hinweis1,"Du bist kein Mitglied des ADAC's!");
    if(isinADAC[playerid] != 1) return SendClientMessage(playerid, hinweis1, "Du bist nicht in der ADAC Zone!");
    else if(preis < 0 || preis > 1000) return SendClientMessage(playerid, hinweis1,"Du kannst das Bußgeld nicht weniger als 0 und mehr als 1000 kosten lassen!");
    {
    //Hier soll ja dann einfach nur der Preis und den Grund für das jeweilige Auto gespeichert werden
    //abgeschleppt auf 1
    }
    return 1; }


    Und dann halt ich denke mal bei onplayerentervehicle dann eine abfrage ob das auto abgeschleppt ist und dann soll sich ein dialog öffnen, wo der preis und der grund drin ist und wenn man bezahlt soll abgeschleppt auf 0 gestellt werden

    Jo Errors und Warnings weg.


    Wie erstelle ich jetzt den befehl für das ADAC und für die, wo ihr Auto freikaufen wollen?


    Adac geht in das auto und macht /opark [Grund] [Preis]
    Spieler steigt in ein Auto (zb cop ins copcar)
    Möchtest du das auto freikaufen?
    [grund][prei]

    Also jetzt kommt ne Warnin


    VehInfo[i][veh_ID] = CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20
    warning 213: tag mismatch


    Und auch hier
    stock IsPlayerInAllowedFrakVeh(playerid, frak)
    {
    new vehid = GetPlayerVehicleID(playerid);
    new idx = -1;
    for(new i=0; i<sizeof(VehInfo); i++)
    {
    if(VehInfo[i][veh_ID] == vehid)//hier tag mismatch
    {
    idx = i;
    break;
    }
    }
    if(idx == -1) return 0;
    if(VehInfo[idx][Fraktion] != frak) return 0;
    return 1;
    }


    Sonst kommt nichts :)

    Okey, und was wenn ich nur fragen will, ob es ein cop car ist ?


    soll ich dann
    new frakid = VehInfo[GetPlayerVehicleID(playerid)][Fraktion]
    if(frakid[playerid] != 1) {
    return RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, hinweis1, "Du bist kein Polizist!"); }


    Oder wie?


    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(!VehInfo[GetPlayerVehicleID(playerid)][Fraktion] && isinADAC[playerid] != 1) {
    SendClientMessage(playerid,hinweis1,"Du hast keinen Schlüssel!");
    return RemovePlayerFromVehicle(playerid);
    }
    }


    So funktioniert es nicht, es können alle rein und wenn ich das ! weg mache kann garkeiner rein..

    Ja gut, jetzt ist alles wieder beim alten und alle Fahrzeuge stehen da wo sie sollen :)


    Jetzt nur noch um auf die abfrage zurück zu kommen.


    Wie kann ich definieren das zb Auto 1 von den Cops gefahren wird?

    Hi Jeffry.
    Es Funktioniert jetzt alles soweit, danke :)(wo soll ich den dein Code austauschen? Bei welcher schleife)


    Nur Manche Fahrzeuge spawnen einfach doppelt aufeinander?
    Liegt es vielleicht daran das bei OneGamemodeinit auch noch mal ein Auto erstellt wird? Aber das ist ja ein muss?
    Und meine Tore, bzw Objecte sind jetzt einfach nicht mehr da? Hab 71 Autos eingefügt brauch ich vielleicht ein Streamer oder so?


    MfG



    //Hier der code von dem CreateVehicle in OnGameModeInit
    for(new g;g<MAX_VEHICLES;g++)
    {
    CreateVehicle(FrakAutos[g][ModellID],FrakAutos[g][PosX],FrakAutos[g][PosY],FrakAutos[g][PosZ],FrakAutos[g][PosR],FrakAutos[g][Farbe1],FrakAutos[g][Farbe2],-1);//250
    }

    perfekt :)


    hier new FrakAutos[][VehEnum] =
    {
    //ModelID, Frak, X,Y,Z,Farbe1,Farbe2
    {597,-1595.8781,693.9594,-5.4741,180.1654, 198, 1},//zeile 123
    {597,-1595.8781,693.9594,-5.4741,179.5844, 198, 1}//zeile 123


    };

    Nur noch hier:


    CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20


    warning 213: tag mismatch

    enum VehEnum {
    ModellID,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Float:PosR,
    Farbe1,
    Farbe2,
    Fraktionp
    }
    enum VehDaten
    {
    ModellID,
    Fraktion,
    Float: PosX,
    Float: PosY, // Das sollen die Koord. sein wo es üblicherweiße Spawnt bsp SFPD
    Float: PosZ,
    Abgeschleppt,//Falls auf 1 darf es nicht mehr bei dem üblichen Spawn spawnen!
    inADAC,//Das es in der ADAC Zone ist und die ADAC'ler vollsten Zugriff auf das Fahrzeug haben
    Preis,
    Grund[32],
    Float: NewX,
    Float: NewY,//Stattdessen soll es hier Spawnen(Da wo der ADAC /oPark gemacht hat)
    Float: NewZ
    }


    Damit du es unterscheiden kannst :)


    Von Was brauchst du noch Daten?


    PS: Hab Warnings
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1818) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1818) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1819) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1819) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 217: loose indentation
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1820) : warning 213: tag mismatch
    C:\Users\Tobi\Desktop\samp03z_svr_R1_win32\gamemodes\newrl.pwn(1802) : warning 204: symbol is assigned a value that is never used: "query"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Warnings.
    stock LoadVehicles()
    {
    new string[3], query[128], bool:added;//02
    for(new i=0; i < MAX_VEHICLES; i++)
    {
    format(string, sizeof string, "%d", i);
    format(VehInfo[i][Grund], 32, mysql_GetString("Autos", "Grund", "ID", string));
    VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
    VehInfo[i][Fraktion] = mysql_GetInt("Auto", "Fraktion", "ID", string);
    VehInfo[i][PosX] = mysql_GetFloat("Auto", "PosX", "ID", string);
    VehInfo[i][PosY] = mysql_GetFloat("Auto", "PosY", "ID", string);
    VehInfo[i][PosZ] = mysql_GetFloat("Auto", "PosZ", "ID", string);
    VehInfo[i][Abgeschleppt] = mysql_GetInt("Auto", "Abgeschleppt", "ID", string);
    VehInfo[i][inADAC] = mysql_GetInt("Auto", "inADAC", "ID", string);
    VehInfo[i][Preis] = mysql_GetInt("Auto", "Preis", "ID", string);
    VehInfo[i][NewX] = mysql_GetFloat("Auto", "NewX", "ID", string);
    VehInfo[i][NewY] = mysql_GetFloat("Auto", "NewY", "ID", string);
    VehInfo[i][NewZ] = mysql_GetFloat("Auto", "NewZ", "ID", string);
    VehInfo[i][Farbe1] = mysql_GetFloat("Auto", "Farbe1", "ID", string);//18
    VehInfo[i][Farbe2] = mysql_GetFloat("Auto", "Farbe2", "ID", string);//19
    CreateVehicle(VehInfo[i][ModellID],VehInfo[i][PosX],VehInfo[i][PosY],VehInfo[i][PosZ],VehInfo[i][PosR],VehInfo[i][Farbe1],VehInfo[i][Farbe2],-1);//20

    }
    if(added) SaveVehicles();
    return 1;
    }