View difference between Paste ID: pcZNNmwm and bEyP2LvR
SHOW: | | - or go back to the newest paste.
1
	
2
//somewhere in pickup.cpp
3
if(pChr && pChr->IsAlive())
4
	{
5
		// player picked us up, is someone was hooking us, let them go
6
		int RespawnTime = -1;
7
		switch (m_Type)
8
		{
9
			case POWERUP_HEALTH:
10
				if(m_Subtype != TILE_QUEST_TARGET)
11
				{
12
				   if(pChr->IncreaseHealth(1))
13
				   {
14
					    GameServer()->CreateSound(m_Pos, SOUND_PICKUP_HEALTH);
15
					    RespawnTime = g_pData->m_aPickups[m_Type].m_Respawntime;
16
				   }
17
				}
18
				else
19
				{
20
	if(GameServer()->Collision()->CalcEntityPos(GameServer()->City()->questX[pChr->GetPlayer()->GetCID()], GameServer()->City()->questY[pChr->GetPlayer()->GetCID()]) == m_Pos)
21
					{
22
					   GameServer()->City()->quest_rew[pChr->GetPlayer()->GetCID()] = true;
23
					   GameServer()->City()->quest_proc[pChr->GetPlayer()->GetCID()] = false;
24
					   pChr->SetEmote(EMOTE_HAPPY, Server()->Tick() + Server()->TickSpeed());
25
					   GameWorld()->DestroyEntity(this);
26
27
					   GameServer()->CreateSound(m_Pos, SOUND_PLAYER_SPAWN);
28
					}
29
				}
30
				break;
31
                     }
32-
            }
32+
            }
33
            /* ... */
34
35
	for(int i = 0; i<16; i++)
36
	{
37
	    if(!GameServer()->City()->logged[i] && GameServer()->City()->quest_proc[i])
38
	    {
39
		    m_Pos = GameServer()->Collision()->CalcEntityPos(GameServer()->City()->questX[i], GameServer()->City()->questY[i]);
40
		    m_Type = POWERUP_HEALTH;
41
		    m_Subtype = TILE_QUEST_TARGET;
42
		    GameWorld()->DestroyEntity(this); // remove entity
43
44
			char Buf[126];
45
			str_format(Buf, sizeof(Buf), "Destroyed quest entity, player ID: %d.", i);
46
			GameServer()->SendChatTarget(-1, Buf);
47
48
			GameServer()->City()->quest_proc[i] = false;
49
	    }
50
	}