sneksnack 0 Odesláno: 30. Květen, 2011 Share Odesláno: 30. Květen, 2011 Takže dnes som sa nudil a pripravil som pre vás môj prvý TUT. Je to taký jednoduchý "raketomet na príkaz", stačí /rocket ID a už to letí... Definície, nejaké stocky a newy (najlepšie hore): #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define BIELA 0xFFFFFFAA #define ZLTA 0xFFDD00FF #define CERVENA 0xFF0011FF new bool:strela_on[MAX_PLAYERS]; new strela[MAX_PLAYERS]; forward UpdateRocket(); stock SetObjectLookAt(objectid, Float:x, Float:y) { new Float:Px, Float:Py, Float: Pa; GetObjectPos(objectid,Px,Py,Pa); Pa = floatabs(atan((y-Py)/(x-Px))); if(x <= Px && y >= Py) Pa = floatsub(180.0,Pa); else if(x < Px && y < Py) Pa = floatadd(Pa,180.0); else if(x >= Px && y <= Py) Pa = floatsub(360.0,Pa); Pa = floatsub(Pa,90.0); if(Pa >= 360.0) Pa = floatsub(Pa,360.0); SetObjectRot(objectid,0,0,Pa); return 1; } stock PlayerName(playerid) { new name[60]; GetPlayerName(playerid, name, 60); return name; } OnGameModeInit SetTimer("UpdateRocket",50,1); //nastavíme timer OnPlayerCommandText: dcmd(rocket,6,cmdtext); //príkaz Samotný príkaz: dcmd_rocket(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,BIELA,"[ ! ] Nie si RCON admin!"); //ak nie je RCON if(!strlen(params)) return SendClientMessage(playerid, CERVENA, "** /rocket ID"); //ak nezadal ID hráča new id=strval(params); if(!IsPlayerConnected(id))return SendClientMessage(playerid,CERVENA,"** Hráč nie je online!"); //ak hráč nie je online if(strela_on[id]==true)return SendClientMessage(playerid,CERVENA,"** Pôvodná raketa ešte netrafila tohto hráča!"); //ak už bola na raketa poslaná raketa new string[100]; //vytvoríme si string pre SendClientMessage new Float:x,Float:y,Float:z,Float:x2,Float:y2,Float:z2; //premenné GetPlayerPos(playerid,x,y,z); //zistíme pozíciu hráča pod RCON GetPlayerPos(id,x2,y2,z2); //zistíme pozíciu hráča format(string,100,"[ ! ] Raketa smeruje na hráča %s(%d)!",PlayerName(id),id); //vytvoríme string pre odoslanie strela_on[id]=true; //nastavíme hráčovi premennú strela[id]=CreateObject(345,x,y,z,0,0,0); //vytvoríme objekt rakety SetObjectLookAt(strela[id],x2,y2); //natočíme raketu na hráča MoveObject(strela[id],x2,y2,z2,50); //posunieme raketu ku hráčovi SendClientMessage(playerid,ZLTA,string); //odšleme správu return 1; } Public na kontrolu rakety: public UpdateRocket() { for(new i;i<500;i++)//obehneme všetkých hráčov { if(strela_on[i]==true)//ak na hráča smeruje raketa { new Float:x,Float:y,Float:z,Float:x2,Float:y2,Float:z2; //premenné GetPlayerPos(i,x,y,z); //zistíme pozíciu hráča GetObjectPos(strela[i],x2,y2,z2); //zistíme pozíciu rakety if(x==x2 && y==y2 && z==z2) //ak sa pozícia rakety a hráča rovná { DestroyObject(strela[i]); //zničíme raketu strela_on[i]=false; //nastavíme premennú CreateExplosion(x,y,z,6,5.0); //vytvoríme explóziu } else //ak sa pozície nerovnajú { MoveObject(strela[i],x,y,z,50); //posunieme raketu ku hráčovi SetObjectLookAt(strela[i],x,y); //natočíme raketu } } } } Toť vše! :thumbup: Link to comment Share on other sites More sharing options...
Guest Odesláno: 30. Květen, 2011 Share Odesláno: 30. Květen, 2011 SetTimer ešte chýba... aj keď sa mi zdá že toto som niekde videl... "scratch" Link to comment Share on other sites More sharing options...
sneksnack 0 Odesláno: 30. Květen, 2011 Author Share Odesláno: 30. Květen, 2011 SetTimer ešte chýba... aj keď sa mi zdá že toto som niekde videl... "scratch" Díky, už som doplnil. Možné to je, ale všetko okrem stocku je z mojej hlavy... Link to comment Share on other sites More sharing options...
MinecraftPlayer 0 Odesláno: 30. Květen, 2011 Share Odesláno: 30. Květen, 2011 pěkný ... ale strašná zátěž modu... 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