Beiträge von Exqoolz

    enum e_Gangzone
    {
    gOwner,
    Float:gMinX,
    Float:gMinY,
    Float:gMaxX,
    Float:gMaxY,
    gRunning,
    gScore1,
    gScore2,
    gAttacker
    }


    new Gangzones[MAX_GANGZONES][e_Gangzone] = {
    {0,1856.0,-1132.0,2063.0,-1257.0,0,0,0,0},
    {0,0.0,0.0,0.0,0.0,0,0,0,0}
    };

    Tag,


    habe folgendes Problem, dass er mir immer sagt, dass ich in keinem Gebiet bin.

    Code:

    Spoiler anzeigen
    stock IsPlayerInGangzone(playerid)
    {
    for(new i;i<sizeof(Gangzones);i++)
    {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);
    if(Gangzones[i][gMinX] < GetX && Gangzones[i][gMaxX] > GetX && Gangzones[i][gMinY] < GetY && Gangzones[i][gMaxY] > GetY)
    {
    return i;
    }
    return -1;
    }
    return -1;
    }CMD:invade(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    if(Spieler[playerid][pFraktion] == 1)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Gang oder Mafia!");
    if(Spieler[playerid][pFraktion] == 3)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Gang oder Mafia!");
    if(Spieler[playerid][pRank] < 7)return SendClientMessage(playerid, COLOR_GREY, "** Du bist kein Co-Leader oder höher.");
    if(IsPlayerInGangzone(playerid) > -1)
    {
    new string[128];
    new zone = IsPlayerInGangzone(playerid);
    if(Gangzones[zone][gRunning] == 1)return SendClientMessage(playerid,COLOR_GREY,"** Das Gebiet wird bereits angegriffen!");
    if(Gangzones[zone][gOwner] == Spieler[playerid][pFraktion]) return SendClientMessage(playerid,COLOR_GREY,"** Ihr seid bereits im Besitz dieses Gebietes.");
    Gangzones[zone][gAttacker] = Spieler[playerid][pFraktion];
    Gangzones[zone][gRunning] = 1;
    SetTimerEx("Gangfight",1800000,0,"i",zone);
    format(string, sizeof(string), "[ GANGFIGHT ] Die Fraktion %s greift ein Gebiet der Fraktion %s an!", GetFraktionName(Gangzones[zone][gAttacker]), GetFraktionName(Gangzones[zone][gOwner]));
    SendClientMessageToAll(COLOR_ORANGE, string);
    }else{
    SendClientMessage(playerid, COLOR_GREY, "** Du bist in keinem Gebiet.");
    }
    return 1;
    }


    Danke im Voraus
    Exqool

    stock IsPlayerInGangzone(playerid)
    {
    for(new i;i<sizeof(Gangzones);i++)
    {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);
    if(Gangzones[i][gMinX] < GetX && Gangzones[i][gMaxX] > GetX && Gangzones[i][gMinY] < GetY && Gangzones[i][gMaxY] > GetY)
    {
    return i;
    }
    return -1;
    }
    return -1;
    }
    CMD:invade(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    if(Spieler[playerid][pFraktion] == 1)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Gang oder Mafia!");
    if(Spieler[playerid][pFraktion] == 3)return SendClientMessage(playerid, COLOR_GREY, "** Du bist in keiner Gang oder Mafia!");
    if(Spieler[playerid][pRank] < 7)return SendClientMessage(playerid, COLOR_GREY, "** Du bist kein Co-Leader oder höher.");
    if(IsPlayerInGangzone(playerid) > -1)
    {
    new string[128];
    new zone = IsPlayerInGangzone(playerid);
    if(Gangzones[zone][gRunning] == 1)return SendClientMessage(playerid,COLOR_GREY,"** Das Gebiet wird bereits angegriffen!");
    if(Gangzones[zone][gOwner] == Spieler[playerid][pFraktion]) return SendClientMessage(playerid,COLOR_GREY,"** Ihr seid bereits im Besitz dieses Gebietes.");
    Gangzones[zone][gAttacker] = Spieler[playerid][pFraktion];
    Gangzones[zone][gRunning] = 1;
    SetTimerEx("Gangfight",1800000,0,"i",zone);
    format(string, sizeof(string), "[ GANGFIGHT ] Die Fraktion %s greift ein Gebiet der Fraktion %s an!", GetFraktionName(Gangzones[zone][gAttacker]), GetFraktionName(Gangzones[zone][gOwner]));
    SendClientMessageToAll(COLOR_ORANGE, string);
    }else{
    SendClientMessage(playerid, COLOR_GREY, "** Du bist in keinem Gebiet.");
    }
    return 1;
    }
    Sagt mir immer, dass ich in keinem Gebiet drin bin?

    enum e_Gangzone
    {
    gOwner,
    Float:gMinX,
    Float:gMinY,
    Float:gMaxX,
    Float:gMaxY,
    gRunning,
    gScore1,
    gScore2,
    gAttacker
    }


    new Gangzones[MAX_GANGZONES][e_Gangzone] = {
    {0,1856.0,-1132.0,2063.0,-1257.0,0,0,0,0},
    {0,0.0,0.0,0.0,0.0,0,0,0,0}
    };


    new Gangzone[1];
    public OnPlayerSpawn(playerid)
    {
    PlayerTextDrawHide(playerid, pTextTime[playerid][0]);
    PlayerTextDrawHide(playerid, pTextTime[playerid][1]);
    PlayerTextDrawHide(playerid, pTextTime[playerid][2]);
    PlayerTextDrawHide(playerid, pTextHUD[playerid][17]);
    PlayerTextDrawShow(playerid, pTextHUD[playerid][17]);


    for(new i; i<sizeof(Gangzones); i++)
    {
    new color;
    if(Gangzones[i][gOwner] == 2){
    color = 0x57575757;
    }
    if(Gangzones[i][gOwner] == 4){
    color = 0x23C70202;
    }
    GangZoneShowForPlayer(playerid, Gangzone[i], color);
    }


    new datumstring[100], uhrstring[100], framesstring[100], bankstring[100];
    format(datumstring, sizeof(datumstring), "%02d.%02d.%04d", tag, monat, jahr);
    Seitdem ich diesen for(new-Teil eingefügt habe, geht das OnPlayerSpawn nicht mehr richtig?
    Also alles danach wird nicht ausgeführt.


    Jap

    K


    Klappt leider nicht :/

    CMD:treasury(playerid,params[])
    {
    if(!IsLoggedIn(playerid))return 1;
    if(Spieler[playerid][pAdmin] < 6)return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt nicht die benötigten Rechte.");
    new enter[128], wert, string[128];
    if(sscanf(params,"s",enter))
    {
    SendClientMessage(playerid, COLOR_GREY, "** Benutze /treasury [balance/deposit/withdraw/set] [value]");
    return 1;
    }
    if(strcmp(enter, "balance", true) == 0)
    {
    format(string, sizeof(string), "* In der Staatskasse sind %i$.", Others[Staatskasse]);
    SendClientMessage(playerid, COLOR_AM, string);
    return 1;
    }
    if(strcmp(enter, "deposit", true) == 0)
    {
    if(sscanf(params, "si", enter, wert))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /treasury [balance/deposit/withdraw/set] [value]");
    format(string, sizeof(string), "* %s %s hat %i$ in die Staatskasse eingezahlt.", GetPlayerAdminName(playerid), GetName(playerid), wert);
    SendAdminMessage(COLOR_AM, string);
    Others[Staatskasse] += wert;
    GiveMoney(playerid, -wert);
    return 1;
    }
    if(strcmp(enter, "withdraw", true) == 0)
    {
    if(sscanf(params, "si", enter, wert))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /treasury [balance/deposit/withdraw/set] [value]");
    format(string, sizeof(string), "* %s %s hat %i$ von der Staatskasse abgehoben.", GetPlayerAdminName(playerid), GetName(playerid), wert);
    SendAdminMessage(COLOR_AM, string);
    Others[Staatskasse] -= wert;
    GiveMoney(playerid, wert);
    return 1;
    }
    if(strcmp(enter, "set", true) == 0)
    {
    if(sscanf(params, "si", enter, wert))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /treasury [balance/deposit/withdraw/set] [value]");
    format(string, sizeof(string), "* %s %s hat den Kontostand der Staatskasse auf %i$ gesetzt.", GetPlayerAdminName(playerid), GetName(playerid), wert);
    SendAdminMessage(COLOR_AM, string);
    Others[Staatskasse] = wert;
    return 1;
    }
    return 1;
    }


    Nur /treasury balance geht ?(

    Poste mal den log.

    Fehler doch nicht gefunden. Im Serverlog ist nichts.


    MySQL-Log:


    Kann mir jemand sagen, warum bei diesen Commands mein Server crasht?


    CMD:banip(playerid, params[])
    {
    if(!IsLoggedIn(playerid))return 1;
    new pID, grund[64], string[128];
    if(Spieler[playerid][pAdmin] < 3)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
    if(sscanf(params, "s[128]s[64]", pID, grund))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /banip [IP-Adresse] [Grund]");
    format(string, sizeof(string),"banip %s", pID);
    SendRconCommand(string);
    SendRconCommand("reloadbans");
    format(string, sizeof(string), "* %s %s hat die IP '%s' gebannt, Grund: %s", pID, grund);
    SendAdminMessage(COLOR_AM, string);
    return 1;
    }


    CMD:unbanip(playerid, params[])
    {
    if(!IsLoggedIn(playerid))return 1;
    new pID, grund[64], string[128];
    if(Spieler[playerid][pAdmin] < 3)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
    if(sscanf(params, "s[128]s[64]", pID, grund))return SendClientMessage(playerid, COLOR_GREY, "** Benutze /unbanip [IP-Adresse] [Grund]");
    format(string, sizeof(string),"unbanip %s", pID);
    SendRconCommand(string);
    SendRconCommand("reloadbans");
    format(string, sizeof(string), "* %s %s die IP '%s' entbannt, Grund: %s", pID, grund);
    SendAdminMessage(COLOR_AM, string);
    return 1;
    }

    In dem enum Fehlt:
    dPID,


    Dann kommt leider das:
    C:\Users\ZAFER\Desktop\samp\gamemodes\self.pwn(1128) : error 021: symbol already defined: "dPID"
    C:\Users\ZAFER\Desktop\samp\gamemodes\self.pwn(12524) : error 032: array index out of bounds (variable "dPickUp")

    Hi, habe mal wieder ein Problem :D



    enum dPickUpInfo
    {
    dPmID,
    dPtype,
    Float:dPpx,
    Float:dPpy,
    Float:dPpz,
    dPvw
    }


    new dPickUp[MAX_DPICKUPS][dPickUpInfo];
    new dPID;


    public LoadDPickUps()
    {
    new rows,fields;
    cache_get_data(rows, fields);
    new pck = 0;
    if(rows)
    {
    while(pck < rows)
    {
    dPickUp[pck][dPmID] = cache_get_field_content_int(pck, "modelid");
    dPickUp[pck][dPtype] = cache_get_field_content_int(pck, "type");
    dPickUp[pck][dPpx] = cache_get_field_content_float(pck, "x");
    dPickUp[pck][dPpy] = cache_get_field_content_float(pck, "y");
    dPickUp[pck][dPpz] = cache_get_field_content_float(pck, "z");
    dPickUp[pck][dPvw] = cache_get_field_content_int(pck, "vw");
    dPickUp[pck][dPID] = CreatePickup(dPickUp[pck][dPmID],dPickUp[pck][dPtype],dPickUp[pck][dPpx],dPickUp[pck][dPpy],dPickUp[pck][dPpz],dPickUp[pck][dPvw]);
    pck++;
    }
    }
    printf("[LOAD] Dynamische Pickups wurden geladen (%i/%i)", rows, MAX_DPICKUPS);
    return 1;
    }


    Kriege hier ein 213 tag mismatch: dPickUp[pck][dPID] = CreatePickup(dPickUp[pck][dPmID],dPickUp[pck][dPtype],dPickUp[pck][dPpx],dPickUp[pck][dPpy],dPickUp[pck][dPpz],dPickUp[pck][dPvw]);
    Weiß aber nicht warum, Floats sind doch richtig?