Beiträge von SylpheedW

    1.)
    hast du auch die Objekte nicht auf CreateObjekt


    2.)
    dass ist sicherlich dass die Desynct sind (ist normal meißtens)
    oder versuch mal TooglePlayerControllable//ist nicht richtig geschrieben


    3.)

    new Float:HP;
    GetPlayerHealth(i, HP);
    if(HP > 160.0)SetPlayerHealth(i, 160.0);


    MFG Piet

    schick mal dein Dialog Response


    und hier mein fs (kannste auf deine Enum umschreiben aber nicht mit dini) http://pastebin.com/0BHbku1d



    //hier dein Command gekürzt
    if(strcmp(cmd, "/radio", true) == 0)
    {
    if(!PlayerInfo[playerid][pRadio])SendClientMessage(playerid, COLOR_RED, "Du besitzt kein Auto Radio, du kannst eins im 24/7 Shop erwerben");
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_ORANGE, "Um Radio zuhören musst du in einem Fahrzeug sitzen!");
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))return SendClientMessage(playerid, COLOR_GRAD1, "{FFFFFF}Fahrräder haben {FF0000}keinen{FFFFFF} Motor ...");
    ShowPlayerDialog(playerid, DIALOG_RADIO, DIALOG_STYLE_LIST, "RealLife Of San Andreas Radio","Technobase.FM\nHardbase.FM\nHousetime.FM\nTrancebase.FM\nCoretime.FM\nClubtime.FM\nPlanet Radio\nYouFM\nYouFM Rock\nYouFM Club\nYouFM Black\n89.0RTL\nRadio Ausschalten","Auswählen","Abbrechen");
    }


    MFG Piet

    versuch es mal mit ner enum



    enum Spawns_
    {
    Float:PX,
    Float:PY,
    Float:PZ
    };


    new Float:Spawns1[5][Spawns_] =
    {
    {-206.9998,2625.0051,63.1365},//1
    {-246.2489,2677.4973,62.6782},//2
    {-278.4613,2712.0225,62.6875},//3
    {-196.6265,2731.9648,62.6875},//4
    {-176.7528,2742.9612,62.6541}//5
    };


    benutzung



    //ohne enum
    SetPlayerPos(playerid,Spawns1[rSpawn][0],Spawns1[rSpawn][1],Spawns1[rSpawn][2]);
    //mit enum
    SetPlayerPos(playerid,Spawns1[rSpawn][PX],Spawns1[rSpawn][PY],Spawns1[rSpawn][PZ]);


    ausserdem hat Spawns1 nicht 5 Float


    MFG Piet

    Ich bin an einem Speicherungsystem zugange da ich dini nicht mehr nutzen möchte und SQLite der Server meißtens crasht


    die anderen wie SII und HSA Multi gehen auch nicht ganz glatt ( ka warum)


    hier mein test



    new File:Data[2];// = EOpen("data.txt");
    Data = EOpen("data.txt");//0 = read 1 = write
    print("\ndata.txt index dat\n");
    for(new i=0; i<3; i++)printf("Versuch %i: %s", i, ERead(Data, "dat"));
    EWrite(Data, "data", "Nein");
    for(new i=0; i<3; i++)printf("Versuch %i: %s", i, ERead(Data, "dat"));
    print("\n------------------\n");
    EClose(Data);


    das ist meine Server Log:



    und hier den stock von ERead

    stock ERead(File:file[], index[])
    {
    new return_str[256], temp_str[256], return_pos=0, found_right=0;
    while(fread(file[0], temp_str))//read line by line
    {
    if(found_right)continue;
    new /*found_right=0,*/ x=0;
    if(!strcmp(temp_str, index, false, strlen(index)) && temp_str[strlen(index)] == ' ')
    {
    found_right=1;
    x=strlen(index)+1;
    }
    if(found_right)//wenn ' ' gefunden wurde
    {
    found_right=0;
    while(x<256)
    {
    return_str[return_pos]=temp_str[x];
    return_pos++;
    x++;
    }
    //break;
    }
    //break;
    }
    return return_str;
    }


    MFG Piet


    Edit infos

    bei einem stock braucht mann kein forward
    bei Float wusste ich nicht



    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    du musst beim return nicht angeben was return werden soll (der dyp also string oder Float


    edit forward


    MFG Piet

    du hast die Funktion strtok nicht in deinem Script


    wenn du mal lesen würdest was da steht und fehlerklärbär kann dir auch helfen


    http://wiki.sa-mp.com/wiki/Strtok


    hier der code



    und new cmd; gegen new cmd[128];


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    MFG Piet


    edit:funktion + link

    ausserdem würde ich /contractlist so machen



    ocmd:contractlist(playerid,params[])
    {
    new Spieler[64];
    new Spieler2[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(dini_Int(Spieler,"Fraktion")==3)
    {
    new string[600];
    format(string, 600, "Contracts:");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    format(Spieler2,sizeof(Spieler2),"Spieler/%s.txt",PlayerName(i));
    if(IsPlayerConnected(i) && dini_Int(Spieler2,"Kopfgeld")>0)format(string,sizeof(string),"%s\n%s %i€",string,PlayerName(i),dini_Int(Spieler2,"Kopfgeld"));
    }
    ShowPlayerDialog(playerid,Dialog_Contracts,DIALOG_STYLE_MSGBOX,"Contracts:",string,"Okay","");
    }
    return 1;
    }


    //edit contract

    ocmd:contract(playerid,params[])
    {
    new Spieler[64],Spieler2[64],pID,kopfgeld;
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    if(dini_Int(Spieler,"Fraktion")==3)return SendClientMessage(playerid,Rot,"Du bist selber Hitman!");
    if(sscanf(params,"ui",pID,kopfgeld))return SendClientMessage(playerid,Rot,"Fehler: /contract [ID/Name] [Kopfgeld]");
    format(Spieler2,sizeof(Spieler2),"Spieler/%s.txt",PlayerName(pID));//pID ist null bevor sscanf ?!!!!!!!!!!
    if(dini_Int(Spieler2, "Kopfgeld") > 0)return SendClientMessage(playerid, Rot, "Auf den Spieler ist bereits kopfgeld ausgesetzt worden.");
    if(kopfgeld<999 && kopfgeld>50001)return SendClientMessage(playerid,Rot,"Das Kopfgeld muss mindestens 1000€ und höchstens 50.000€ betragen!");
    GivePlayerMoney(playerid,-kopfgeld);
    dini_IntSet(Spieler2,"Kopfgeld",kopfgeld);
    new string[128];
    format(string,sizeof(string),"Du hast einen Contract auf %s gesetzt. Kopfgeld: %i€",PlayerName(pID),kopfgeld);
    SendClientMessage(playerid, Rot, string);
    return 1;
    }



    MFG Piet

    sieht hammer aus
    aber mit dem aufzug könntest du da noch türen machen
    9/10


    aber was ich nicht verstehe

    Zitat


    Dieser Beitrag wurde bereits 574493 mal editiert, zuletzt von »V1P3RLP« (Heute, 08:51)