Beiträge von pierre65

    Naja zurück zum Thema...:


    Ich hab dass so gemacht das die PlayerID vom User beim laden in eine Variable gespeichert wird (pInfo[playerid][pUserID]), dass ist dann die ID in der Datenbank die ja nur einmalig vergeben wird.
    Außerdem sind ja bei den Autos auch die Owner gespeichert (z.b. ownerID), wenn du die ID auch in die Autovariable speicherst kannst du die beiden Abfragen, wenn die gleich sind gehört ihm wohl das Auto.^^
    Um es mal zu demonstrieren:

    pInfo[playerid][pUserID] = 5;
    vInfo[vehicleid][pOwnerID] = 3;
    if ( vInfo[vehicleid][pOwnerID] == pInfo[playerid][pUserID] ) { /* sein auto */ }
    else { /* nicht sein auto */ }

    Versuch mal das:

    for(new i;i<MAX_PLAYERS;i++)
    {
    new Float:gcarx, Float:gcary, Float:gcarz;
    GetVehiclePos(gangsterid,gcarx,gcary,gcarz);
    if(MusikOn == 1)
    {
    printf("GetPVarInt");
    if(GetPVarInt(i, "Musik") == 0)
    {
    printf("IsPlayerInRangeOfPoint");
    new printtext[128];
    format(printtext,sizeof(printtext),"Das gangsterauto ist bei X = %f Y = %f Z = %f",gcarx,gcary,gcarz);
    printf(printtext);
    if(IsPlayerInRangeOfPoint(i,15,gcarx,gcary,gcarz))
    {
    printf("StreamStart");
    PlayAudioStreamForPlayer(i,"http://paranormal-rp.05e.de/intro/gangsters.mp3");
    SetPVarInt(i, "Musik", 1);
    }
    else
    {
    printf("StopStream");
    StopAudioStreamForPlayer(i);
    SetPVarInt(i, "Musik", 0);
    }
    }
    }
    }

    Denke mal der Fehler liegt an LoadPlayer...
    Bin mir nicht ganz sicher, aber so sollte es denke mal funktionieren:

    stock LoadPlayer(playerid)
    {
    strcat(sInfo[playerid][GName], mysql_GetStringByString("computer","GehaeuseName","username",GetName(playerid)));
    strcat(sInfo[playerid][GrakaName], mysql_GetStringByString("computer","GrafikkarteName","username",GetName(playerid)));
    strcat(sInfo[playerid][PName], mysql_GetStringByString("computer","ProzessorName","username",GetName(playerid)));
    return 1;
    }


    Wenn nicht mach bei OnPlayerConnect "LoadPlayer" weg und gib einfach mal mit der Konsole den Wert aus.

    printf("db wert: %s", mysql_GetStringByString("computer","GehaeuseName","username",GetName(playerid)));

    Versuch

    if(cInfo[id][lock]==1)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(id, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(id, engine, lights, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
    for(new x=0;x<GetMaxPlayers();x++) {
    SetVehicleParamsForPlayer(id,x,0,1);
    }
    }

    Mit GetStringByString willst du bestimmt einen Wert aus der Datenbank/Tabelle auslesen, richtig?
    Dann bau dir mal ein ordentlichen Query...
    Kannst ja mal dass versuchen:

    stock mysql_GetStringByString(Table[], Field[], Where[],Where2[])
    {
    new query[128],str[128];
    format(query, sizeof query, "SELECT `%s` FROM `%s` WHERE `%s` = '%s';", Field,Table,Where,Where2);
    mysql_query(query);
    mysql_store_result(query);
    mysql_fetch_field(1,str);
    mysql_free_result();
    return str;
    }

    Wo ist denn der Query bei mysql_GetStringByString?
    Installier dir mal crashdetect und poste den Errorcode von crashdetect.
    Außerdem kannst du auch "mysql_debug(1);" unter OnGameModeInit schreiben, dann schaust du ob MySql ein Fehler ausgibt. (mysql_log.txt)

    Welche dieser 13 Zeilen ist Zeile 442?
    Es wird nicht einmal, beim Befehl, ein Query ausgegeben:
    stock mysql_GetStringByString(Table[], Field[], Where[],Where2[])
    {
    // ....
    format(query, 512, "%s", Field);
    mysql_store_result(); // Welchen Query?
    mysql_fetch_field(str,1);
    mysql_free_result();
    return str;
    }

    Versuch es mal mit mysql_fetch_field(1,str) (MySql Fetch Field)
    Du kannst auch mal mysql_get_field("Feldname", str); versuchen, gibt auch einen Wert aus der Datenbank bzw. Tabelle aus.

    Auf dem Server musst du nur "announce(.exe)", "samp-npc(.exe)", "samp-server(.exe)" ersetzen.
    Bei deinem Pawno musst du einfach nur den kompletten Ordner überschreiben lassen.
    Dann startest du das Skript mit Pawno und kompilierst, lädst die .amx Datei hoch und startest den Server...

    So wäre es richtig:

    ShowPlayerDialog(playerid,DIALOG_AFAHRZEUG,DIALOG_STYLE_LIST,"Fahrzeugauswahl","Sultan'Supportteam'\nNRG'Teamleiter'\n'Infernus'Server Owner'","Auswählen","Abbrechen");


    wie Excuse schon geschrieben hat: Erst Dialogid dann Dialogstyle.
    Man kann auch jederzeit im samp wiki nachlesen...

    Wie ErikSon gesagt hat es läuft schneller als mit (billigen) Dateien (u.a. dini).
    Außerdem ist es auch besser für Seiten, da direkt über MySql drauf zu gegriffen werden kann.
    Aber ob es wirklich schwer sein soll...
    Wenn man es richtig macht ist es einfacher als DINI oder sonst irgend ein Dateisystem.
    Ich würde dir empfehlen auf MySql um zu steigen.

    Gestern haben wir unseren Server auf 0.3z geupdatet.
    Außerdem haben wir heute noch das Skript aktualisiert und folgende Fehler behoben:
    - Die Kill Serien funktionieren nun einwandfrei.
    - Wenn man beim Login nichts eingibt crasht nicht mehr der Server.


    Vorschläge oder Fehler zum Server könnt ihr mir per PN schicken.


    // Edit: Rechtschreibfehler


    public CheckName(playerid)
    {
    if(IsPlayerNPC(playerid)) return 1;
    //----------------------------------[RolePlay Namen]-----------------------------------------------//
    new psender[MAX_PLAYER_NAME];
    GetPlayerName(playerid, psender, sizeof(psender));
    if(strfind(psender,"_",false)==-1)
    {
    //SendClientMessage(playerid, COLOR_WHITE, "Dein Name ist nicht in diesem Stil: Vor_Zuname");
    ShowPlayerDialog(playerid,110,DIALOG_STYLE_MSGBOX,"German Elite Reallife: Name nicht Zugelassen","Dieser Name wird auf unserem Server nicht Akzeptiert!\nBitte verwende einen Roleplaynamen mit einem '_' wie z.B. Max_Mustermann.","Beenden","");
    Kick(playerid);
    }
    return 0;
    //-----------------------------------------------------------------------------------------------
    }


    Sollte so eig. gehen (wenn du es ganz nach oben setzt, wird garnicht erst GetPlayerName ausgeführt oder die Variable psender erstellt).
    Wird der NPC denn trotzdem gekickt?