Beiträge von Allrounder18

    Hallo!


    Ich würde gerne auf eiem 0.3.DL Server die Vice City ud Liberty City Map rauf machen.


    Ich hab die dff , txd und col Dateien in den Models Ordner gegeben, jedoch fall ich dauernd durch den Boden. Ich habe die Ordner auch in mein Webverzeichnis gegeben, jedoch komen da n aar 22 Http Erors obwohl alle Dateien da sein sollten. Ich ging nach der Anleitung im englischen SAMP Forum. Was muss ich machen damit alles klappt?


    Freundliche Grüße


    Allrounder18

    Ich hab jetzt mal getestet mit nem Reh Objekt Wenn ich das einfüge per Mapeditor und das Objekt dann im Script einfüge mit der neuen Modelid die ich in dem Fall einem Hund gegeben habe dann gehts.


    Im Editor direkt wird der Hund nicht gefunden.

    Hallo!


    Gibt es einen Ingame Map Editor mit dem man bei der 0.3.DL mappen kann?
    Ich hab den Fuzes Map Editor V3 versucht, jedoch kennt der die neuen Models nicht. Oder muss ich da was umstellen?


    MfG

    Danke, hat geklappt.


    Du meinst IsPlayerAdmin ist nur für RCON.
    Ich hab mir grade die isPlayerAnAdmin Funktion eingebaut.
    stock isPlayerAnAdmin(playerid,rang){ if(SpielerDaten[playerid][pAdmin] >= rang)return 1; return 0;}
    Wenn ich einen Befehl mit isPlayerAnAdmin mache kommt warning 202: number of arguments does not match definition
    if(iPAA(playerid) || SD[playerid][pAdmin] < 4)return rangniedrig;


    edit:oder kann ich IsPlayerAdmin lassen für Adminbefehle? (Kein RCON)

    Deine Variante sagt wieder tag mismatch



    if(adminid < 1 || adminid > 7)return adminrangnichtexistent;
    SD[pID][pAdmin] = adminid;
    format(string,sizeof(string), GARN(pID));
    SD[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", string,SD[pID][pName], GARN(pID));
    SCM(playerid, BLAU, string);
    format(string, sizeof(string), "* %s %s hat dir den Teamrang %s gegeben",GARN(playerid),SD[playerid][pName],GARN(pID));
    SCM(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SD[playerid][pName], SD[pID][pName], GARN(pID));
    SAM(BLAU,string);
    SUS(pID);
    return 1;

    Will irgendwie nicht im sinne von der Name wird vor dem Rang ncht angezeugt.

    stock SendAdminMessage(color, message[]){ new playerid; for(new i=GetPlayerPoolSize(); i!=-1; i--) {if(SD[playerid][pEingeloggt] == 1 &&(SpielerDaten[i][pAdmin] > 0 || IPA(i))) SendClientMessage(i, color,message); } return 1;}
    So habe ich es versucht da kommt tag missmatch.


    Und

    • format(string,sizeof(string), GARN(pID));
    • SD[pID][pAdmin] = adminid;
    • format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", string,SD[pID][pName], GARN(pID));
    • SCM(playerid, BLAU, string);

    Will irgendwie nicht.

    Wenn ich mit makeadmin einen Spieler zum Admin mache mache steht dann da Du hast Admin xy den Teamrang Admin gegeben. Ich möchte aber wenn er Spieler ist das Spieler steht. Spieler ist Rang 0. Ich meine übrigens das au Zeile 26.


    SendAdminMessage klappt immer noch nicht. Ich habs auch mit deinem Vorschlag probiert.


    edit: IsPlayerAdmin ist nur eine Abfrage ob man RCON Admin ist?

    Ich hab mal deine Optimierung versucht jedoch will endAdminMesage immer noch nicht. Diese Nachriht bekomt dann doch auch der der den anderen zum Admin macht oder?



    ocmd:makeadmin(playerid, params[])
    {
    //if(SD[playerid][pEingeloggt] == 0)return SCM(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IPA(playerid) || SD[playerid][pAdmin] >= 5)
    {
    if(sscanf(params, "ui", pID, adminid))return makeadmin;
    //if(adminid < 2)return SCM(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    if(IPN(pID))return 1;
    //if(IsPlayerNPC(pID))return 1;
    //if(!Eingeloggt[pID])return SCM(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    //if(SD[pID][pIntro] < 1)return SCM(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SD[pID][pName], GARN(pID));
    SCM(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SD[playerid][pName]);
    SCM(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SD[playerid][pName], SD[pID][pName]);
    SAM(BLAU, string);
    SD[pID][pAdmin] = 0;
    SUS(pID);
    return 1;
    }
    if(adminid < 1 || adminid > 7)return adminrangnichtexistent;
    SD[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", GARN(playerid),SD[pID][pName], GARN(pID));
    SCM(playerid, BLAU, string);
    format(string, sizeof(string), "* %s %s hat dir den Teamrang %s gegeben",GARN(playerid),SD[playerid][pName],GARN(pID));
    SCM(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SD[playerid][pName], SD[pID][pName], GARN(pID));
    SAM(BLAU,string);
    SUS(pID);
    return 1;
    }
    else {SCM(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }


    Das ist der Befehl. Ich möchte, das wenn ich zb nen Spieler n Teamrang gebe da steht Spieler xy wurde von yz zum Supporter ernannt. SAM = SendAdminMessage

    Dake, das hat geklappt.


    Jetzt will meine SendAdminMessage nicht funktionieren.



    stock SendAdminMessage(color, message[])
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(Eingeloggt[i] == 1)
    {
    if(SpielerDaten[i][pAdmin] > 0)
    {
    SendClientMessage(i, color, message);
    }
    }
    }
    return 1;
    }


    Ich mchte, dass in folgender Nachricht der alte Tamrangangezeigt wird.
    format(string, sizeof(string), "Du hast %s %s den Teamrang %s gegeben", GetAdminRangName(playerid),SpielerDaten[pID][pName], GetAdminRangName((pID));
    Was muss ich da wo das erste GetAdminRangName( steht hinschreiben? Momentan kommt der Rang dort den ich vergebe.

    Danke, hat geklappt.


    Was muss hier einbauen damit man den Chat mit $ und § nicht nutzen kann wenn man kein Admin ist?
    Wenn ich kein Admin bin kommt ich hab zu enig rechte und es wird zB. $Text ausgegeben.


    public OnPlayerText(playerid, text[]){ new message[128]; if(text[0] == '$') { if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 2)return SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl."); if(!text[1]) return SendClientMessage(playerid, ROT,"$ [Text]"),0; format(message, sizeof(message), "(([Adminchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]); return SendClientMessageToAll(ROT,message),0; } new message1[128]; if(text[0] == '§') { if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 1)return SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl."); if(!text[1]) return SendClientMessage(playerid, ROT,"§ [Text]"),0; format(message1, sizeof(message1), "(([Helferchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]); return SendClientMessageToAll(HGREEN,message1),0; } format(message, sizeof(message), "{969696}%s sagt: {FFFFFF}%s", SpielerDaten[playerid][pName], text); return ProxDetector(7.0, playerid, message, WEISS,WEISS,WEISS,WEISS,WEISS),0;}

    Ich habs bisher leider immer noch nicht geschaft. Was muss ich da ander machen?

    Danke, hat geklappt.


    Was muss hier einbauen damit man den Chat mit $ und § nicht nutzen kann wenn man kein Admin ist?
    Wenn ich kein Admin bin kommt ich hab zu enig rechte und es wird zB. $Text ausgegeben.


    public OnPlayerText(playerid, text[]){ new message[128]; if(text[0] == '$') { if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 2)return SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl."); if(!text[1]) return SendClientMessage(playerid, ROT,"$ [Text]"),0; format(message, sizeof(message), "(([Adminchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]); return SendClientMessageToAll(ROT,message),0; } new message1[128]; if(text[0] == '§') { if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 1)return SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl."); if(!text[1]) return SendClientMessage(playerid, ROT,"§ [Text]"),0; format(message1, sizeof(message1), "(([Helferchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]); return SendClientMessageToAll(HGREEN,message1),0; } format(message, sizeof(message), "{969696}%s sagt: {FFFFFF}%s", SpielerDaten[playerid][pName], text); return ProxDetector(7.0, playerid, message, WEISS,WEISS,WEISS,WEISS,WEISS),0;}

    @Allrounder18
    stock SaveUserStats(playerid){ if(!SpielerDaten[playerid][pEingeloggt]) return 1; Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET Level = '%d', Geld = '%d', Skin = '%d' WHERE id = '%d'", SpielerDaten[playerid][pLevel],SpielerDaten[playerid][pGeld],GetPlayerSkin(playerid),SpielerDaten[playerid][p_id]); /*mysql_format(handle, query, sizeof(query), "UPDATE users SET Admin = '%d' WHERE id = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);*/ Das Query wird abgesendet mysql_pquery(handle, query); return 1;}

    Danke, habs.


    Jedoch hab ich n weiteres Problem.


    Wenn ich Rang 5bin kann ich niemandmehr Aen Rang geben obwohl es doch so eingestellt ist. Woran kann das liegen?



    ocmd:makeadmin(playerid, params[])
    {
    //if(SpielerDaten[playerid][pEingeloggt] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] >= 5 && SpielerDaten[playerid][pAdmin] == 7)
    {
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID/Name] [Teamrang]");
    if(adminid < 2)return SendClientMessage(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    if(adminid < 2)return SendClientMessage(playerid, GRAU, "Du kannst nur ab Rang 2 vergeben.");
    if(IsPlayerNPC(pID))return 1;
    if(IsPlayerNPC(pID))return 1;
    //if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    //if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    //format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    //SendClientMessage(pID, string);
    SpielerDaten[pID][pAdmin] = 0;
    SaveUserStats(pID);
    return 1;
    }
    if(adminid < 1 || adminid > 7)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s %s hat dir den Teamrang %s gegeben",SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    //format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    //SendClientMessage(pID, string);
    //SpawnPlayerEx(pID);
    SaveUserStats(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }

    aveUserStats sieht so aus.

    stock SaveUserStats(playerid){ if(!SpielerDaten[playerid][pEingeloggt]) return 1; Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET Level = '%d', Geld = '%d', Skin = '%d' WHERE id = '%d'", SpielerDaten[playerid][pLevel],SpielerDaten[playerid][pGeld],SpielerDaten[playerid][pSkin],SpielerDaten[playerid][p_id]); /*mysql_format(handle, query, sizeof(query), "UPDATE users SET Admin = '%d' WHERE id = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);*/ Das Query wird abgesendet mysql_pquery(handle, query); return 1;}

    GetPlayerskin wohin?


    Onplayerspawn sieht so aus

    public OnPlayerSpawn(playerid)
    {
    SetPlayerColor(playerid, WEISS);
    SetPlayerSkin(playerid, 187);
    return 1;
    }

    [12/13/18 18:32:32] [DEBUG] created new resultset '0x5a4e50'
    [12/13/18 18:32:32] [DEBUG] fetched MySQL result '0x0'
    [12/13/18 18:32:32] [DEBUG] CCallback::Execute(amx=0x275ac88, index=14, num_params=1)
    [12/13/18 18:32:32] [INFO] Executing callback 'OnUserRegister' with 1 parameter...
    [12/13/18 18:32:32] [DEBUG] processing internal specifier 'c'
    [12/13/18 18:32:32] [DEBUG] pushed value '0' onto AMX stack
    [12/13/18 18:32:32] [DEBUG] executing AMX callback with index '14'
    [12/13/18 18:32:32] [DEBUG] cache_insert_id() (C:\Users\...\Documents\meinserver\ARP2.0\pawno\include\../include/core/publics.inc:74)
    [12/13/18 18:32:32] [DEBUG] cache_insert_id: return value: '34' (C:\Users\...\Documents\meinserver\ARP2.0\pawno\include\../include/core/publics.inc:74)
    [12/13/18 18:32:32] [DEBUG] AMX callback executed with error '0'
    [12/13/18 18:32:32] [INFO] Callback successfully executed.


    Dasist ein Teil des Logs.


    Wie meinst du mit ausgeben?

    Dies Funktion habe ich.


    stock SaveUserStats(playerid){ if(!SpielerDaten[playerid][pEingeloggt]) return 1; Ansonsten speichere sie new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET Level = '%d', Geld = '%d', Skin = '%d' WHERE id = '%d'", SpielerDaten[playerid][pLevel],SpielerDaten[playerid][pGeld],SpielerDaten[playerid][pSkin],SpielerDaten[playerid][p_id]); /*mysql_format(handle, query, sizeof(query), "UPDATE users SET Admin = '%d' WHERE id = '%d'", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);*/ Das Query wird abgesendet mysql_pquery(handle, query); return 1;}


    Was muss ich machen, damit das Geld beim geben n der DB gespiechert wird?
    Momentan wirds nur nach relog gespeichert.


    Edit: Habs gelöst