Beiträge von Jeffry

    Dann füge das hier unter den Includes ein (Funktions-Hook):
    stock my_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    {
    new id = CreateVehicle(modelid, x, y, z, angle, color1, color2, respawn_delay);
    SetVehicleHealth(id, 995);
    return id;
    }


    #if defined _ALS_CreateVehicle
    #undef CreateVehicle
    #else
    #define _ALS_CreateVehicle
    #endif
    #define CreateVehicle my_CreateVehicle
    (Analog für AddStaticVehicle etc, falls du die nutzt).


    Und bei OnVehicleSpawn dann zusätzlich:
    SetVehicleHealth(vehicleid, 995);

    Lasse die NPCs ganz am Ende von OnGameModeInit verbinden, nach dem Laden der Schwarzmärkte.
    Deine Gangzonen laden etwas länger, deshalb kommen die NPCs da nicht durch.

    Wo genau hast du das SetSpawnInfo eingebaut?
    Du müsstest mal versuchen es dort einzufügen, wo der Spieler die Arena betritt (Befehl?). Dann dort SetSpawnInfo zu den Spawn-Koordinaten der Arena setzen.

    Bei mir kompiliert es, es kommen zwar ein paar Errors zwecks undefinierten Symbolen, aber ich gehe mal davon aus, dass du gerade daran arbeitest, daher die fehlenden Funktionen.
    Du musst nur die eine Zeile abändern, dann sollte es eigentlich wieder kompilieren.


    Wenn es nicht geht, dann kann ich dir die .pwn auch nochmal schicken, dann kannst du es direkt damit versuchen.

    Hier die Lösung des Problems.
    new WebsiteTexts[MAX_WEBSITE_TEXTS][] = // By Kevin


    Diese Zeile stand so im Code. Das geht nicht.
    Entweder so:
    new WebsiteTexts[MAX_WEBSITE_TEXTS][64]; // By Kevin
    oder:
    new WebsiteTexts[MAX_WEBSITE_TEXTS][64] =
    {
    "Test",
    "Test2"
    };// By Kevin

    Erstens das, und zweitens war in der WHERE Bedingung noch jeweils ein ` fehlend, bei name und slot.
    Versuche es so:
    stock SaveOnlyOnePveh(playerid,slot)
    {
    new query[1024];
    if(Pfahrzeug[slot][playerid][modelid] != 0)
    {
    GetVehicleHealth(Pfahrzeug[slot][playerid][Vehicle],Pfahrzeug[slot][playerid][HP]);
    format(query,sizeof(query),"UPDATE `db_spielerfahrzeuge` SET `modelid`='%d', `x`='%f', `y`='%f', `z`='%f', `a`='%f'",
    Pfahrzeug[slot][playerid][modelid],Pfahrzeug[slot][playerid][posx],Pfahrzeug[slot][playerid][posy],Pfahrzeug[slot][playerid][posz],Pfahrzeug[slot][playerid][posa]);
    format(query,sizeof(query),"%s, `interior`='%d', `world`='%d', `cc1`='%d', `cc2`='%d', `paintjob`='%d', `vehhp`='%f', `abgeschlossen`='%d', `t1`='%d', `t2`='%d'",query,
    Pfahrzeug[slot][playerid][Interior],Pfahrzeug[slot][playerid][VirtualWorld],Pfahrzeug[slot][playerid][Colour1],Pfahrzeug[slot][playerid][Colour2],
    Pfahrzeug[slot][playerid][Paintjob],Pfahrzeug[slot][playerid][HP],Pfahrzeug[slot][playerid][Abgeschlossen],Pfahrzeug[slot][playerid][Spoiler],Pfahrzeug[slot][playerid][Hood]);
    format(query,sizeof(query),"%s, `it3`='%d', `t4`='%d', `t5`='%d', `t6`='%d', `t7`='%d', `t8`='%d', `t9`='%d', `t10`='%d', `t11`='%d', `t12`='%d', `t13`='%d', `t14`='%d'",query,
    Pfahrzeug[slot][playerid][Roof],Pfahrzeug[slot][playerid][Sideskirt],Pfahrzeug[slot][playerid][Lamps],Pfahrzeug[slot][playerid][Nitro],Pfahrzeug[slot][playerid][Exhaust],Pfahrzeug[slot][playerid][Wheels],Pfahrzeug[slot][playerid][Stereo],
    Pfahrzeug[slot][playerid][Hydraulics],Pfahrzeug[slot][playerid][FrontBumper],Pfahrzeug[slot][playerid][RearBumper],Pfahrzeug[slot][playerid][VentRight],Pfahrzeug[slot][playerid][VentLeft]);
    format(query,sizeof(query),"%s, `angemeldet`='%d', `preis`='%d', `nummernschild`='%s', `tank`='%f'",query,
    Pfahrzeug[slot][playerid][Angemeldet],Pfahrzeug[slot][playerid][Preis],Pfahrzeug[slot][playerid][Nummernschild],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Tank]);
    format(query,sizeof(query),"%s, `km`='%d', `towed`='%d', `towedfreeprice`='%d', `towedreason`='%s' WHERE `name` = '%s' AND `slot` = '%d'",query,
    vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Kilometer],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Abgeschleppt],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][AbgeschlepptPreis],
    vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][AbgeschlepptGrund],Pfahrzeug[slot][playerid][Besitzer],slot);
    mysql_pquery(handle, query);
    }
    return 1;
    }

    Werden die Häuser korrekt in der Datenbank angelegt? Im MySQL Log konnte ich nämlich keinen Fehler dazu finden.
    Wenn ja, werden die Texte angezeigt, wenn du den Server neu startest, oder werden die für kein Haus angezeigt, auch nicht für die, die vor dem Server Restart erstellt worden sind?

    Damit du die Fehlerstelle im Code findest:
    Erstelle in deinem /pawno/ Ordner eine Datei "pawn.cfg" und schreibe dort "-d3" rein (ohne Anführungszeichen). Dann speichere die Datei, und öffne die pawno.exe. Dann wähle deinen Code auf, über "Öffnen", und kompiliere ihn. Du bekommst dann eine mehrzeilige Meldung mit vielen Zahlen im Compiler. Dann starte den Server erneut, und poste nochmal den Log, bzw. lese dort die Zeile des Fehlers aus.


    Das "-d3" ist eine Compiler-Option und schält den Debug Modus an (daher die Meldung im Compiler).
    Für das Crashdetect Plugin bedeutet das, dass es genauere Informationen ausgeben kann, wie zum Beispiel die genaue Zeile des Errors, den es ausgibt.

    Bei den oberen Fahrzeugen fehlt die Respawn-Delay Angabe (-1).
    So:
    HitmanVehs[0] = AddStaticVehicleEx(522,2928.4907,2097.7788,17.4681,90.0326,88,48,-1);
    HitmanVehs[1] = AddStaticVehicleEx(522,2928.6045,2099.9443,17.4634,88.9845,81,41,-1); // HitmanNrg2
    HitmanVehs[2] = AddStaticVehicleEx(522,2928.3772,2102.1638,17.4635,89.9203,81,48,-1); // HitmanNrg3
    HitmanVehs[3] = AddStaticVehicleEx(560,2915.2246,2094.7185,10.5182,88.7731,17,48,-1); // HitmanSultan1
    HitmanVehs[4] = AddStaticVehicleEx(560,2914.9946,2088.4771,10.5183,90.2777,12,48,-1); // HitmanSultan2
    HitmanVehs[5] = AddStaticVehicleEx(560,2923.6487,2094.6147,11.1719,89.1719,67,32,-1); // HitmanSultan3
    HitmanVehs[6] = AddStaticVehicleEx(560,2924.0613,2088.6047,11.2639,90.6361,17,32,-1); // HitmanSultan4
    HitmanVehs[7] = AddStaticVehicleEx(487,2924.9595,2113.0747,21.8455,90.8232,42,23,-1); // HitmanMaverick1

    Den Befehl so:
    ocmd:playerlist(playerid)
    {
    new string[4000],online[32];

    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    format(online,sizeof(online),"Online Spieler (%d)",GetOnlinePlayers());

    if(sInfo[i][alevel]>0)
    {
    format(string, sizeof(string), "%s{2EA100}[%s] %s (ID:%i){FFFFFF}\n", string, AdminLevelName(i), getPlayerName(i), GetPlayerIdFromName(getPlayerName(i)));
    }
    else if(sInfo[i][alevel]==0)
    {
    format(string, sizeof(string), "%s%s (ID: %i)\n", string, getPlayerName(i), GetPlayerIdFromName(getPlayerName(i)));
    }
    ShowPlayerDialog(playerid, DIALOG_PLAYERLIST, DIALOG_STYLE_LIST, online, string, "Infos", "Abbrechen");
    }
    }
    return 1;
    }


    Den Dialog so:
    if(dialogid==DIALOG_PLAYERLIST)
    {
    if(!response)return 1;
    new tmp;
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(tmp == listitem)
    {
    new string[100],name[100];
    format(name,sizeof(name),"Spieler Informationen von %s",getPlayerName(i));
    format(string, sizeof(string), "Text");
    ShowPlayerDialog(playerid,DIALOG_PLAYERINFO,0,name,string,"Zurück","Schließen");
    return 1;
    }
    else tmp++;
    }
    }
    }

    Fast.


    Das
    format(query,sizeof(query),"%s',
    jeweils zu:
    format(query,sizeof(query),"%s,


    Und das mysql_pquery muss nur nach dem letzten Format stehen.

    Die Zeile ist noch immer etwas lang, vielleicht musst du es drei oder vier mal kürzen.
    Außerdem hast du noch vergessen, den string wieder mit zu geben (siehe Zeile 2 im Beispiel, da steht %s am Anfang, und als erster Parameter "string").

    Die Zeileist zu lang, die musst du kürzen (\ bringt da nichts).
    Beispiel:
    Von:

    C
    format(string, sizeof(string), "Hallo Welt.");


    zu:

    C
    format(string, sizeof(string), "Hallo");
    format(string, sizeof(string), "%s Welt.", string);

    Unter den Includes:
    new nextTele[MAX_PLAYERS];


    Im Befehl, vor SetPlayerPos:
    if(nextTele[playerid] > gettime()) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du kannst diesen Befehl nur alle 10 Sekunden nutzen.");
    nextTele[playerid] = gettime() + 10;