Pajdalf 0 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 Zdravím, vytvořil jsem si příkaz /getinfo [iD] Ale nevím, jak udělat u funkcí: GetPlayerInterior GetPlayerHealth GetPlayerArmour GetPlayerWeapon GetPlayerPing Aby to administrátorovy vypsalo ty fuknce.. Jekolikož, se tam doplnuje pouze playerid, v mém případě targetid.. Mám to udělat stejně jako např. GetPlayerName či GetPlayerPos? Kod příkazu: CMD:getinfo(playerid, params[]) { new targetid; if(!IsPlayerAdmin(playerid)) return SCM(playerid, COLOR_RED, "[ERROR]Nejsi administrátor!!!"); if(sscanf(params,"d",targetid)) return SCM(playerid,COLOR_GOLD, "[PŘÍKAZ]/getinfo [ID]"); if(!IsPlayerConnected(targetid)) return SCM(playerid,COLOR_RED, "[ERROR]Hráč již není připojen"); new Float:x ,Float:y, Float:z; new string[128]; new target[256]; new targetip[256]; GetPlayerName(targetid,target, sizeof(target)); GetPlayerPos(targetid, x,y,z); GetPlayerInterior(targetid); GetPlayerHealth(targetid); GetPlayerArmour(targetid); GetPlayerWeapon(targetid); GetPlayerPing(targetid); GetPlayerIp(targetid,targetip, sizeof(targetip)); format(string, sizeof(string), "[INFO]Jméno: %s, Pozice: X:%d Y:%d Z:%d\n Interier:", target,x,y,z); SCM(playerid, COLOR_LGREEN, string); return 1; } Díky, Pajda. Link to comment Share on other sites More sharing options...
0 Globální moderátor HighPrint 177 Odesláno: 29. Prosinec, 2015 Globální moderátor Share Odesláno: 29. Prosinec, 2015 (upraveno) Ano máš to správně. U funkcí se předává ID hráče, aby se vědělo, kterému se to má provést. Akorát některé funkce vrací hodnotu, kterou hledáš. Např GetPlayerInterior Return Values: The interior ID the player is currently in (viz. http://wiki.sa-mp.com/wiki/GetPlayerInterior - wiki se ti bude hodit, nauč se s ní používat) Takže buď ji vrátíš hned formátem do textu nebo si deklaruj proměnnou. Tzn. new interior = GetPlayerInterior(targetid); format(string, sizeof(string), "[INFO]Jméno: %s, Pozice: X:%d Y:%d Z:%d\n Interier:", target,x,y,z,interior); nebo format(string, sizeof(string), "[INFO]Jméno: %s, Pozice: X:%d Y:%d Z:%d\n Interier:", target,x,y,z,GetPlayerInterior(targetid)); Totéž to bude s GetPlayerPing, GetPlayerWeapon. Co se týče GetPlayerHealth a GetPlayerArmour, ty mají druhej parametr, kde určuješ proměnnou, do které se hodnoty ukládá (v C bych to nazval adresou, do které se má hodnota uložit) &Float:armour The float to to store the armour in, passed by reference. new Float:armour; GetPlayerArmour(targetid,armour); Tak snad jsem ti to trochu osvětlil. Kdybys měl problémy, tak se ptej. Pozn.: proto většinou callbacky s předaným parametrem playerid, protože trigger vyvolal nějaký hráč (např. změna state, manipulace s dialogem, connect, disconnect atd.). No pryč od teorie, -------------------------------------------------------------------------------------------------------------------------------- co bych ještě poupravil jsou délky řetězců. Maximální délka nicku v sa-mpu je 24, tzn asi ideální by bylo new target[24]; To samé IP. IP adresa je uspořádaná čtveřice čísel oddělených tečkami, proto může dosáhnout nejvýše 15 (255.255.255.255) resp. 16 znaků (4x3 + 3x tečky + ukončovací znak - ukládá se jako string). new targetip[16]; Jsou to malé drobnosti, které člověk nemusí v téhle době ani řešit, mažou se ze stacku ihned jakmile vyjdeš ven z kódu (v tomto případě příkazu), ale není chybou se nad tím zamyslet. Taky nepříjdeš do obchodu si koupit 150 vajec, aby si udělal omeletu pro jednoho člověka. Edited 29. Prosinec, 2015 by HighPrint Link to comment Share on other sites More sharing options...
0 Pajdalf 0 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 Tak snad jsem ti to trochu osvětlil. Ano, ještě se chci zeptat.. Když v tom Stringu mám to Jméno: %s, ... Dá se udělat aby to Jméno bylo např. červenou barvou a jméno hráče zase nějakou jinou? Aby to bylo trochu přehledné. Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 {DC0000}%s{00B500}textik uz jinou barvou Link to comment Share on other sites More sharing options...
0 Pajdalf 0 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 (upraveno) EDIT: Blbne HP a armour - zobrazuje se nějaké vysoké číslo U IP se zobrazují pouze první dvě čísla. Obrázek - https://ctrlv.cz/S0QA CMD:getinfo(playerid, params[]) { new targetid; if(!IsPlayerAdmin(playerid)) return SCM(playerid, COLOR_RED, "[ERROR]Nejsi administrátor!!!"); if(sscanf(params,"d",targetid)) return SCM(playerid,COLOR_GOLD, "[Příkaz]/getinfo [ID]"); if(!IsPlayerConnected(targetid)) return SCM(playerid,COLOR_RED, "[ERROR]Hráč není připojen!"); new string[128]; new target[24]; new targetip[16]; new interior = GetPlayerInterior(targetid); new ammo = GetPlayerAmmo(targetid); new ping = GetPlayerPing(targetid); new weapon = GetPlayerWeapon(targetid); new Float:armour; new Float:hp; GetPlayerName(targetid,target, sizeof(target)); GetPlayerIp(targetid,targetip, sizeof(targetip)); GetPlayerPing(targetid); GetPlayerInterior(targetid); GetPlayerHealth(targetid,hp); GetPlayerArmour(targetid,armour); GetPlayerAmmo(targetid); GetPlayerWeapon(targetid); format(string, sizeof(string), "[INFO] {1E90FF}Jméno: {FFD700}%s, {1E90FF}Interier: {FFD700}%d.", target, interior); SCM(playerid, COLOR_LGREEN, string); format(string, sizeof(string), "[INFO] {1E90FF}Zbraň: {FFD700}%d, {1E90FF}Náboje: {FFD700}%d.", weapon, ammo); SCM(playerid, COLOR_LGREEN, string); format(string, sizeof(string), "[INFO] {1E90FF}Zdraví: {FFD700}%d, {1E90FF}Vesta: {FFD700}%d.", hp, armour); SCM(playerid, COLOR_LGREEN, string); format(string, sizeof(string), "[INFO] {1E90FF}IP: {FFD700}%d, {1E90FF}Ping: {FFD700}%d.", targetip, ping); SCM(playerid, COLOR_LGREEN, string); Edited 29. Prosinec, 2015 by Pajdalf Link to comment Share on other sites More sharing options...
0 Scydo 397 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 ~> Když máš proměnnou float, tak musíš mít i specifikátor float: format(string, sizeof(string), "[INFO] {1E90FF}Zdraví: {FFD700}%.2f, {1E90FF}Vesta: {FFD700}%.2f.", hp, armour); ~> To samé u té IP. Je to string(čísla a tečky), ne číslo. Link to comment Share on other sites More sharing options...
0 Pajdalf 0 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 Hp a Armor již funguje, ale ta Ip stále ne.. teď to ukazuje 00 Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 Hp a Armor již funguje, ale ta Ip stále ne.. teď to ukazuje 00 ip je string. tudiž %s Link to comment Share on other sites More sharing options...
0 Scydo 397 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 ~> To samé u té IP. Je to string(čísla a tečky), ne číslo. Link to comment Share on other sites More sharing options...
0 Pajdalf 0 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 Jasně, díky za vysvětlení Link to comment Share on other sites More sharing options...
0 Invouk 91 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 Ahaa tak pretoo mi to vtedy blblo Dík aj mne ste poradili :-D Link to comment Share on other sites More sharing options...
0 Amenadiel 286 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 (upraveno) Ahaa tak pretoo mi to vtedy blblo Dík aj mne ste poradili :-D já nechápu jak vás nemůže napadnout taková jednoduchá věc.. když zapisujete IP DO STRINGU tak tam asi logicky musí byt %s a né %i Edited 29. Prosinec, 2015 by Steam Wallet Link to comment Share on other sites More sharing options...
0 Invouk 91 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 Ja som bol vždy v tom keĎ su tam čísla tak tam bude asi integer ale to už je jedno Pawno som sa vykašlal lebo nemá vyznam robiť niečo pre tuto scenu CZ/SK .. ked už upadá SA-MP Link to comment Share on other sites More sharing options...
Dotaz
Pajdalf 0
Zdravím, vytvořil jsem si příkaz /getinfo [iD]
Ale nevím, jak udělat u funkcí:
Aby to administrátorovy vypsalo ty fuknce.. Jekolikož, se tam doplnuje pouze playerid, v mém případě targetid..
Mám to udělat stejně jako např. GetPlayerName či GetPlayerPos?
Kod příkazu:
Díky, Pajda.
Link to comment
Share on other sites
12 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now