Jump to content

[XSS]MaxXx

Membru
  • Posts

    68
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by [XSS]MaxXx

  1. am gasit problema, dar nu stii cu msa fac sa scriu /mp3 si sa pun o muzica ca sa cinte la toata lumea de pe serever??

    for(new i; i <= MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            PlayAudioStreamForPlayer(i, "http://link-melodie.mp3");
        }
    }

  2. http://wiki.sa-mp.com/wiki/SetTimer

    forwarnd TimerulMeu();
    SetTimer("TimerulMeu", 1000,  false); //1000 = 1 Secunda
    public TimerulMeu()
    {
        //Codul...
    }
    Ultimul parametru al Timerului il pui "false" daca vrei ca el sa ruleze doar o singura data functia respectiva.
    forwarnd TimerulMeu();
    SetTimer("TimerulMeu", 1000,  true); //1000 = 1 Secunda
    public TimerulMeu()
    {
        //Codul...
    }

    Sau "true" daca vrei ca timer-ul respectiv sa ruleze o anumita functie la fiecare Secunda in cazul exemplului de mai sus...

  3. Engleza, eu asa am facut la server-ul meu (chiar daca e unul de Stunt) :grin:.

    Pentru ca:

    In prezent sunt foarte putini cei care nu stiu nici macar un "strop" de engleza aici referindu-ma la playerii romani.

    In al doilea rand poti atrage mai multi playeri, nu numai romani ci si straini cu care te poti descurca mai usor decat cu romanii din simplul motiv ca ei nu iti v-or cere leadere, bla.. bla doar pentru a se juca pe server si se v-or juca daca le va place si v-or avea cu cine...

  4. Acum m-am uitat mai atent la tot scriptul tau si pot spune ca e cam aiurea...

    Schimba asta:

    public OnPlayerConnect(playerid)
    {
    new nume[30],DBResult:Rezultat;
    GetPlayerName(playerid,nume,30);
    format(Query,2048,"SELECT `Key`,`Bani`,`Score`,`Deaths` FROM `Database` WHERE `nume` = '%s'",nume);
    Rezultat = db_query(Database,Query);
    if(db_num_rows(Rezultat) == 1 )
    {
    new field[2048];
    db_get_field_assoc(Rezultat,"Bani",field,2048);
    db_get_field_assoc(Rezultat,"Score",field,2048);
    db_get_field_assoc(Rezultat,"Deaths",field,2048);
    P_DATA[playerid][Bani] = strval(field);
    P_DATA[playerid][Score] = strval(field);
    P_DATA[playerid][Deaths] = strval(field);
    }
    else
    {
    format(Query,2048,"INSERT INTO `Database` VALUES (NULL,'%s','%d','%d','%d')",nume,P_DATA[playerid][Bani] = 0,P_DATA[playerid][Score] = 0,P_DATA[playerid][Deaths] = 0);
    }
    db_free_result(Rezultat);
    return 1;
    }
    
    In asta:
    public OnPlayerConnect(playerid)
    {
    new nume[30],DBResult:Rezultat;
    GetPlayerName(playerid,nume,30);
    format(Query,2048,"SELECT `Key`,`Bani`,`Score`,`Deaths` FROM `Database` WHERE `nume` = '%s'",nume);
    Rezultat = db_query(Database,Query);
    if(db_num_rows(Rezultat) == 1 )
    {
    new field[2048];
    db_get_field_assoc(Rezultat,"Bani",field,2048);
    P_DATA[playerid][Bani] = strval(field);
    db_get_field_assoc(Rezultat,"Score",field,2048);
    P_DATA[playerid][Score] = strval(field);
    db_get_field_assoc(Rezultat,"Deaths",field,2048);
    P_DATA[playerid][Deaths] = strval(field);
    }
    else
    {
    format(Query,2048,"INSERT INTO `Database` (`nume`, `Bani`, `Score`, `Deaths`) VALUES (%s','%d','%d','%d')",nume, P_DATA[playerid][Bani] = 0,P_DATA[playerid][Score] = 0,P_DATA[playerid][Deaths] = 0);
    }
    db_free_result(Rezultat);
    return 1;
    }
    
    Spre exemplu aici:
    db_get_field_assoc(Rezultat,"Bani",field,2048);
    db_get_field_assoc(Rezultat,"Score",field,2048);
    db_get_field_assoc(Rezultat,"Deaths",field,2048);
    P_DATA[playerid][Bani] = strval(field);
    P_DATA[playerid][Score] = strval(field);
    P_DATA[playerid][Deaths] = strval(field);
    Preiei rezultatele din baza de date intr-o variabila numita "field" ce e inlocuita cu o noua valoare de fiecare data cand preiei o data din baza de data prin "db_get_field_assoc(Rezultat,"Bani",field,2048);" asta insemnand ca variabilelele "P_Data" v-or avea toate valoarea de la "Deaths". Ar mai fi de mentionat ca nu ai nevoie de un string atat de mare... poti folosii unul de 100... Cum ar trebuii sa arate codul de mai sus e astfel:
    new field[100];
    db_get_field_assoc(Rezultat,"Bani",field,100);
    P_DATA[playerid][Bani] = strval(field);
    db_get_field_assoc(Rezultat,"Score",field,100);
    P_DATA[playerid][Score] = strval(field);
    db_get_field_assoc(Rezultat,"Deaths",field,100);
    P_DATA[playerid][Deaths] = strval(field);
    
    In al doilea rand aici:
    public OnPlayerDisconnect(playerid, reason)
    {
    new nume[30];
    GetPlayerName(playerid,nume,30);
    format(Query,2048,"UPDATE `Database` SET `nume` = '%s',`Bani` = '%d',`Score` = '%d',`Deaths` = '%d'",nume,P_DATA[playerid][Bani],P_DATA[playerid][Score],P_DATA[playerid][Deaths]);
    db_free_result(db_query(Database,Query));
    return 1;
    }
    
    Tu mai sus prin statement-ul "UPDATE" actualizezi date din baza de date... greseala pe care o faci e ca actualizezi si numele din baza de date de fiecare data cand un jucator se deconecteaza ceea ce nu vrei sa se intample... Mai jos e cum ar trebuii sa fie...
    public OnPlayerDisconnect(playerid, reason)
    {
    new nume[30];
    GetPlayerName(playerid,nume,30);
    format(Query,2048,"UPDATE `Database` SET `Bani` = '%d',`Score` = '%d',`Deaths` = '%d' WHERE `nume` = '%s'", P_DATA[playerid][Bani],P_DATA[playerid][Score],P_DATA[playerid][Deaths], name);
    db_free_result(db_query(Database,Query));
    return 1;
    }

    Dupa cum vezi in acest "Query" apare si statement-ul "WHERE" care in traducere inseamna "Unde" ce ii spune server-ului sa actualizeze (UPDATE) datele din baza de date acolo unde numele este egal cu numele jucatorului.

  5. Schimba asta

    db_free_result(db_query(Database,"CREATE TABLE IF NOT EXISTS `Database`(`Key`INTEGER PRIMARY KEY AUTOINCREMENT,\
                                                                                                                             `Nume`TEXT,\
                                                                                                                             `Bani`NUMERIC,\
                                                                                                                             `Score`NUMERIC,\
                                                                                                                             `Deaths`NUMERIC)"));
    
    cu asta:
    db_query(Database,"CREATE TABLE IF NOT EXISTS `Database`(`Key`INTEGER PRIMARY KEY AUTOINCREMENT,\
                                                                                                                             `Nume`VARCHAR(10),\
                                                                                                                             `Bani`INT(10),\
                                                                                                                             `Score`INT(10),\
                                                                                                                             `Deaths`INT(10)");
    

  6. Sau... mai simplu...

    if(dialogid == ID) //Unde ID = ID-ul de la Dialogul tau
    {
        if(response)
        {
            switch(listitem)
            {
                case 0: CallRemoteFunction("OnPlayerCommandText", "is", playerid, "/cmds");
                case 1: CallRemoteFunction("OnPlayerCommandText", "is", playerid, "/teles");
                case 2: CallRemoteFunction("OnPlayerCommandText", "is", playerid, "/credits"); 
                //etc
            }
        }
    }

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.