Beiträge von German_ScripterHD

    Hallo Brotfische,


    Ich möchte ein System machen das nur bestimmte Anzahl von Fahrzeugen haben kann...
    Nun möchte ich 2 Sachen fragen:
    - Wie kann man in der Datenbank abfragen wie viel Fahrzeuge der Spieler hat?


    und


    - Wie kann man das einstellen das man in Level 1, 2 Autos haben kann in Level 4, 3 Autos usw...


    Datenbank Bild:


    Auto Tabelle:



    Auto Tabelle Struktur:



    User Tabelle:



    User Tabelle Struktur:



    Noch die enum´s:


    enum carEnum{
    id_x,
    model,
    besitzer,
    fraktion,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    db_id,
    Locked[MAX_VEHICLES]
    //usw....
    }
    new cInfo[10000][carEnum];


    enum playerInfo{
    eingeloggt,
    level,
    geld,
    db_id,
    alevel,
    fraktion,
    rang,
    spawnchange,
    prison,
    wanted
    }
    new sInfo[MAX_PLAYERS][playerInfo];



    Ich hoffe es kann mir jemand helfen :)



    -

    Danke, aber wie kann man das jetzt richtig auslesen?...
    Meine Spieler Tabelle heißt "user" und im script habe ich die Mysql Datenbank Daten als "mysqlconnect" defint.


    Codes: (ich weiß nicht ob das richtig ist, denke mal nicht :huh: )


    ocmd:showplayers(playerid)
    {
    new string[500];
    format(string,sizeof(string),"Auf dem Server sind %d Spieler registriert.", cache_get_field_count());
    SendClientMessage(playerid,Farbe1,string);
    return 1;
    }


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD

    Hallo Brotfische,


    Ich habe eine Frage zu Mysql, ich möchte ingame ein Befehl machen z.B: "/registered".
    Bei dem Befehl soll man dann Angezeigt bekommen wie viele Zeilen (User) es in der Tabelle gibt.


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD

    Hallo Brotfische,


    Ich habe ein Problem mit meinem Kennzeichen System. Undzwar wenn ich jetzt "/kennzeichen TestHD" eingebe wird das auf das Kennzeichen geschrieben:



    Es wird auch in der Datenbank gespeichert:



    Also muss es ja am laden liegen...


    Codes:


    public OnPlayerCarsLoad(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
    cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
    cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
    cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
    cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
    cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
    SetVehicleNumberPlate(cInfo[id][id_x],cInfo[id][kennzeichen]);
    SetVehicleToRespawn(cInfo[id][id_x]);
    }
    return 1;
    }


    getFreeCarID()
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)return i;
    }
    return 0;
    }


    enum carEnum{
    id_x,
    model,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    db_id,
    kennzeichen[35]
    }


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD

    Hallo Brotfische,


    Ich biete mich hiermit als Mapper & Scripter an.


    Meine Fachgebiete:
    - Normale Mapping´s
    - Mapping´s mit Texturierung
    - Mapping´s mit Script (Tore usw.)
    - Script Systeme aller Art...


    Wie funktionert es?
    Ihr gebt mir euren Wunsch ab, ich werden ihn versuchen zu verwirklichen, ich sag euch dann zuvor was es ca. kostet.
    Ihr könnt dann entscheiden ob ihr das machen wollt.
    Die Bezahlung läuft folgender maßen ab:
    - Ich zeige euch das Mapping wenn ihr zufrieden seit, wird bezahlt.
    - Sollte was nicht gefallen, wird das natürlich geändert.


    Preise:
    - Mapping:
    - kleine Mapping´s ca.5-10€
    - größere Mapping´s ca. 10-15€
    - Script Systeme + (Installation)
    - kleine Systeme ca.10-15€
    - größere Systeme ca. 15-30€


    Kontakt möglichkeiten:
    - Email: germanscripterhd.breadfish@web.de
    - Skype Name wird per Email gesendet.
    - Privat Nachricht (PN)


    MFG GermanScripterHD


    //edit: Rechtschreibfehler


    _______________________________________________________________________________________________________________________________________________________



    ______
    Unverbindlicher Hinweis: Die Sicherheit einer Transaktion kann am besten durch die Einschaltung eines Mittelsmannes gewährleistet werden. Weitere Informationen dazu gibt es hier.

    Hallo Moonraker136,


    Ich habe dir mal einen Fraktionschat gescriptet, du solltest dazu das Include "ocmd" haben und das Plugin "sscanf".
    Bitte passe den Code noch an dein Script an.



    ocmd:f(playerid,params[])
    {
    if(isPlayerInFrakt(playerid, 0))return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner Fraktion.");
    new string[300];
    if(sscanf(params, "s[300]", string))return SendClientMessage(playerid, COLOR_RED, "Nutzung: /f [TEXT]");
    new frakID = sInfo[playerid][fraktion];
    format(string,sizeof(string), "** %s: %s", getPlayerName(playerid), string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!isPlayerInFrakt(i, frakID))continue;
    SendClientMessage(i, COLOR_BLUE, string);
    }
    return 1;
    }


    Ich hoffe ich konnte helfen :)


    MFG German_ScripterHD

    Danke geht zwar jetzt alles, aber ich möchte, das das näheste Auto im Umkreis von 20 Metern aufgeschlossen wird.... da IsPlayerInRangeOfPoint (Zeile: ) nicht so gut ist... :D


    Neueste Codes:


    ocmd:vehiclelock(playerid,params[])
    {
    new veh = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3];
    for(new i=0;i<MAX_PLAYERS; i++)
    {
    GetVehiclePos(i, Pos[0], Pos[1], Pos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
    {
    veh = i;
    break;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    veh = GetPlayerVehicleID(playerid);
    }
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,COLOR_RED,"Es befindet sich keines deiner Fahrzeuge in der Nähe.");
    if(sInfo[playerid][alevel] > 0 || cInfo[veh][besitzer] == playerid)
    {
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    GameTextForPlayer(playerid, (vehdoor)?("~w~Fahrzeug ~g~aufgeschlossen"):("~w~Fahrzeug ~g~abgeschlossen"), 3000, 5);
    PlaySoundForPlayer(playerid,1147);
    SetTimerEx("PlaySoundForPlayer",500,0,"id",playerid,1147);
    if(vehdoor!=0) vehdoor = 0;
    else vehdoor = 1;
    SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    }
    else
    {
    return SendClientMessage(playerid,COLOR_RED,"Das Auto gehört dir nicht.");
    }
    return 1;
    }

    Vielen Dank :D


    Es geht jetzt :)

    aber eine Frage habe ich noch ^^


    Ich will das Admins auch die Autos von anderen Öffnen können, aber wie mache ich das?


    Nochmal die neusten Codes:


    ocmd:vehiclelock(playerid,params[])
    {
    new veh = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3];
    for(new i=0;i<MAX_PLAYERS; i++)
    {
    GetVehiclePos(i, Pos[0], Pos[1], Pos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
    {
    veh = i;
    break;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    veh = GetPlayerVehicleID(playerid);
    }
    if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,COLOR_RED,!"Es befindet sich keines deiner Fahrzeuge in der Nähe.");
    new engine,lights,alarm,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    GameTextForPlayer(playerid, (vehdoor)?("~w~Fahrzeug ~g~aufgeschlossen"):("~w~Fahrzeug ~g~abgeschlossen"), 3000, 5);
    PlaySoundForPlayer(playerid,1147);
    SetTimerEx("PlaySoundForPlayer",500,0,"id",playerid,1147);
    if(vehdoor!=0) vehdoor = 0;
    else vehdoor = 1;;
    SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
    return 1;
    }

    stock GetOwnVehicle(playerid)
    {
    new t;
    for(new i,Float:p[3],Float:tmp=999.0,Float:z; i<sizeof(cInfo); i++) {
    if(cInfo[i][besitzer]!=sInfo[playerid][db_id]) continue;
    GetVehiclePos(cInfo[i][id_x],p[0],p[1],p[2]);
    z = GetPlayerDistanceFromPoint(playerid,p[0],p[1],p[2]);
    if(z < tmp) tmp=z,t=i;
    }
    return (!t)?INVALID_VEHICLE_ID:t;
    }

    Ich habe den Befehl 3 mal eingegeben, und das hat die Console mir geprintet :)


    vehdoor war: -1
    vehdoor ist: 1 (veh: 3)
    vehdoor war: 1
    vehdoor ist: 1 (veh: 3)
    vehdoor war: 1
    vehdoor ist: 1 (veh: 3)


    Und es wird immernoch nicht abgeschlossen...

    Hier...


    ocmd:autoparken(playerid,params[])
    {
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,C_Error,"Du bist nicht in einem Fahrzeug.");
    new veh = GetPlayerVehicleID(playerid);
    for(new i=0; i<sizeof(cInfo); i++) //evlt. halt cInfo an dein Script anpassen...
    {
    if(cInfo[i][Fahrzeugid] != veh)continue;
    GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]);
    GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]);
    new query[256];
    format(query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]);// Datenbank "autos" an dein Script anpassen.
    mysql_function_query(dbhandle,query,false,"",""); //dbhandel anpassen...
    return SendClientMessage(playerid,-1,"Fahrzeug wurde geparkt.");
    }


    return 1;
    }


    Ich hoffe ich konnte dir weiterhelfen :) (Denk daran die Sachen an dein Script anzupassen!)


    MFG German_ScripterHD