stonersvojta 0 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 Zdravím, potřebuji poradit s portováním. Mám třeba takovýto port: if(!strcmp(cmdtext,"/hrbitov",true)) { SetPlayerPos(playerid,855.2349,-1102.5925,24); GetPlayerName(playerid, jmeno, sizeof(jmeno)); format(str,sizeof(str)," [ ! ] Hráč %s se odwarpoval na Hrbitov [ ! ]",jmeno); SendClientMessageToAll(0xFFFF00AA,str); return 1; } Ale neportuji se i s vozidlem, jak mám udělat, abych se sním portnul ?? prosím poraďte Link to comment Share on other sites More sharing options...
mxco 55 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 setvehiclepos? Link to comment Share on other sites More sharing options...
Invouk 91 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 Prvé musíš skontrolovať či je hráč vo vozile Ak je tak GetVehivlepos (vehicleid,x,y,z)//vehicleid si spravíš ...a potom len SetVehiclePos A dáš hráča ako vodiča Link to comment Share on other sites More sharing options...
mxco 55 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 Prvé musíš skontrolovať či je hráč vo vozile Ak je tak GetVehivlepos (vehicleid,x,y,z)//vehicleid si spravíš ... a potom len SetVehiclePos A dáš hráča ako vodiča a na co hodláš ukládat pozici vozidla Link to comment Share on other sites More sharing options...
The hidden face 77 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 (upraveno) stock SetPlayerPort(playerid, Float:x, Float:y, Float:z) //pojmenuj si to jak chceš { if(!IsPlayerInAnyVehicle(playerid)){ SetPlayerPos(playerid, x, y, z); }else{ SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z); PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0); } } Poté to můžeš používat v příkazech nějak takhle: if(!strcmp(cmdtext,"/hrbitov",true)) { SetPlayerPort(playerid, 855.2349,-1102.5925,24); // SetPlayerPort(playerid, x, y, z); //Tady na to by šel tak udělat stock, dost by ti to ulehčilo práci: GetPlayerName(playerid, jmeno, sizeof(jmeno)); format(str,sizeof(str)," [ ! ] Hráč %s se odwarpoval na Hrbitov [ ! ]",jmeno); SendClientMessageToAll(0xFFFF00AA,str); return 1; } Edit: Tady jsem ti udělal stock, který ti přidělání portů dost ulehčí práci: stock SetPlayerPort(playerid, PortName[], Float:x, Float:y, Float:z) { new Name[24], str[128]; if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER){ SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z); PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0); }else{ SetPlayerPos(playerid, x, y, z); } GetPlayerName(playerid, Name, 24); format(str, sizeof(str), " [ ! ]Hráč %s se odwarpoval na %s [ ! ]", Name, PortName); return SendClientMessageToAll(0xFFFF00AA, str); } Použití: SetPlayerPort(playerid, "název portu", x, y, z); Ukázka na tvém portu: if(!strcmp(cmdtext,"/hrbitov",true)) { SetPlayerPort(playerid, "Hřbitov", 855.2349,-1102.5925,24); return 1; } 2.Edit: Stock nahoře je upraven, podle připomínky Lukasze. Edited 11. Červenec, 2015 by D@ndys Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 (upraveno) D@ndys, tvé řešení není správné, jen okoukané u refa, který nad problémama a optimalizací moc nepřemýšlí a napíše první blbost, co ho napadne (a nevadí, že je to špatně ) Tvůj kód bude vypadat nějak takto: if(!strcmp(cmdtext,"/hrbitov",true)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetVehiclePos(GetPlayerVehicleID(playerid), 855.2349,-1102.5925,24); } else { SetPlayerPos(playerid, 855.2349,-1102.5925,24); } GetPlayerName(playerid, jmeno, sizeof(jmeno)); format(str,sizeof(str)," [ ! ] Hráč %s se odwarpoval na Hrbitov [ ! ]",jmeno); return SendClientMessageToAll(0xFFFF00AA,str); } Edited 11. Červenec, 2015 by Lukasz Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 D@ndys, tvé řešení není správné, jen okoukané u refa, který nad problémama a optimalizací moc nepřemýšlí a napíše první blbost, co ho napadne (a nevadí, že je to špatně ) Tvůj kód bude vypadat nějak takto: if(!strcmp(cmdtext,"/hrbitov",true)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetVehiclePos(GetPlayerVehicleID(playerid), 855.2349,-1102.5925,24); } else { SetPlayerPos(playerid, 855.2349,-1102.5925,24); } GetPlayerName(playerid, jmeno, sizeof(jmeno)); format(str,sizeof(str)," [ ! ] Hráč %s se odwarpoval na Hrbitov [ ! ]",jmeno); return SendClientMessageToAll(0xFFFF00AA,str); } konečně někoho napadlo že když teleportuješ auto teleportuje se i hráč... Link to comment Share on other sites More sharing options...
The hidden face 77 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 D@ndys, tvé řešení není správné, jen okoukané u refa, který nad problémama a optimalizací moc nepřemýšlí a napíše první blbost, co ho napadne (a nevadí, že je to špatně ) Že by bylo úplně špatné se říct nedá, ovšem díky za info já sám jsem to tak dříve používal, nenapadlo mě řešit i spolujezdce, bylo by to asi k po*rání, kdyby se spolujezdec portnul pryč i s tvým autem . Jinak nevím, kde to ref psal, ale jak sem řekl sám jsem to takhle používal. Každopádně jsem se poučil a ten stock mu upravím. Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 (upraveno) Okey Lukascz ma recht. Edited 11. Červenec, 2015 by rEf Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 rEf ovo stock nepoužívej. Vůbec neví Ten tvůj zázračnej stock, portne vozidla a dá hráče na místo řidiče, přestože může být spolujezdec. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetVehiclePos(GetPlayerVehicleID(playerid), 855.2349,-1102.5925,24); } else { SetPlayerPos(playerid, 855.2349,-1102.5925,24); } To je lepší ne? A je lepší použít GetPlayerName než stock PlayerName Link to comment Share on other sites More sharing options...
rEf 53 Odesláno: 11. Červenec, 2015 Share Odesláno: 11. Červenec, 2015 (upraveno) Nasrat. stock Port(playerid, name[], Float:x, Float:y, Float:z){ new s[128]; if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){ SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z); }else{ SetPlayerPos(playerid, x, y, z); } format(s,sizeof(s),"Hráč %s se teleportoval na %s.",PlayerName(playerid),name); // stock PlayerName SCMTA(-1,s); // SendClientMessageToAll } Např.: QCMD:test(playerid, params[]){ // Využívám QCMD Port(playerid,"Hřbitov", pozice x, pozice y, pozice z); return true; } Edited 11. Červenec, 2015 by rEf Link to comment Share on other sites More sharing options...
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