Jump to content

MichaelMik9

Uživatel
  • Příspěvků

    18
  • Registrován

  • Aktivní

Reputace

1 Jonny Sindacco

Kontaktní údaje

  • Web
    https://dxgamepro.cz/

Návštěvníci

684 profile views
  1. Jop přesně tohle jsem hledal :D vyzkouším a uvidím jestli to pojede moc děkuji
  2. Ahoj mám malý problém. Vytvořil jsem si jednuduché editování objektů a potřebuji přeparsovat řetězec (inputtext) do celého čísla (do object id). Dříve, když fungovalo fórum samp, tak si myslím, že se to tam dalo najít ale Googlil jsem a nenašel jsem, jak to provést. Zkoušel jsem funkci intval(), která neexistuje nebo netuším v jakém includu se nachází :). Byl by prosím někdo schopen poradit? Moc děkuji za odpovědi
  3. Tak to je paráda, tohle zkusím jak budu moct a děkuji vám všem za pomoc !
  4. Každopádně takhle to funguje Hold z toho udělám parametry a budu dělat příkazy takhle
  5. problém přetrvává ikdyž sem to právě opravil jinak, jsem zkusil trošku jiný postup, který mi najednou začal fungovat (ale ten smysl, že následující kód jde a předchozí ne, mi to fakt nedává): printf("[RCON COMMAND]: CONSOLE issued server command: | %s |", cmd); new command[6]; new playerVipName[65]; new days; if(!sscanf(cmd, "s[6]s[65]i", command, playerVipName, days)) { printf("command: %s %s %i", command, playerVipName, days); if(strcmp(command, "addvip", true, 6)) { printf("command %s executed!", cmd); new sqliteAddVip[120]; format(sqliteAddVip, sizeof(sqliteAddVip), "UPDATE samp_players SET `Vip`='1' WHERE `Nick`='%s'", playerVipName); mysql_query(Database, sqliteAddVip, false); new registrydate; registrydate = GetTime(); // set second by NOW new expirationdate = SetExpirationTime(days, registrydate); //check if user is in samp_vip new checkVip[120]; format(checkVip, sizeof(checkVip), "SELECT `Nick` FROM `samp_vip` WHERE `Nick`='%s'", playerVipName); mysql_query(Database, checkVip); if(cache_num_rows() != 0) { new updateQuery[256]; format(updateQuery, sizeof(updateQuery), "UPDATE `samp_vip` SET `Registry`='%i', `Expiration`='%i' WHERE `Nick`='%s'", registrydate, expirationdate, playerVipName); mysql_query(Database, updateQuery, false); printf("[RCON] SERVER UPDATES Player |> %s <| to VIP for %i DAYS", playerVipName, days); } else { new insertQuery[256]; format(insertQuery, sizeof(insertQuery), "INSERT INTO `samp_vip`(`Nick`, `Registry`, `Expiration`) VALUES ('%s','%i','%i')", playerVipName, registrydate, expirationdate); mysql_query(Database, insertQuery, false); new insert[135]; format(insert, sizeof(insert), "INSERT INTO `samp_player_vip_car` (`Nick`) VALUES ('%s')", playerVipName); mysql_query(Database, insert, false); printf("[RCON] SERVER adds Player |> %s <| to VIP for %i DAYS", playerVipName, days); } //log event new logText[200]; format(logText, sizeof(logText), "[*#46FF33*]%s[*///Color] si zakoupil [*#46FF33*]VIP[*/Color] ucet na [*#46FF33*]%i[*/Color] dnu!)", playerVipName, days); samp_log(GetTime(), logText); } } else { print("USE SYNTAX: addvip [name] [days]"); } return 1; Jinak je to přes gamehosting, takže práva by v tom neměli hrát žádnou roly
  6. Ahoj mám malý problém a potřeboval bych pomoct: Uvedu příkaz pro konzoli (OnRconCommand): public OnRconCommand(cmd[]) { printf("[RCON COMMAND]: CONSOLE issued server command: | %s |", cmd); if(strcmp("addvip", cmd, true, 6) == 0) { printf("command %s executed!", cmd); new playerVipName; new days; if(!sscanf(cmd, "s[65]i", playerVipName, days)) { new sqliteAddVip[120]; format(sqliteAddVip, sizeof(sqliteAddVip), "UPDATE samp_players SET `Vip`='1' WHERE `Nick`='%s'", playerVipName); mysql_query(Database, sqliteAddVip, false); new registrydate; registrydate = GetTime(); // set second by NOW new expirationdate = SetExpirationTime(days, registrydate); //check if user is in samp_vip new checkVip[120]; format(checkVip, sizeof(checkVip), "SELECT `Nick` FROM `samp_vip` WHERE `Nick`='%s'", playerVipName); mysql_query(Database, checkVip); if(cache_num_rows() != 0) { new updateQuery[256]; format(updateQuery, sizeof(updateQuery), "UPDATE `samp_vip` SET `Registry`='%i', `Expiration`='%i' WHERE `Nick`='%s'", registrydate, expirationdate, playerVipName); mysql_query(Database, updateQuery, false); printf("[RCON] SERVER UPDATES Player |> %s <| to VIP for %i DAYS", playerVipName, days); } else { new insertQuery[256]; format(insertQuery, sizeof(insertQuery), "INSERT INTO `samp_vip`(`Nick`, `Registry`, `Expiration`) VALUES ('%s','%i','%i')", playerVipName, registrydate, expirationdate); mysql_query(Database, insertQuery, false); new insert[135]; format(insert, sizeof(insert), "INSERT INTO `samp_player_vip_car` (`Nick`) VALUES ('%s')", playerVipName); mysql_query(Database, insert, false); printf("[RCON] SERVER adds Player |> %s <| to VIP for %i DAYS", playerVipName, days); } //log event //new logText[200]; //format(logText, sizeof(logText), "[*#46FF33*]%s[*///Color] si zakoupil [*#46FF33*]VIP[*/Color] ucet na [*#46FF33*]%i[*/Color] dnu!)", playerVipName, days); //samp_log(GetTime(), logText); } else { print("USE SYNTAX: addvip [name] [days]"); } } return 1; } Abych tedy věc vysvětlil. Mám zde příkaz, který když zadám do konzole: addvip jmeno 30, tak se mi má hráč vložit do databáze do tabulky nebo upravit řádek a upravit čas registrace. Jenomže, po zadání příkazu mi vyjede chyba: [14:36:21] [RCON COMMAND]: CONSOLE issued server command: | addvip MichaelMik1 30 | > [14:36:21] command addvip MichaelMik1 30 executed! > [14:36:21] USE SYNTAX: addvip [name] [days] > [14:36:21] [debug] Run time error 5: "Invalid memory access" > [14:36:21] [debug] AMX backtrace: > [14:36:21] [debug] #0 00000000 in public OnRconCommand () Hledal jsem na googlu, co konkrétně znamená chyba: Run time error 5 ale nějak jsem to nevygooglil. Může mě prosím někdo nasměrovat a zkusit zjistit, kde by chyba mohla být? Pro větší přehlednost přikládám nové funkce pro čas a datum expirace: stock GetTime() { new Hour, Minute, Second; return gettime(Hour, Minute, Second); } stock SetExpirationTime(days, registryTime) { new expTime; new Days; Days = 60*60*24*days; //Expiration in seconds expTime = registryTime+Days; return expTime; }
  7. Tak jsem to tedy zvládl pomocí format(). Moc všem děkuji za pomoc
  8. Ahoj toho jsem si nevšiml, že vlastně query mám i v loopu -> to tedy sepíšu jak? Vím jak myslíš ale nevím jak to napsat
  9. Ahojte a zdravím všechny, chtěl bych vás zde poprosit o malou pomoc. Přes příkaz /setwarp na SAMP serveru si vytvořím warp (údaje o pozici a příkaz se ukládá přes MYSQL do databáze) a potřebuju přes /warps tyto warpy vypsat. Zezačátku se mi povedlo warpy vypsat jednotlivě, tzn. jeden warp - jeden řádek, tohle ale nechci. Chtěl bych warpy nacyklovat ->vložit do pole a pak je vypsat jako jeden text. Můj kód zatím vypadá takto samozřejmě s errorem a netuším jak dál: mysql_query(Database, "SELECT * FROM `samp_warps` ORDER BY `warp_command` ASC"); new rowCount; //vytvoření proměnné pro uložení celkového počtu warpů cache_get_row_count(rowCount); //vytáhnutí počtu warpů a zapsaní do proměnné rowCount new warps[MAX_STRING] = {}; //vytvoření prázdného pole (MAX_STRING je definován) for(new i = 0; i <= rowCount; i++ ) //začátek cyklu pro vytáhnutí jednotlivého warpu z databáze { new mysqlSelectWarp[65]; format(mysqlSelectWarp, sizeof(mysqlSelectWarp), "SELECT * FROM `samp_warps` WHERE id='%i'", i++); mysql_query(Database, mysqlSelectWarp); //dotaz pro jeden WARP new warpName[20]; cache_get_value_name(i, "warp_command", warpName, sizeof(warpName)); //vytáhnutí sloupce s příkazem (jméno warpu) warps[i] = warpName; //tuto původně jsem myslel, že by fungovalo jako vložení stringu do proměnné a zde je error: error 006: must be assigned to an array } Je tedy možné nějak toto zprovoznit? Děkuji předem
  10. Ahojte, tak mám problém vyřešený a moc všem děkuji za pomoc pro každou funkci jsem nepoužil CreatePickupEx ale typ jsem vytvořil samostatně např.: addpickupsrepair() { ... new pickup = CreatePickup(1240, 14, posx, posy, posz, -1); gPickupType[pickup] = PICKUP_TYPE_REPAIR; } ..což pak v onplayerenterpickup funguje (když jsem smazal pak returny)
  11. Ahoj samozřejmě že když jsem prohodil parametry tak funkci jsem vyvolal také z prohozenými :) . Každopádně to ještě otestuji a dám vědět :)
  12. Tak jsem to tedy zkusil a ten pickup se mi už vůbec nevygeneruje .. dal jsem tedy do funkce generateHiddenPackage(){... CreatePickupEx(1279, 15, x, y, z, -1, PICKUP_TYPE_PACKAGE); ...} a pro jistotu jsem na ten pickup dal ještě Ikonu abych věděl přesnou pozici .. a když tam dojdu tak pickup tam není. a to STOCK u té funkce znamená co? (CreatePickupEx jsem si poupravil, že jsem vyměnil parametry - world jsem dal jako poslední)
×
×
  • Create New...