Wysłany: 2013-05-22, 23:53
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
Witam serdecznie, jestem nowy w tych klockach dopiero ucz? si? pisa? skrypty i zacz??em sobie patrze? co i jak.
A wi?c mam problem z BW na skrypcie o nazwie Home-RP, i mam owy problem:
Doda?em sobie par? informacji do pInfo i oczywi?cie one dzia?aj? jak nale?y, oraz zmieni?em SSCANF na najnowszy i oczywi?cie STREAMER.
Nie wiem czemu, ale po zabiciu przyk?adowo mnie, spawnuje si? w niebie, a je?eli zabije ja innego gracza on spawnuje si? normalnie tam gdzie zgin?. Problemem jest r?wnie? to ?e pr?bowa?em zmienia? to na r??ne sposoby i nawet wgra?em stary honest'owski system BW i dzia?a tak samo czy mo?ecie mi powiedzie? co mo?e by? nie tak?
Dodam to i? pracuje na najnowszym SA-MP z najnowszymi INCLUDE wrzuconymi w?a?nie z folderu serwera SAMP
Oto kod tego oto BW:
OnPlayerSpawn:
Kod:
if(PlayerInfo[playerid][pBW]>=1)
{
SetPlayerPos(playerid,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ]);
SetPlayerInterior(playerid,PlayerInfo[playerid][pInt]);
SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pVir]);
TogglePlayerControllable(playerid,0);
GameInfo(playerid,"~r~masz bw...",1);
SetTimerEx("Animka",1000,0,"dd",playerid,1);
return 1;
}
OnPlayerDeath:
Kod:
public OnPlayerDeath(playerid, killerid, reason)
{
format(String, sizeof(String),"(( (%d)%s zabi? (%d)%s, pow?d: %d))",killerid,NickCzat(killerid),playerid,NickCzat(playerid),reason);
ZawiadomAdmina(KOLOR_ADM,String);
PlayerInfo[playerid][pBW]=GameMode[uCzasBW];
ZapiszKonto(playerid);
return 1;
}
Public TimerCoMinute
Bardzo bym prosi? o pomoc.
Wysłany: 2013-05-23, 08:07
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
Wysłany: 2013-05-23, 11:02
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
"IgrexolonO" napisał/a :
Zastosowa?em to w ten spos?b, wklei?em to do OnPlayerSpawn, lecz jest nadal ten sam b??d.
Kod:
if(PlayerInfo[playerid][pBW]>=1)
{
SetSpawnInfo( playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ], 269.15, 0, 0, 0, 0, 0, 0 );
//SetPlayerPos(playerid,PlayerInfo[playerid][pPosX],PlayerInfo[playerid][pPosY],PlayerInfo[playerid][pPosZ]);
SetPlayerInterior(playerid,PlayerInfo[playerid][pInt]);
SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pVir]);
TogglePlayerControllable(playerid,0);
GameInfo(playerid,"~r~masz bw...",1);
SetTimerEx("Animka",1000,0,"dd",playerid,1);
return 1;
}
Wysłany: 2013-05-23, 12:14
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
Powiniene? u?y? tych funkcji w publicu OnPlayerDeath. W OnPlayerSpawn nie powiniene? u?ywa? SetSpawnInfo do ustawiania pozycji gracza. U?ywaj funkcji bezpo?redniego ustawiania pozycji tylko w przypadkach przenoszenia gracza/spawnowania go przy po??czeniu.
Gdybym by? w domu i mia? swoje pliki, to pom?g?bym Ci teraz, ale niestety tam mnie nie ma.
Wysłany: 2013-05-23, 17:50
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
"IgrexolonO" napisał/a :Powiniene? u?y? tych funkcji w publicu OnPlayerDeath. W OnPlayerSpawn nie powiniene? u?ywa? SetSpawnInfo do ustawiania pozycji gracza. U?ywaj funkcji bezpo?redniego ustawiania pozycji tylko w przypadkach przenoszenia gracza/spawnowania go przy po??czeniu.
Gdybym by? w domu i mia? swoje pliki, to pom?g?bym Ci teraz, ale niestety tam mnie nie ma.
Niestety pr?bowa?em na r??ne sposoby i nadal nie potrafi? tego zrobi?, niby funkcja ta si? wykonuje, gdy? ustawi?em SendClientMessage, lecz spawnuje nadal na jak?? pozycje 0, 0, 0.
Teraz usun??em BW ca?kowicie i spr?buje zrobi? jeszcze raz od nowa.
Wysłany: 2013-05-23, 20:42
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
Ah, tak. OnPlayerDeath jest ***** w tym przypadku. Masz kod z mojej mapy, mo?e sobie co? w niej ciekawego wykminisz.
Kod: public OnPlayerDeath(playerid, killerid, reason)
{
if(playerInfo[playerid][loggedIn] == false) return printf("%s OnPlayerDeath non logged in has been detected.", pNameW(playerid)), 0;
GetPlayerPos(playerid, playerInfo[playerid][lastPos][0], playerInfo[playerid][lastPos][1], playerInfo[playerid][lastPos][2]);
GetPlayerFacingAngle(playerid, playerInfo[playerid][lastPos][3]);
playerInfo[playerid][lastPosInt] = GetPlayerInterior(playerid);
playerInfo[playerid][lastPosVW] = GetPlayerVirtualWorld(playerid);
SetSpawnInfo(playerid, 0, playerInfo[playerid][skin], playerInfo[playerid][lastPos][0], playerInfo[playerid][lastPos][1], playerInfo[playerid][lastPos][2], playerInfo[playerid][lastPos][3], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
SetTimerEx("returnClientState", 750, false, "i", playerid);
ApplyAnimation(playerid, "PED", "FLOOR_hit", 4.1, 0, 1, 1, 1, 1);
TextDrawShowForPlayer(playerid, redaBeWu);
setPlayerHealthEx(playerid, 75.0);
return 1;
}
+
Kod: public returnClientState(pid)
{
Attach3DTextLabelToPlayer(playerInfo[pid][nickLabel], pid, 0.0, 0.0, 0.3);
setPlayerSkinEx(pid, playerInfo[pid][skin], false);
setPlayerMoneyEx(pid, playerInfo[pid][money]);
SetPlayerPos(pid, playerInfo[pid][lastPos][0], playerInfo[pid][lastPos][1], playerInfo[pid][lastPos][2]), SetPlayerFacingAngle(pid, playerInfo[pid][lastPos][3]);
SetPlayerInterior(pid, playerInfo[pid][lastPosInt]);
SetPlayerVirtualWorld(pid, playerInfo[pid][lastPosVW]);
SetPlayerSkillLevel(pid, WEAPONSKILL_PISTOL, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_PISTOL_SILENCED, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_DESERT_EAGLE, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_SHOTGUN, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_SPAS12_SHOTGUN, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_MICRO_UZI, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_MP5, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_AK47, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_M4, 1);
SetPlayerSkillLevel(pid, WEAPONSKILL_SNIPERRIFLE, 1);
updatePlayerSpecInfo(pid);
return 1;
}
Wysłany: 2013-05-23, 23:58
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
Teraz mam tak:
OnPlayerDeath:
Kod: public OnPlayerDeath(playerid, killerid, reason)
{
GetPlayerPos(playerid, PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ]);
PlayerInfo[playerid][pBW] = 5;
ZapiszKonto(playerid);
return 1;
}
OnPlayerSpawn
Kod: if(PlayerInfo[playerid][pBW] >= 1)
{
SetPlayerInterior(playerid,PlayerInfo[playerid][pInt]);
SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pVir]);
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], 0, 0,0,0,0,0,0);
TogglePlayerControllable(playerid,0);
GameInfo(playerid,"~r~Aktualnie posiadasz BW...",1);
SetTimerEx("Animka",1000,0,"dd",playerid,1);
return 1;
}
I teraz teleportuje mnie na pozycje, taka jak jest w hone?cie, a je?eli nie ma return 1; to jest okey, lecz czyta przez chwil? TogglePlayerControllable(playerid,0); i a potem wy??cza si? i mog? normalnie si? porusza? lecz jest niby BW i mam odliczanie czasu BW: czas
OnGameModeInit
Kod: AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0);
A oto ca?y m?j OnPlayerSpawn:
http://pastebin.com/Jfgrrkzv
Nie pojmuje z lekka tego ;/
Wysłany: 2013-05-24, 07:20
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
Ustaw timer, tak samo jak ja returnClientState.
Wysłany: 2013-05-24, 16:10
Szimwu
Wiek: 33 Na forum: 4906 dni Posty: 65
Piwa : 290
Poradzi?em sobie bez timera. Ale dzi?ki za ch?ci
Tagi: nie :: spawnuje :: innych :: graczy
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: