Beiträge von Kaliber

    Ja, warte, die Kristallkugel wird mir den Fehler zeigen :pinch:


    Poste mal einen Code wo du glaubst, wo der Fehler sein kann:


    Hier mal ein Tipp:


    Es könnte sich möglicherweise um einen timebug handeln...hast du evtl zu viele Timer drinnen oder bei OnPlayerConnect irgentwas dummes wie eine unendliche schleife ?!


    Was weiß ich, zeig mal ein bisschen Code....


    mfg. :thumbup:

    Genau das gleiche habe ich geschrieben.


    Nein, nicht genau das gleiche, du hast nur auch die Lösung gewusst ^^


    Ich habe noch ergänzt, dass sein Code an sich keinen Sinn ergibt :D


    Er hat mich per PN angeschrieben wieso das so sei und aus diesem Grund schreibe ich es nochmal in diesem Thread:


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == TownMenu)
    {
    SendClientMessage(playerid,COLOR_GREY,"Gib jetzt /Waffenschein ein um einen Waffenschein für 10k zu erwerben.");
    SetPVarInt(playerid,"Waffen",1);
    }
    else if(GetPlayerScore(playerid) >3)
    {
    SendClientMessage(playerid,COLOR_RED,"Dein Level reicht nicht aus.");
    }
    return 1;
    }
    So, das hast du geschrieben, ich werde den Code jetzt mal vorlesen:


    Wenn ein Spieler ein Pickup betritt, wenn die Pickup id == Towmenu ist, dann soll er eine Nachricht bekommen...wenn sie das nicht ist und das Level größer als 3 ist, soll die Nachricht kommen, "Dein Level reicht nicht aus"...
    Da sind 2 Fehler drinnen:
    1. müsste das so aussehen:
    else if(GetPlayerScore(playerid) <3)
    2. Darf diese Abfrage nicht direkt in dem Callback sein, wenn dann nur in der if-Abfrage, sonst bekommt er diese Nachricht sobald er irgendein Pickup betritt ! ^^


    Ich hoffe du hast grob verstanden, was ich dir damit sagen will ;)


    mfg. :huh:

    Mal abgesehen davon, das das totaler Schwachsinn ist, was du da machst....dein Fehler liegt da...
    Schreibe diese Zeile so:


    SendClientMessage(playerid,COLOR_GREY,"Gib jetzt /Waffenschein ein um einen Waffenschein für 10k zu erwerben.");


    mfg. :thumbup:

    Doc hes geht zwar aber wenn ich in Interrior bin ist alles schwartz :(


    Ja, du musst ja dich in den Interior setzen und das Auto also so:


    if(strcmp(cmd, "/enter", true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,rot,"Du sitzt in keinem Auto !");
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) return SendClientMessage(playerid, rot,"Du bist nicht in der Nähe von dem Pickup !");//X,Y,Z auch wieder ersetzen
    new veh = GetPlayerVehicleID(playerid);
    SetVehiclePos(veh, X, Y, Z);//X,Y,Z mit den Koordinaten ersetzen, wo das Fahrzeug hin soll
    PutPlayerInVehicle(playerid, veh, 0);
    LinkVehicleToInterior(veh, 6);//Da wo die 6 ist deine Interior id eingeben
    SetPlayerInterior(playerid, 6);//Hier das selbe
    return 1;
    }


    mfg. :thumbup:

    So geht es natürlich auch, hab meins nur etwas übersichtlicher gemacht.


    Schon klar, ne ich habe meins eigentlich nur nochmal gepostet, damit er sieht, wo und wie er das Pickup zu setzen hat ;)


    Ich meine das auch der spieler der im Fahrzeug sitzt dann auch wieder im Fahrzeug sitzt


    Dann sag das doch auch ^^


    if(strcmp(cmd, "/enter", true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,rot,"Du sitzt in keinem Auto !");
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) return SendClientMessage(playerid, rot,"Du bist nicht in der Nähe von dem Pickup !");//X,Y,Z auch wieder ersetzen
    new veh = GetPlayerVehicleID(playerid);
    SetVehiclePos(veh, X, Y, Z);//X,Y,Z mit den Koordinaten ersetzen, wo das Fahrzeug hin soll
    PutPlayerInVehicle(playerid, veh, 0);
    return 1;
    }


    mfg. :thumbup:

    So:


    //Bei OnGameModeInit
    CreatePickup(1239, 23, X, Y, Z, -1); //X, Y, Z mit den Koordinaten ersetzen


    //Der Command mit strcmp (auf anfrage gebe ich ihn dir auch in ocmd)
    if(strcmp(cmd, "/enter", true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,rot,"Du sitzt in keinem Auto !");
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) return SendClientMessage(playerid, rot,"Du bist nicht in der Nähe von dem Pickup !");//X,Y,Z auch wieder ersetzen
    SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);//X,Y,Z mit den Koordinaten ersetzen, wo das Fahrzeug hin soll
    return 1;
    }


    mfg. :thumbup:

    Hier mal C&P gerecht vorgefertigt :S


    new Text3D:GM3D[MAX_PLAYERS]; // Zu deinen Variablendefinitionen


    public CheckWantedText()
    {
    new string[126];
    for(new i=0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(WantedLevel[i] > 0)
    {
    format(string, sizeof(string), "[%d] %s\n Wanteds: %d\n \n",i,spName(i),WantedLevel[i]);
    GM3D[i] = Create3DTextLabel(string,0xB70000FF,0,0,0,70.5,1);
    Attach3DTextLabelToPlayer(GM3D[i], i, 0.0, 0.0, 0.45);
    }
    }
    return 1;
    }


    mfg. :thumbup:

    Mache es so:


    if(strcmp(cmd, "/cnnn", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,rot,"Verwendung: /cnnn [text]");
    new string[128];
    format(string, sizeof(string), " %s ", tmp);
    GameTextForAll(string, 10000, 5);
    return 1;
    }


    mfg. :thumbup:

    Da (musste mal testen):


    stock splitgm(const strsrc[], strdest[][], delimiter)
    {
    new i, li, aNum, len;
    while(i <= strlen(strsrc))
    {
    if(strsrc[i] == delimiter || i == strlen(strsrc))
    {
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }


    Beispiel:


    new tmp[2][64];
    splitgm("Hallo du!", tmp, ' ');
    print(tmp[0]); //er printet "Hallo"


    mfg. :thumbup: