Was ist falsch Check-Points

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo hab hier ein kleines problem fiinde den fehler nicht wollte mehr checkpoints hinzufügen aber iwie klappts nicht zu anfang waren 2 habe jetzt noch 3 dazu gemacht die fehler lieneie habe ich rot markiert:


    oben habe ich:


    new Float:checkCoords[MAX_POINTS][10] = {
    {284.2472,-41.8122, 300.0394,-31.2338}, //AMMUNATION
    {284.0852,-112.7093, 298.1693,-102.9225}, //AMMUNATION_2
    {314.0160,-133.7381,999.6016,275.1007},
    {300.4065,-83.9975,1001.5156,180.1345},
    {312.3181,-165.6319,999.6010,173.7613}
    };
    new Float:checkpoints[MAX_POINTS][10] = {
    { 289.9959, -40.4220, 1001.5156, 8.0},
    { 296.3686, -105.0054, 1001.5156, 8.0},
    { 314.0160, -133.7381, 999.6016, 8.0},
    { 300.4065, -83.9975, 1001.5156, 8.0},
    { 312.3181, -165.6319, 999.6010, 8.0}
    };
    new checkpointType[MAX_POINTS] = {
    CP_AMMU,
    CP_AMMU_2,
    CP_AMMU_3,
    CP_AMMU_4,
    CP_AMMU_5
    };


    unten und da ist auch der fehler drin in Rot:


    forward checkpointUpdate();
    public checkpointUpdate()
    {
    for(new i=0; i<SLOTS; i++)
    {
    if(IsPlayerConnected(i)) {
    for(new j=0; j < MAX_POINTS; j++) {
    if(isPlayerInArea(i, checkCoords[j])) { <--- in dieser linie ist der fehler
    if(playerCheckpoint[i]!=j) {
    DisablePlayerCheckpoint(i);
    SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],checkpoints[j][3]);
    playerCheckpoint[i] = j;
    }
    } else {
    if(playerCheckpoint[i]==j) {
    DisablePlayerCheckpoint(i);
    playerCheckpoint[i] = 999;
    }
    }
    }
    }
    }
    }


    und so heisst der fehler :


    C:\rs.pwn(2736) : error 047: array sizes do not match, or destination array is too small
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Was ist da falsch ? :S

  • new Float:checkCoords[MAX_POINTS][4] = {
    {284.2472,-41.8122, 300.0394,-31.2338}, //AMMUNATION
    {284.0852,-112.7093, 298.1693,-102.9225}, //AMMUNATION_2
    {314.0160,-133.7381,999.6016,275.1007},
    {300.4065,-83.9975,1001.5156,180.1345},
    {312.3181,-165.6319,999.6010,173.7613}
    };
    new Float:checkpoints[MAX_POINTS][4] = {
    { 289.9959, -40.4220, 1001.5156, 8.0},
    { 296.3686, -105.0054, 1001.5156, 8.0},
    { 314.0160, -133.7381, 999.6016, 8.0},
    { 300.4065, -83.9975, 1001.5156, 8.0},
    { 312.3181, -165.6319, 999.6010, 8.0}
    };


    oder


    new Float:checkCoords[MAX_POINTS][3] = {
    {284.2472,-41.8122, 300.0394,-31.2338}, //AMMUNATION
    {284.0852,-112.7093, 298.1693,-102.9225}, //AMMUNATION_2
    {314.0160,-133.7381,999.6016,275.1007},
    {300.4065,-83.9975,1001.5156,180.1345},
    {312.3181,-165.6319,999.6010,173.7613}
    };
    new Float:checkpoints[MAX_POINTS][3] = {
    { 289.9959, -40.4220, 1001.5156, 8.0},
    { 296.3686, -105.0054, 1001.5156, 8.0},
    { 314.0160, -133.7381, 999.6016, 8.0},
    { 300.4065, -83.9975, 1001.5156, 8.0},
    { 312.3181, -165.6319, 999.6010, 8.0}
    };


    hab lange kein pwn mehr gescriptet aber ich glaube das war der fehler

  • Mhh Okay danke der error ist weg :) aber iwie werden die positionen ingame nicht angenommen also es sind ja checkpoints um sich waffen zu kaufen wenn man drin steht aber die neuen gehen nicht muss ich da was spezielles beachten ?

  • #define CP_AMMU 0
    #define CP_AMMU_2 1
    #define CP_AMMU_3 2
    #define CP_AMMU_4 3
    #define CP_AMMU_5 4
    #define MAX_POINTS 5


    dcmd_buyweapon(playerid, cmdtext[]) {
    #pragma unused cmdtext
    new string[256];
    new idx, weaponid;
    new tmp[256], tmp2[256];
    tmp = strtok(cmdtext, idx);
    tmp2 = strtok(cmdtext, idx);


    if(!strlen(tmp) || !strlen(tmp2)) {
    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /buyweapon [weapon_number] [amount]");
    return 1;
    }
    weaponid = strval(tmp);
    new ammos = strval(tmp2);


    if(IsPlayerInCheckpoint(playerid)==0 || playerCheckpoint[playerid]!=CP_AMMU && playerCheckpoint[playerid]!=CP_AMMU_2) {
    SendClientMessage(playerid, COLOR_YELLOW, "You need to be in an Ammunation to buy weapons.");
    return 1;
    }
    if(GetPlayerMoney(playerid) < weaponCost[weaponid]*ammos) {
    SendClientMessage(playerid, COLOR_RED, "You don't have enough money!");
    return 1;
    }
    if(weaponid < 0 || weaponid > MAX_WEAPONS-1){
    SendClientMessage(playerid, COLOR_RED, "Invalid weapon number.");
    return 1;
    }
    if(ammos < 1) {
    SendClientMessage(playerid, COLOR_RED, "Invalid weapon amount.");
    return 1;
    }


    format (string, sizeof(string), "You bought %d %s's for when you spawn.",ammos,weaponNames[weaponid]);
    SendClientMessage(playerid, COLOR_GREEN, string);


    GivePlayerWeapon(playerid, weaponIDs[weaponid], weaponAmmo[weaponid]*ammos);
    playerWeapons[playerid][weaponid] += ammos;


    GivePlayerMoney(playerid, 0-(weaponCost[weaponid]*ammos));
    return 1;
    }


    das ist noch das restliche er schreibt immernoch du bist nich am richtigen ort also ich mache doch /save im gunshop und nehme von diesem teil
    AddPlayerClass(107,314.0160,-133.7381,999.6016,275.1007,0,0,0,0,0,0);


    diese raus oder ?


    314.0160,-133.7381,999.6016