Beiträge von IPrototypeI

    Beim Streamerplugin verändert man das Limit der eingestreamten Objekte mit
    Streamer_VisibleItems(STREAMER_TYPE_OBJECT,jeweilige Zahl);


    maximal sind jedoch nur 1000 Möglich da ist ja auch logisch per CreatePlayerObject sind auch nur 1000 Möglich für den spieler

    Sieht sehr gut aus nur im video werden spät die Objekte eingestreamt daher sieht das etwas komisch aus , jedoch ist dies sehr merkwürdig
    beim streamer plugin da du standart mäßig 500 objekte streamen kannst. Setzt es halt höher das limit ^^.

    so oder
    stock mysql_CheckMoney()
    {
    new Query[128];
    format(Query, sizeof(Query), "SELECT SUM(Bankgeld) as Konto FROM `accounts`");
    mysql_query(Query);
    mysql_store_result();
    new money = mysql_fetch_int();
    mysql_free_result();
    return money;
    }



    stock mysql_CheckMoney()
    {
    new Query[128],money[20];
    format(Query, sizeof(Query), "SELECT SUM(Bankgeld) as Konto FROM `accounts`");
    mysql_query(Query);
    mysql_store_result();
    mysql_get_field("Konto",money);
    mysql_free_result();
    return strval(money);
    }


    ich geh auf jedenfall eher davon aus das die zweite version gehen sollte kannst jedoch die obere auch mal testen.
    normal arbeitet man mit hier Konto weiter dies ist nur ein name wovon man dies auslsen kann daher nicht als spalte verwenden.

    Die crashinfo bringt den meisten so gut wie nix daher compile dein skript im debug modus


    erstelle eine pawn.cfg mit dem inhalt -d3 -r in deinem pawno ordner


    danach kompile sein skript neu weil nun werden die fehler in der server.log angezeigt mit entsprechender zeile.

    zu dem bei mir habe ich vergessen die eine Klammer raus zu nehmen

    if(strcmp(cmd, "/f", true) == 0 || strcmp(cmd, "/family", true) == 0){
    if(PlayerInfo[playerid][pGangJailed] == 1)return SendClientMessage(playerid, Hellrosa, "Du kannst nichts in den Familiemchat schreiben, da du entführt wurdest!");
    if(PlayerTied[playerid] == 1)return SendClientMessage(playerid, Hellrosa, "Du kannst nichts in den Familiemchat schreiben, da du entführt wurdest!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    for(; idx < length; idx++)if(cmdtext[idx] <= ' ')break;
    new offset = idx, result[64],string[128];
    for(; (idx < length) && ((idx - offset) < (sizeof(result) - 1)); idx++)result[idx - offset] = cmdtext[idx];
    result[idx - offset] = EOS;
    if(!strlen(result))return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/f)[Family]");
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1){
    if(PlayerInfo[playerid][pRank] == 0) format(string,sizeof(string),"**PolizeiAzubi** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 1)format(string,sizeof(string),"**Polizeimeisteranwärter** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 2)format(string,sizeof(string),"**Polizeimeister** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 3)format(string,sizeof(string),"**Polizeihauptmeister** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 4)format(string,sizeof(string),"**Polizeioberhauptmeister** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 5)format(string,sizeof(string),"**Polizeichef** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 6)format(string,sizeof(string),"**Polizeidirektor** %s: %s",sendername,result);
    else format(string, sizeof(string), "** Kadett %s: %s, over. **", sendername, result);
    for(new i=0; i< MAX_PLAYERS; ++i)if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)SendClientMessage(i, Farbe_Turkis, string);
    printf("%s", string);
    return 1;
    }else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3){
    if(PlayerInfo[playerid][pRank] == 6) format(string, sizeof(string), "**Hauptmann** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 5) format(string, sizeof(string), "**ObersterFeldwebel %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 4) format(string, sizeof(string), "**Feldwebel** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 3) format(string, sizeof(string), "**Soldat** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 2) format(string, sizeof(string), "**Auszubildener** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 1) format(string, sizeof(string), "**Rekrut** %s: %s",sendername,result);
    else format(string, sizeof(string), "** Intern %s: %s, over. **", sendername, result);
    for(new i=0; i< MAX_PLAYERS; ++i)if(PlayerInfo[i][pMember] == 3 || PlayerInfo[i][pLeader] == 3)SendClientMessage(i, Farbe_Turkis, string);
    }else return SendClientMessage(playerid, COLOR_GRAD2, " Du bist in keinem befugten Team!");
    return 1;
    }


    so wäre dies richtig


    jedoch verwendest du
    SendFamilyMessage(family, color, string[])
    falsch


    new Frak;
    SendFamilyMessage(Frak, Farbe_Turkis, string);


    Frak hat den wert 0 du musst dort die Variabel einfügen wo die Fraktion gespeichert ist vom Spieler


    new Frak =(PlayerInof[playerid][pMember] == 0) ? (PlayerInof[playerid][pLeader]):(PlayerInof[playerid][pMember]);

    Biz = bussiness


    sBiz = special bussiness


    es gibt daher zwei bussinesse Arten die einen kann man sogar betreten also die wo in der bizz.cfg stehen und die anderen sind Bussinesse kann man nicht betreten .


    Ob die annahme stimmt darüber kann man sich streiten jedoch bedeutet biz aufjedenfall bussiness beziehungsweise es ist ein kürzel dafür :D




    hier bitte



    if(strcmp(cmd, "/f", true) == 0 || strcmp(cmd, "/family", true) == 0){
    if(PlayerInfo[playerid][pGangJailed] == 1)return SendClientMessage(playerid, Hellrosa, "Du kannst nichts in den Familiemchat schreiben, da du entführt wurdest!");
    if(PlayerTied[playerid] == 1)return SendClientMessage(playerid, Hellrosa, "Du kannst nichts in den Familiemchat schreiben, da du entführt wurdest!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    for(; idx < length; idx++)if(cmdtext[idx] <= ' ')break;
    new offset = idx, result[64],string[128];
    for(; (idx < length) && ((idx - offset) < (sizeof(result) - 1)); idx++)result[idx - offset] = cmdtext[idx];
    result[idx - offset] = EOS;
    if(!strlen(result))return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/f)[Family]");
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1){
    if(PlayerInfo[playerid][pRank] == 0) format(string,sizeof(string),"**PolizeiAzubi** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 1)format(string,sizeof(string),"**Polizeimeisteranwärter** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 2)format(string,sizeof(string),"**Polizeimeister** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 3)format(string,sizeof(string),"**Polizeihauptmeister** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 4)format(string,sizeof(string),"**Polizeioberhauptmeister** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 5)format(string,sizeof(string),"**Polizeichef** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 6)format(string,sizeof(string),"**Polizeidirektor** %s: %s",sendername,result);
    else format(string, sizeof(string), "** Kadett %s: %s, over. **", sendername, result);
    for(new i=0; i< MAX_PLAYERS; ++i)if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)SendClientMessage(i, Farbe_Turkis, string);
    printf("%s", string);
    return 1;
    }else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3){
    if(PlayerInfo[playerid][pRank] == 6) format(string, sizeof(string), "**Hauptmann** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 5) format(string, sizeof(string), "**ObersterFeldwebel %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 4) format(string, sizeof(string), "**Feldwebel** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 3) format(string, sizeof(string), "**Soldat** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 2) format(string, sizeof(string), "**Auszubildener** %s: %s",sendername,result);
    else if(PlayerInfo[playerid][pRank] == 1) format(string, sizeof(string), "**Rekrut** %s: %s",sendername,result);
    else format(string, sizeof(string), "** Intern %s: %s, over. **", sendername, result);
    for(new i=0; i< MAX_PLAYERS; ++i)if(PlayerInfo[i][pMember] == 3 || PlayerInfo[i][pLeader] == 3)SendClientMessage(i, Farbe_Turkis, string);
    }else return SendClientMessage(playerid, COLOR_GRAD2, " Du bist in keinem befugten Team!");
    }
    return 1;
    }


    hab das ganze mal ein wenig umgeschrieben dennoch zeig auch noch die deklarierung der Funktion SendFamilyMessage


    Schau halt mal in den oberen code rein was du dort gemacht hast was beim unteren fehlt


    Tipp: Es fehlt aufjedenfall was
    format(string,sizeof(string),"Name:%s\nLevel:%d\nMoney:%d\nPing:%d\nAdminlevel:%d",...........
    ich bezieh mich hier jetzt eher auf die .... das du das darauf folgende anschaust was die platzhalter in deinem string einnehmen an werte


    Ah dankeschön. Und vorallem danke für die Erklärung.


    Dennoch ist hier ein kleiner operator falsch gesetzt ich habs oben nochmal verbessert es muss gleich sein also gleich null ==
    nicht alles außer 0 != das continue wird dazu benutzt sofort den momentanen wert zu überspringen also von 2 direkt dann gleich von vorne mit 3

    hier bitte


    if(!strcmp(cmdtext,"/admins", true)){
    SendClientMessage(playerid,GELB,"------------------------Admins------------------------");
    new i, string[64], adminname[30];
    for(; i < MAX_PLAYERS; ++i){
    if(GetPVarInt(i,"Adminlevel") == 0)continue;
    switch(GetPVarInt(i,"Adminlevel")){
    case 1:adminname="{00FF5A}Supporter";
    case 2:adminname="{572B54}Moderator";
    case 3:adminname="{858BBB}Super Moderator";
    case 4:adminname="{0000FF}Admin";
    case 5:adminname="{FF0000}Fulladmin";
    }
    format(string, 64, "%s {FFFFFF}%s",adminname,PlayerName(i));
    SendClientMessage(playerid,0x00FF00FF,string);
    }
    return 1;
    }


    zu bedeutet ! = alles außer und es wird generel von dem wert 1 ausgegangen
    daher bedeutet dies
    if(!isPlayerAnAdmin(i,1)) alles außer eins dabei ist die eins auf den rückgabe wert bezogen


    //edit


    zu dem abzufragen bei der eingabe ob der spieler online ist macht keinen sinn . Wenn der spieler nicht online ist kann er keine commands eingegeben
    dies macht doch sinn.


    Im großen und ganzen gillt dies auch für die for-schleife das eine abfrage schon reicht

    Also mit deinem vorher nacher vergleich wirst du keine Anhänger finden es zwar keine vorher nacher bilder vorhanden , jedoch geh ich mal aus das diee in dem Fall bestimmt besser aussehen . Am besten lässt du dir was neues dazu einfallen beispiel die Wüste verschönen oder ihrgend einen anderen grauen Landstrich
    aufpeppen

    Hab das ganze auch mal geschrieben ^^



    for(new i= 19; i != 0; --i){
    if(i==19){
    LastEinsatz[i][Einsatzid]= 0;
    LastEinsatz[i][Inuse]= 0;
    strdel(LastEinsatz[i][Beschreibung],0,256);
    strdel(LastEinsatz[i][Stichwort],0,1024);
    }else{
    memcpy(LastEinsatz[(i+1)][Beschreibung], LastEinsatz[i][Beschreibung], strlen(LastEinsatz[(i+1)][Beschreibung]) * 4, 256 * 4, 1024);
    memcpy(LastEinsatz[(i+1)][Stichwort], LastEinsatz[i][Stichwort], strlen(LastEinsatz[(i+1)][Stichwort]) * 4, 256 * 4, 1024);
    LastEinsatz[(i+1)][Inuse]=1;
    LastEinsatz[(i+1)][Einsatzid]= i;
    LastEinsatz[i][Einsatzid]= 0;
    LastEinsatz[i][Inuse]=0;
    strdel(LastEinsatz[i][Beschreibung],0,1024);
    strdel(LastEinsatz[i][Stichwort],0,256);
    }
    }


    sollte vom code her schneller sein die version von RG
    das ganze schiebt alles ein stück nach oben und memcpy ist bei großen strings schneller als strcat ^^