Beiträge von Kaliber

    Ich bekomme leider ein paar Fehler *sad*


    Weil du meinen Text nicht richtig gelesen hast :rolleyes:


    Das funktioniert leider nur so:


    forward TutorialTimer(playerid,npcid);
    public TutorialTimer(playerid,npcid)
    {
    new string[128];
    if(TutTime[playerid] > 1) return 1;
    TutTime[playerid] = 2;
    ApplyAnimation(Medic,"MEDIC","CPR",4.1,0,1,1,1,1);
    SendClientMessage(playerid,COLOR_GREEN,"bla");
    pSleep(1000)<a,"i",playerid>; //pSleep da du playerid für die SendClientMessage brauchst
    SendClientMessage(playerid,COLOR_GREEN,"bla");
    pSleep(1000)<b,"i",playerid>; //pSleep da du playerid für die SendClientMessage brauchst
    SendClientMessage(playerid,COLOR_GREEN,"bla");
    return 1;
    }


    mfg. :thumbup:

    weist du auch wie man zb mehrere isplayerinrage abfragen darein packen kann?


    Kannst es so machen:


    //oben in dein Script btw 2 ist die Anzahl deiner Koordinaten ;)
    static const Float:ranges[2][3] = {
    {0.0, 0.0, 0.0}, {5.0, 1.0, 5.0} //hier alle deine Koordinaten rein
    };


    //und dann in deinem Befehl
    new bool:ok,x;
    for(; x<sizeof(ranges); x++) {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,ranges[x][0],ranges[x][1],ranges[x][2])) continue;
    ok = true;
    break;
    }
    if(!ok) return SendClientMessage(playerid,-1,"Du befindest dich nicht an einem bestimmten Ort!");
    //und hier unten dann dein Rest-Code


    mfg. :thumbup:

    Dann musst du den Befehl so schreiben:


    ocmd:makeadmin(playerid,params[])
    {
    new alevel,pid;
    if(!IstSpielerAdmin(playerid,3))return SendClientMessage(playerid,rot,"Du bist kein Adminstrator und darfst diesen Command nicht nutzen!");
    if(sscanf(params,"ud", pid, alevel))return SendClientMessage(playerid,rot,"Befehl: /makeleader [SpielerID] [Adminlevel (1-3)");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
    if(GetPVarInt(pid,"Adminlevel") == alevel) return SendClientMessage(playerid,rot,"Dieser Spieler hat schon das gewünschte Adminlevel!");
    SetPVarInt(pid,"Adminlevel",alevel);
    SendClientMessage(pid,blau,"Du bist nun ein Adminstrator/Supporter");
    SendClientMessage(playerid,rot,"Der Spieler wurde zum Adminstrator gemacht.");
    return 1;
    }


    mfg. :thumbup:

    Schreib das mal so:


    ocmd:makeadmin(playerid,params[])
    {
    new alevel,pid;
    if(!IstSpielerAdmin(playerid,3))return SendClientMessage(playerid,rot,"Du bist kein Adminstrator und darfst diesen Command nicht nutzen!");
    if(sscanf(params,"ud", pid, alevel))return SendClientMessage(playerid,rot,"Befehl: /makeleader [SpielerID] [Adminlevel (1-3)");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
    if(IstSpielerAdmin(pid,alevel)) return SendClientMessage(playerid,rot,"Dieser Spieler hat schon das gewünschte Adminlevel!");
    SetPVarInt(pid,"Adminlevel",alevel);
    SendClientMessage(pid,blau,"Du bist nun ein Adminstrator/Supporter");
    SendClientMessage(playerid,rot,"Der Spieler wurde zum Adminstrator gemacht.");
    return 1;
    }


    mfg. :thumbup:

    Also...ich war gerade auf dem Server, habe geairbreaked und hab nur gecheatet, mich teleportiert und fly-hack genutzt und auch richtig lange und extrem...nix passiert? :huh:


    Solltest vielleicht nochmal überarbeiten?!


    mfg. :rolleyes:

    Schreib es so, dann ist es besser:


    public OnPlayerText(playerid, text[])
    {
    new Float:Q[3],string[128],i;
    GetPlayerPos(playerid,Q[0],Q[1],Q[2]),format(string,sizeof(string),"%s sagt: %s",PlayerName(playerid), text);
    for(; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i,30.0,Q[0],Q[1],Q[2])) continue;
    SendClientMessage(i,0xF0F0F0FF, string);
    }
    return 0;
    }


    mfg. :thumbup:

    Sehr gute lösung in einer schleife ein return zu nutzen damit die nachicht auch nur ein spieler bekommt...


    Da vertut sich einmal Jeffry... :whistling:


    Schreis so:


    public OnPlayerText(playerid, text[])
    {
    new Float: pos[3], rad = 20, i, str[128];
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]),format(str,sizeof(str),"%s : %s",SpielerName(playerid),text);
    for(; i < MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, rad, pos[0], pos[1], pos[2])) continue;
    SendClientMessage(i,0xDCDCDCFF,str);
    }
    return 0;
    }


    mfg. :thumbup:

    Ja, sie wird erstellt...
    Was soll ich mir da angucken? ...
    Steht ja "Admin=5"...


    Kann es sein, dass du nirgends "SpielerLaden(playerid)" aufrufst?


    Solltest das mal überprüfen, wenn du das aber auch tust, liegt ein Fehler im Include oder so vor, dann wende dich mal an Hauke ;)


    mfg. :thumbup:

    Hast du denn mal in die Datei geschaut, also wird diese überhaupt erstellt und wenn ja, dann schau dir doch mal an, was da so drinnen steht :rolleyes:


    Normalerweise sollte das so funktionieren ;)


    mfg. :thumbup:

    Er zeigt mir an, dass ich kein 2*Admin bin


    ...Wo rufst du das auf, zeig mal mehr Code, wie die Variable der Spielerdatei aussieht...etc..das kann ich alles nicht riechen :rolleyes:


    Aber prinzipiell funktioniert es so ;)


    mfg. :thumbup:

    Ich wollte eig HSA_Multi benutzen, aber so wie es aussieht, kann man keine enums mitbenutzen... Oder?


    Enum's...sind eigentlich ganz normale Arrays...natürlich kannst du die auch mit HSA_Multi speichern... :whistling:


    mfg. :rolleyes:

    Zitat

    DekoRoller = SetVehicleNumberPlate(CreateVehicle(462,1221.2094,-871.7542,42.4886,112.3210,1,2,-1),"Verleih"); // Roller1


    Das funktioniert so nicht, entweder machst du es so:

    DekoRoller[playerid] = CreateVehicle(462,1221.2094,-871.7542,42.4886,112.3210,1,2,-1);
    SetVehicleNumberPlate(DekoRoller[playerid],"Verleih"); // Roller1


    //oder probier es mal so, weiß nicht ob das geht:


    SetVehicleNumberPlate(DekoRoller[playerid] = CreateVehicle(462,1221.2094,-871.7542,42.4886,112.3210,1,2,-1),"Verleih"); // Roller1


    mfg. :thumbup: