Beiträge von Fernando_Jizuya

    #define MAX_WEAPONS 50
    new PlayerWeapons[MAX_PLAYERS][MAX_WEAPONS];
    new Spawned[MAX_PLAYERS];


    Dann unter OnPlayerSpawn in der letzten Zeile:
    Spawned[playerid] = 1;


    Unter OnPlayerConnect:
    Spawned[playerid] = -1;


    Am besten unten im Script:
    stock GivePlayerWeapons(playerid, weaponid, ammo)
    {
    PlayerWeapons[playerid][weaponid] = weaponid;
    GivePlayerWeapon(playerid, weaponid, ammo);
    }


    Waffen gibst du dann mit GivePlayerWeapons, statt mit GivePlayerWeapon.


    In einem Sekundentimer am besten:
    if(GetPlayerWeapon(i) >= 1 && 47)
    {
    new weaponid = GetPlayerWeapon(i);
    if(PlayerWeapons[i][weaponid] == 0 && weaponid != 46 && !IsPlayerNPC(i))
    {
    if(Spawned[i] == 1)
    {
    SendClientMessage(i,-1,"Waffenhack erkannt.");
    }
    }
    }

    Mach es so:


    SetTimer("PayDay", 60000, true);


    public PayDay()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    sInfo[playerid][payday]++;
    if(sInfo[playerid][payday] == 60)
    {
    new paytext[300],paytext1[299];
    PlayerPlaySound(playerid,1083,0,0,0);
    SendClientMessage(playerid,COLOR_YELLOW,"_______________|Payday|_______________");
    giveplayermoney(playerid,GetPlayerScore(playerid)*460);
    format(paytext,sizeof(paytext),"Gehalt: {37FF00}+%i$ {FFFFFF}+| Steuern: {FF0005}-%i$ {FFFFFF}| Krankenversicherung: {FF0005}-%i$",GetPlayerScore(playerid)*400,GetPlayerScore(playerid)*50,GetPlayerScore(playerid)*30);
    SendClientMessage(playerid,C_Weiß,paytext);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*50);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*30);
    if(GetPlayerScore(playerid) >= 4)
    {
    format(paytext1,sizeof(paytext1),"KFZ-Versicherung: {FF0005}-%i$ {FFFFFF}| Wasser & Strom: {FF0005}-%i$ {FFFFFF}| Müllentsorgung: {FF0005}-%i$",GetPlayerScore(playerid)*22,GetPlayerScore(playerid)*8,GetPlayerScore(playerid)*4);
    SendClientMessage(playerid,C_Weiß,paytext1);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*22);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*8);
    GivePlayerMoney(playerid,-GetPlayerScore(playerid)*4);
    }
    new string[256],respektlevel;
    sInfo[playerid][respekt]++;
    respektlevel=GetPlayerScore(playerid)*3;
    if(sInfo[playerid][respekt]>=respektlevel)
    {
    format(string,sizeof(string),"Du hast genug Respektpunkte für einen Levelaufstieg. Tippe: /buylevel",sInfo[playerid][respekt],respektlevel);
    }
    else
    {
    format(string,sizeof(string),"Respektpunkte: [%i / %i]",sInfo[playerid][respekt],respektlevel);
    }
    SendClientMessage(playerid,COLOR_YELLOW,string);
    sInfo[playerid][payday]=0;
    }
    }
    return 1;
    }
    }

    Sag das doch gleich:


    ocmd:createhaus(playerid,params[])
    {
    new preis,interior,Float:ixc,Float:iyc,Float:izc;
    if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
    if(sscanf(params,"iifff",preis,interior,ixc,iyc,izc))return SendClientMessage(playerid,ROT,"Befehl: /createhaus [PREIS][INTERIOR][INT-X][INT-Y][INT-Z]");
    new Float:xc, Float: yc, Float:zc;
    GetPlayerPos(playerid,xc,yc,zc);
    for(new i=1; i<sizeof(hInfo); i++)
    {
    if(hInfo[i][h_Erstellt] == 0)
    {
    hInfo[i][h_Erstellt] =1;
    hInfo[i][h_x]=xc;
    hInfo[i][h_y]=yc;
    hInfo[i][h_z]=zc;
    hInfo[i][h_ix]=Float:ixc;
    hInfo[i][h_iy]=Float:iyc;
    hInfo[i][h_iz]=Float:izc;
    hInfo[i][h_interior]=interior;
    hInfo[i][h_preis]=preis;
    strmid(hInfo[i][h_besitzer],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    updateHaus(i);
    new query[256];
    format(query,sizeof(query),"INSERT INTO house (h_id,h_Erstellt,h_x,h_y,h_z,h_ix,h_iy,h_iz,h_interior,preis) VALUES ('%i','%i','%f','%f','%f','%f','%f','%f','%i','%i')",i,hInfo[i][h_Erstellt],xc,yc,zc,hInfo[i][h_ix],hInfo[i][h_iy],hInfo[i][h_iz],hInfo[i][h_interior],hInfo[i][h_preis]);
    mysql_function_query(dbverbindung, query, false,"","");
    return 1;
    }
    }
    return 1;
    }

    Schau mal:


    Es existieren 0 Häuser.
    Du gibst den Befehl ein und die Schleife geht durch ALLE Häuser, da ja keins existiert fängt das ganze bei ID 1 an.
    Erstellst du nun z.B 9 weitere Häuser, sind wir bei ID 10.
    Nun willst du ein 11 Haus erstellen, die Schleife geht durch (Beispiel: #define MAX_HAUS 300) also durch 300 und sieht das 10 Häuser bereits bestehen, also kommt ID 11 da die Variable h_Erstellt == 0 bei der ID 11 ist, da diese ID ja Frei ist, erstellt er das Haus mit der ID 11.


    Falls du das mit MAX_HAUS machen möchtest:


    #define MAX_HAUS 300
    for(new i=1; i<sizeof(MAX_HAUS); i++)


    Beachte das du damit nur 300 Häuser erstellen kannst.

    ocmd:createhaus(playerid,params[])
    {
    new preis,interior,Float:ixc,Float:iyc,Float:izc;
    if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
    if(sscanf(params,"iifff",preis,interior,ixc,iyc,izc))return SendClientMessage(playerid,ROT,"Befehl: /createhaus [PREIS][INTERIOR][INT-X][INT-Y][INT-Z]");
    new Float:xc, Float: yc, Float:zc;
    GetPlayerPos(playerid,xc,yc,zc);
    for(new i=1; i<sizeof(hInfo); i++)
    {
    if(hInfo[i][h_Erstellt] == 0)
    {
    hInfo[i][h_Erstellt] =1;
    hInfo[i][h_x]=xc;
    hInfo[i][h_y]=yc;
    hInfo[i][h_z]=zc;
    hInfo[i][h_ix]=Float:ixc;
    hInfo[i][h_iy]=Float:iyc;
    hInfo[i][h_iz]=Float:izc;
    hInfo[i][h_interior]=interior;
    hInfo[i][h_preis]=preis;
    strmid(hInfo[i][h_besitzer],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    updateHaus(i);
    new query[256];
    format(query,sizeof(query),"INSERT INTO house (h_id,h_Erstellt,h_x,h_y,h_z,h_ix,h_iy,h_iz,h_interior,preis) VALUES ('%i','%i','%f','%f','%f','%f','%f','%f','%i','%i')",i,hInfo[i][h_Erstellt],xc,yc,zc,hInfo[i][h_ix],hInfo[i][h_iy],hInfo[i][h_iz],hInfo[i][h_interior],hInfo[i][h_preis]);
    mysql_function_query(dbverbindung, query, false,"","");
    }
    }
    return 1;
    }


    Ersetz alle Haus Schleifen durch:
    for(new i=1; i<sizeof(hInfo); i++)


    Und erstell noch eine Variable für die Häuser mit dem Namen: h_Erstellt.